Patent ID: 8656392

Claim:
A control system for controlling a robotic agent, the control system comprising: a task controller to control the robotic agent in performing an assigned role of a task, wherein the task controller is configured to initiate performance by the robotic agent of the assigned role of the task and to report completion of the performance of the assigned role of the task by the robotic agent; and a status manager to communicate with the task controller and configured to: maintain status information for the robotic agent, wherein the status information for the robotic agent includes: a task state of the robotic agent representing a vote of the robotic agent for the task; one or more peer task states of one or more peer robotic agents representing one or more votes of the one or more peer robotic agents for the task; and a consensus task state representing a consensus vote for the task; determine the consensus task state based on whether the robotic agent is operating as a participating agent or a monitoring agent, wherein the task state of the robotic agent is considered when determining the consensus task state when the robotic agent is operating as the participating agent, and wherein the task state of the robotic agent is not considered when determining the consensus task state when the robotic agent is operating as the monitoring agent; determine whether to update the consensus task state to a next task state in response to an indication from a particular peer robotic agent of the one or more peer robotic agents that the particular peer robotic agent has voted to transition the consensus task state to the next task state; in response to determining to update the consensus task state to the next task state: update the consensus task state to the next task state; and when the robotic agent is operating as the monitoring agent, transition the robotic agent from operating as the monitoring agent to operating as the participating agent, wherein the robotic agent is to perform an action associated with a second task associated with the next task state; subscribe to status information for the second task from at least one peer robotic agent of the one or more peer robotic agents based on whether the task and the second task are interdependent.