Human and robotic distributed operating system (HaRD-OS)
First Claim
1. A computer-implemented method for routing and scheduling tasks to facilitate control of any of a plurality of robots, the computer-implemented method comprising:
- configuring an access control list (i) identifying a plurality of human operators that are each qualified to perform a first set of a plurality of tasks partly involving human control of a robot and (ii) identifying a plurality of algorithms for instructing a robot in performing a second set of the plurality of tasks fully autonomously without human control of the robot;
receiving a request identifying a robot and a task for the robot to perform;
determining based on a set of criteria, at least one (i) human operator from the plurality of human operators or (ii) algorithm from the plurality of algorithms for optimally controlling the robot in performance of the task;
providing a particular human operator from the plurality of human operators control of the robot when the task is one of the first set of tasks partly involving human control and the particular human operator is identified within the access control list as being qualified to optimally perform the task in conformance of the set of criteria, wherein the robot comprises a set of controls and sensors, and wherein providing the particular human operator control of the robot comprises authorizing the particular human operator access to a first subset of the set of controls and sensors of the robot and preventing the particular human operator access to controls and sensors of the robot not within the first subset of the controls and sensors; and
providing a particular algorithm from the plurality of algorithms control of the robot when the task is one of the second set of tasks the robot can complete fully autonomously and the algorithm comprises instructions for optimally completing the task fully autonomously in conformance of the set of criteria, wherein providing the particular algorithm control of the robot comprises authorizing the particular algorithm access to a different second subset of the set of controls and sensors of the robot and preventing the particular algorithm access to controls and sensors of the robot not within the second subset of the controls and sensors.
3 Assignments
0 Petitions
Accused Products
Abstract
Some embodiments provide a human and robot distributed operating system (HaRD-OS). The HaRD-OS efficiently and dynamically connects different human operators and algorithms to multiple remotely deployed robots based on the task(s) that the robots are to complete. Some embodiments facilitate an action/perception loop between the operators, algorithms and robots by routing tasks between human operators or algorithms based on various routing polices including operator familiarity, aptitude, access rights, end user preference, time zones, costs, efficiency, latency, privacy concerns, etc. In the event of a fault, some embodiments route to the best operator or algorithm that is able to handle the particular fault with the required privileges. Some embodiments secure task guarantees to be completed at particular times, priorities or costs.
-
Citations
20 Claims
-
1. A computer-implemented method for routing and scheduling tasks to facilitate control of any of a plurality of robots, the computer-implemented method comprising:
-
configuring an access control list (i) identifying a plurality of human operators that are each qualified to perform a first set of a plurality of tasks partly involving human control of a robot and (ii) identifying a plurality of algorithms for instructing a robot in performing a second set of the plurality of tasks fully autonomously without human control of the robot; receiving a request identifying a robot and a task for the robot to perform; determining based on a set of criteria, at least one (i) human operator from the plurality of human operators or (ii) algorithm from the plurality of algorithms for optimally controlling the robot in performance of the task; providing a particular human operator from the plurality of human operators control of the robot when the task is one of the first set of tasks partly involving human control and the particular human operator is identified within the access control list as being qualified to optimally perform the task in conformance of the set of criteria, wherein the robot comprises a set of controls and sensors, and wherein providing the particular human operator control of the robot comprises authorizing the particular human operator access to a first subset of the set of controls and sensors of the robot and preventing the particular human operator access to controls and sensors of the robot not within the first subset of the controls and sensors; and providing a particular algorithm from the plurality of algorithms control of the robot when the task is one of the second set of tasks the robot can complete fully autonomously and the algorithm comprises instructions for optimally completing the task fully autonomously in conformance of the set of criteria, wherein providing the particular algorithm control of the robot comprises authorizing the particular algorithm access to a different second subset of the set of controls and sensors of the robot and preventing the particular algorithm access to controls and sensors of the robot not within the second subset of the controls and sensors. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A distributed system comprising:
-
a plurality of robots deployed to different user locations, each robot of the plurality of robots comprising a network interface for remotely receiving a plurality of instructions associated with any set of a plurality of tasks the robot performs, the plurality of instructions controlling operation of the robot; and at least one system node comprising; a processor; a storage storing an access control list identifying (i) a plurality of human operators that are each qualified to perform some subset of the plurality of tasks partly involving human control of a robot and (ii) identifying a plurality of algorithms for instructing a robot in performing a subset of the plurality of tasks fully autonomously without human control of the robot; a network interface receiving at least a first task and a second task a user requests a particular robot of the plurality of robots to perform; and wherein the at least one system node, by operation of the processor, communicably couples to the particular robot using the network interface and schedules the particular robot in performance of the first task and the second task by (i) providing control of the robot in performance of the first task to any of a first algorithm and a first human operator, (ii) authenticating instructions issued to the robot in performance of the first task based on a first identifier identifying any of the first algorithm and the first human operator and a second identifier identifying the first task, (iii) monitoring the robot in performance of the first task, and (iv) providing control of the robot in performance of the second task to any of a different second algorithm and a different second human operator than used in controlling the robot in performance of the first task, wherein said authenticating comprises routing to the robot any instruction signed with the first identifier and the second identifier and blocking any instruction not signed with the first identifier and the second identifier. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A computer-implemented method comprising:
-
configuring an access control list (i) identifying a plurality of human operators that are each qualified to perform a first set of a plurality of tasks partly involving human control of a robot and (ii) identifying a plurality of algorithms for instructing a robot in performing a second set of the plurality of tasks fully autonomously without human control of the robot; receiving a request identifying a robot and a task for the robot to perform; assigning a first identifier to the task and a different second identifier to uniquely identify each human operator of the plurality of human operators and each algorithm of the plurality of algorithms; determining based on a set of criteria, at least one (i) human operator from the plurality of human operators or (ii) algorithm from the plurality of algorithms for optimally controlling the robot in performance of the task; providing a particular human operator from the plurality of human operators control of the robot when the task is one of the first set of tasks partly involving human control and the particular human operator is identified within the access control list as being qualified to optimally perform the task in conformance of the set of criteria, wherein providing the particular human operator control of the robot comprises authenticating control of the robot by the particular human operator during completion of the task by (i) routing to the robot for execution, instructions for the robot comprising the first identifier and the particular human operator assigned second identifier and (ii) blocking instructions for the robot not comprising both the first identifier and the particular human operator assigned second identifier; and providing a particular algorithm from the plurality of algorithms control of the robot when the task is one of the second set of tasks the robot can complete fully autonomously and the algorithm comprises instructions for optimally completing the task fully autonomously in conformance of the set of criteria, wherein providing the particular algorithm control of the robot comprises authenticating control of the robot by the particular algorithm during completion of the task by (i) routing to the robot for execution, instructions for the robot comprising the first identifier and the particular algorithm assigned second identifier and (ii) blocking instructions for the robot not comprising both the first identifier and the particular algorithm assigned second identifier. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification