Correction of robot instructions

The natural language robot interaction system addresses the challenge of handling imperfect human instructions by implementing methods to detect and manage corrections, ensuring accurate and reliable task execution.

WO2025043066A2PCT designated stage expired Publication Date: 2025-02-27TRUSTEES OF TUFTS COLLEGE
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/US2024/043373
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-08-22
Filing Date
2024-08-22
Publication Date
2025-02-27

AI Technical Summary

Technical Problem

Natural language understanding systems for robots struggle with handling imperfect human instructions, which can lead to errors due to ungrammatical, insufficient, or inconsistent language, especially when corrections are made during task execution.

Method used

A natural language robot interaction system that includes methods for detecting and handling corrections in task instructions and action execution, allowing the robot to determine appropriate corrective actions based on the state of the environment and the actions already performed.

Benefits of technology

Enables robots to effectively manage corrections during task execution, ensuring that the environment is returned to a consistent state before implementing new instructions, thereby improving the reliability and accuracy of robot operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024043373_27022025_PF_FP_ABST
    Figure US2024043373_27022025_PF_FP_ABST
Patent Text Reader

Abstract

Approaches to natural language interaction with robots described address the issue that humans might change their mind as they are talking, which can lead to different forms of "corrections", for example, corrections within an utterance as in "get me the red, uhm, no the blue box".
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CORRECTION OF ROB OT INSTRUCTIONS

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS

[0003] This application claims the benefit of U.S. Provisional Application No. 63 / 533,962, filed on August 22, 2023, which is incorporated herein by reference.

[0004] BACKGROUND OF THE INVENTION

[0005] This invention relates to correction of robot instructions.

[0006] Natural language interactions with robots are becoming increasingly important both for tasking robots and for teaching them new knowledge as they enable more natural humanrobot interactions and faster learning. Most proposals for natural language understanding algorithms in robotic architectures, however, assume that human instructions are “perfect”, i.c., grammatical (with no disflucncics and ungrammatical constructs), sufficient (for understanding or carrying out the task), and consistent (in their description of the knowledge or task). Yet, human instructors are not perfect and are likely to produce ungrammatical, insufficient, and inconsistent instructions at times, throwing off natural language understanding systems. Some systems have tried to address disfluencies and ungrammatical structure of instructions, or outright cancellation of instructions that may have been incorrect or misinterpreted.

[0007] SUMMARY OF THE INVENTION

[0008] In a general aspect, one or more approaches to natural language interaction with robots described herein address the issue that humans might change their mind as they are talking, which can lead to different forms of “corrections”, for example, corrections within an utterance as in “get me the red, uhm, no the blue box”. While such corrections can be handled by ignoring these errors during semantic parsing, a robot agent may require more complex methods for recovery if execution is already underway. For example, consider the case when a robot is given an instruction to move items from one place to another, and the instructor has a change of mind once some items have already been moved. In that case, it is not just a matter of fixing the semantics of an instruction, changes have already been effected in the world (i.e., changes of the state of the environment) and might have to be undone (if possible) to carry out the modified instruction. In one aspect in general, a natural language robot interaction system includes two related capabilities. First, the system implements a method for expressing and detecting corrections during task instructions and action execution. Second system implements a method for determining the appropriate corrective action by the robot depending on whether an already started action can be aborted and the corrected action stalled, or whether already accomplished states in the environment have to be first undone.

[0009] In another aspect, in general, a method for robot control includes receiving a first robot instruction and processing the first robot instruction to determine a corresponding first sequence of actions. This sequence of actions includes the first action in the sequence and the final action in the sequence (a different action than the first action). There is also an intermediate action in the sequence. The first sequence of actions, if performed by the robot initiated in an environment of the robot in an initial state, is determined to cause the environment to change to a first final state. The method includes causing the robot to perform an initial subsequence of the multiple actions from the first action to the intermediate action. While the robot is performing the intermediate instruction, the method includes receiving a second robot instruction, and determining a second sequence of actions based on the first sequence of actions and the second robot instructions, such that performing of the second sequence of actions by the robot, had it been initiated in the initial state, is determined to cause the environment to charge to a second final state. A third sequence of actions is planned to cause, by performing said third sequence of actions by the robot, the environment to change from an intermediate state determined during the performing of the intermediate instruction, to the second final state. The robot is caused to perform at least a subsequence of the third sequence of actions, with the goal of reaching the second final state.

[0010] In another aspect, in general, a method for correcting a robot instruction includes receiving a first robot instruction, and causing a robot to initiate a first sequence of actions for causing an environment of the robot to achieve a first final state. A correction instruction is received while the robot is performing an intermediate action in the first sequence of actions. A modified sequence of actions is determined based on the correction instruction, such that the modified sequence of actions includes at least some actions of first sequence of actions. The robot is caused to initiate the modified sequence of actions for causing the environment of the robot to achieve a modified final state when initiated in a state resulting from the performing of at least some of the intermediate action.

[0011] In another aspect, in general, a system for natural language robot control includes an input processor for receiving a first robot instruction, and a planner for determining a sequence of actions for a robot to carry out the first robot instruction. The planner is configured to determine, upon the input processor receiving a second robot instruction, whether the second instruction comprises a new instruction, whether the second instruction comprises, a cancellation of the first robot instruction, and whether the second instruction comprises a correction of the first robot instruction.

[0012] In another aspect, in general, correcting a system instruction during control of a system includes the following steps. The system may comprise a robot in a physical environment. A first instruction is received, and then processed to determine a first sequence of actions. This sequence of instructions includes the first action and the final action of the first sequence. The sequence of instructions cause an environment of the system to achieve a first final state when said sequence of actions is initiated in a first state of the environment. The method includes causing the system to initiate the first sequence of actions. While the system is performing an intermediate action in the first sequence of actions, a correction instruction is received. An initial subsequence of actions includes the first action through the intermediate action, and an intermediate state comprises a state of the environment after performing the actions of the initial subsequence of actions. A modified sequence of actions based on the correction instruction and the first instruction is then determined. The modified sequence of actions includes the initial subsequence of actions of the first sequence of actions followed by a corrective subsequence of actions. Performance of the modified sequence of actions initiated in the first state yields a modified final state. The system is then caused to perform the corrective sequence of actions for causing the environment of the system to achieve the modified final state from the intermediate state.

[0013] Aspects can include one or more of the following.

[0014] The method further includes completing the intermediate action after receiving the correction instruction.

[0015] Determining the modified sequence of instructions includes processing a combination of the first instruction and the correction instruction to determine the modified final state.

[0016] The correction instruction comprises a modification of the first instruction.

[0017] Processing the combination of the first instruction and the correction instruction comprises determining that the correction instruction comprises a correction or modification of the first instruction. At least some action of the corrective subsequence of actions undoes an action of the initial subsequence of actions.

[0018] At least some action of the initial subsequence of actions cannot be undone.

[0019] At least some of actions of the corrective subsequence of actions cause a change of state of the environment to a state prior to the action that cannot be undone.

[0020] At least some action of the corrective subsequence of actions comprises an action of the first sequence of actions.

[0021] Tn another aspect in general, a robotic system includes a controller that includes a software-implemented controller that implements one or more of the methods described above.

[0022] In another aspect, in general, a non-transitory machine-readable medium has instructions stored thereon, where execution of the instructions by a processor (e.g., a processor of a controller of a robotic system) cause the processor to perform the steps of one or more of the methods described above.

[0023] Other features and advantages of the invention are apparent from the following description, and from the claims.

[0024] BRIEF DESCRIPTION OF THE DRAWINGS

[0025] FIG. 1 is an illustration of planning and execution of an instruction.

[0026] FIG. 2 is an illustration of planning, execution, and correction of an instruction after execution commences.

[0027] FIG. 3 is an illustration of planning, execution, and correction of an instruction after execution commences, where an executed action is undone.

[0028] FIG. 4 is a block diagram of a robotic system.

[0029] DETAILED DESCRIPTION

[0030] Operation of a robot system that accepts natural language instructions, and corrections to such instructions, is illustrated by way of a number of exemplary scenarios provided below. Generally, these scenarios are in the context of a robot that can be instructed to assemble food on a plate, for example, in a robotic cafeteria. Referring to FIG. 1, planning and executing an instruction of a robot instruction may is depicted schematically as a planning step followed by a series of action steps. In FIG. 1, time generally flows from top to bottom of the diagram. At a first time, an instruction 110 is received, for example, in the form of speech or text instruction. A planning process 115 converts that instruction into a plan 120, which is formed as a sequence of planned actions 121-129 that take an initial state of the robot and its environment through a series of state transitions to intermediate states and to a final state after completion of the last planned action 129, with that last state satisfying the instruction (e.g., being a goal state of the instruction). After planning the actions, an execution 130 of the plan 120 is performed by the robot by sequencing action executions 131-139 according to the plan 120.

[0031] By way of an illustrative example, the instruction may be “Deliver a meal number two.” The robot’s knowledge base has a representation of what a “meal number two” constitutes, here peanut butter, orange juice, and grapes. The plan 120 may then include retrieving a plate for the meal, picking up the peanut butter, placing the peanut butter on the plate, etc. until the meal is assembled on the plate, with a final action being the “deliver” action, which involves moving the plate to a defined delivery location.

[0032] Referring to FIG. 2, in an example in which a corrective instruction 210 (referred to as a correction) is received while the robot is performing an action, a corrected plan 220 is formed. In this example, the corrected plan does not change the first planned action 121, which is already under way, and as illustrated the only change in the plan is that the second planned action 122 is replaced with a different planned action 222. Because the execution of the first action 131 is already under way, but unchanged in the corrected plan 220, the robot can simply replace the remainder of the plan with the corrected plan without stopping.

[0033] By way of example, the correction may be the command “Actually, fries instead of peanut butter.” A planning step understands that this is a modification of the original instruction, essentially equivalent to “Deliver a meal number two in which the peanut butter is replaced with fries.” In this illustration, the correction is received while the robot is still retrieving the plate, and therefore it has not yet picked up the peanut butter, so the corrected plan is consistent with the actions and state transitions to that point and the robot does not need to stop what it is doing.

[0034] In FIG. 3, the same correction 210 is received as in FIG. 2, but in this case, the correction is received while the second action execution 132 is under way. However, this action is inconsistent with the new goal represented by the correction. By way of example, when the correction “Actually, fries instead of peanut butter” is received, the robot has already started retrieving the peanut butter and placing it on the plate (e.g., ACTION-2 132 in the figure). One approach to planning the correction is for the planner to recognize that the action can be “undone”, for example, by introducing an action to remove the peanut butter from the plate (e.g., ACTION-2*) followed by an action to retrieve and put the fries on the plate (e.g., ACTION-2’).

[0035] More generally, when a correction is received during execution of an action, that action is causing a change of a state from the state immediately before the action was executed to the expected state immediate after the action is executed. In some examples, the action can be undone, for example, as in the case when an item is being placed on a plate, and it merely has to be removed from the plate to return the state to one from which a remainder of the plan may be implemented.

[0036] In some cases, the actions that have already been executed or are in the process of being executed cannot be easily undone. For example, if one of the actions is to pour milk into a glass, and the correction specifies that the milk should be replaced with orange juice, the pouring of the milk cannot merely be undo. Rather, as sequence of actions to cause a clean glass to replace the milk-filled glass is planned, from which point the orange juice filling plan can be continued.

[0037] As discussed above, when the interruption occurs and the task is revised, the robot has to determine all the task aspects (e.g., actions) that are implicated and compare them to the current state of the world, which includes making inferences about objects and their properties, locations, etc. that are not explicitly mentioned in the task instruction. For example, if an operator says to the robot “Prepare a pancake” and the robot started cracking eggs and then adding flour to the bowl with the eggs, and the operator then says "Actually, just make scrambled eggs" different steps have to be taken depending on where the robot got interrupted: interruption before adding flour means that replanning the remaining steps will do, and maybe the robot just needs to add one more egg. On the other hand, interruption after the flour was added means redoing everything, including emptying the bowl to get rid of the pancake batter, cleaning the bowl, get new eggs, etc. and here the bowl is not mentioned nor is the cleaning, etc. which are needed in the new plan (and the plan might not be feasible if not enough eggs are left).

[0038] Handling revised tasks might require the robot to problem-solve and learn new skills: in the above pancake and eggs example, it might have to figure out where to pour the pancake batter to be able to use the bowl for scrambled eggs (e.g., it might have to find another container, or a sink, etc.), and it might have to learn how to clean the bowl if it does not have a pre- learned behavior (i.e., how to hold it under running water to rinse it, etc.).

[0039] Some complications may arise in understanding the operator’s intent with the revision, i.e., what it is that need to be changed (e.g., if the operator says “leave out the yokes,” then the robot needs to understand that it needs to separate the yokes from the egg whites and only use the latter). Also, planning to “undo” effects might be even more involved in the case where the effects of a previous action cannot be simply undone as in the case of cracked and mixed eggs, where potentially new eggs need to be acquired, or cases where tools need to be created such as putting up a ramp to an open window to get back into a building after the door was shut locked, etc.

[0040] In an embodiment of a robotic system that may be capable of handling corrective procedures of the type illustrated above is provided below. The system implements the process for detecting corrective utterances, and handling such utterances once detected. Note that the system may use somewhat different approaches for corrections during teaching and tasking, and importantly addresses the case of the correction occurring after execution of the instructed task has begun.

[0041] One such embodiment implements what is referred to below as the “Distributed Integrated Affect and Reflection Cognitive” (DIARC) Architecture, without intending to connote any particular structure or capabilities by such denotation. Such an architecture is described in Scheutz et al. “An overview of the distributed integrated cognition affect and reflection DIARC architecture,” Cognitive architectures (2019): 165-193, which is incorporated herein by reference. The architecture includes or supports:

[0042] (1) A human-robot communication modality (e.g., spoken language);

[0043] (2) A strategy for using communication to receive instruction and learn new behaviors;

[0044] (3) A safe and responsive action halting capability;

[0045] (4) A state-based representation of the environment for planning and perception.

[0046] The first aspect is a communication mechanism between the human and robot. More specifically, this communication mechanism must enable the robot to receive instructions and interpret these instructions as requested behaviors. While this implementation makes use of spoken language, other communication strategies are also viable. Preferably, the robot is able to demonstrate its understanding of the requested goal to maximize human faith in the robot’s intent to correct the behavior. For example, the system makes use of spoken language, in the form of the robot saying “OK” when an utterance is successfully mapped to an executable action.

[0047] The system implements the ability to modify a learned sequence of actions, and to do so the system also has the ability of learning these action scripts in the first place. For example, the learning of action script occurs in one-shot while leveraging an agent’s existing knowledge about itself or its environment.

[0048] With the ability to execute and obtain actions, the system further has the ability to halt action execution. Preferably, such halting can occur as quickly as safety and human comfort will allow, otherwise there is a risk of human disengagement with the overall system.

[0049] The system also has a capability of at least some degree of environment interpretation, for example, to determine the state of the environment at a point in execution of a sequence of actions.

[0050] The system includes a planner, which can take an environment interpretation (e.g., a “state”) and processes an input instruction to determine a sequence of actions to achieve a goal determined from the input instruction.

[0051] Referring to FIG. 4, the DIARC controller provides a link between the environment and the robot being controller, and processes natural language instructions to determine the action it causes the robot to carry out.

[0052] DIARC combines speech-to-text with a pragmatic inference system while parsing, which allows potentially vague statements to be resolved to explicit references that the agent can employ: words like “it” are linked to the appropriate referent, and references like “the block” are grounded to explicit world knowledge, if possible. The end result of this process is a fully-grounded request for behavior, which can be passed to the goal manager of the system.

[0053] The goal manager is responsible for taking these requests for behavior and producing explicit executable actions which the robot can perform. The goal manager component handles both high-level goals derived from natural language instructions (e.g., “move the object to this position”) as well as the executing of skills to satisfy these goals (e.g., “move gripper to coordinate”, “close gripper”).

[0054] When a desired behavior is determined, the goal manager is responsible for tracking which stage of progress the agent is currently in and should be executing. It does so with the assistance of a planning system and a known set of possible actions (for example retrieved from the “action database”). The goal manager retains information about pre- and postconditions of individual behaviors in the form of a first-order logic. These anticipated state changes are represented alongside explicit observations from the environment (e.g., from a vision processing pipeline). Thus, the changes in the environment can be predicted and tracked (in addition to being explicitly observed). This combination of observation of the environment alongside predicting the environment meets the needs of describing problem domains: the current state of the agent is known and hence can be provided as the start state; the goal state has been provided as the instructed goal; actions have been provided by the action database; action transition functions have been provided by the pre- and postconditions of those same actions. This constructed problem domain can be solved by the planner. If a plan is found, it is returned as a sequence of known robot behaviors.

[0055] Finally, the planned actions are executed on the robot using a manufacturer-provided hardware interface and implementations of robot behavior strategies. In one implementation, the system make use of ROS to interface with the robot control software provided by the mobile manipulation platform. In the case where the environment has deviated from the desired state and requires multiple steps to resolve, the post-conditions help to form the input to the planning and re-planning process. Generally, at all stages of operation the pre- and post-conditions are being monitored for fault detection at minimum. The goal manager component also performs the one-shot action learning from natural language instructions which we modified to handle corrections during teaching appropriately. With all this functionality in place, DIARC is capable of taking complex spoken commands, interpreting their intent, and performing a series of robot behaviors which meet the needs specified by a human instructor.

[0056] For the system to modify its behavior to reflect a corrective utterance, such a corrective utterance must first be detected. This process requires both understanding of the semantic meaning of the utterance, as well as its context in the larger interaction between human and robot. A correction by itself is meaningless if the robot does not also understand the error that is to be corrected. The detection process is initiated by interpreting the semantic meaning of a received utterance. In one particular implementation, corrections that involve “fresh starts” are focused on, where the incorrect command has already been parsed and potentially has already begun to be executed by the agent, and the correction comes in the form of a new, restarted utterance. There are several direct indicators in natural language of “corrective” instruction that we consider here. The most obvious of these editing terms are adverbial modifications to the new instruction (i.e. “actually”), but correction can also be implied in preceding the new instruction with a negatory (“no, try the white table”) or an interjection (“sorry, pick up the block from the white table”).

[0057] To identify these key phrases, a parser is trained on a corpus of problem-solving utterances in which there are fresh starts and editing terms. The trained parser implements support for parsing these explicit correction indicators at both the beginning and end of an utterance. These terms are all flagged by the natural language understanding system as a fresh start correction-type utterance rather than an ordinary instruction. This flagging triggers the next step in the recovery process. If the new utterance shares structural elements with the speaker’s last utterance, we confirm its status as corrective (this weeds out potential utterances like “Wait for me to give you the block” which use our keywords in a noncorrective context). While this approach is limited - not all fresh starts involve these editing terms, or any editing terms at all -this is an acceptable drawback in at least some implementations.

[0058] Once an utterance is identified as corrective, the semantics of the rest of the utterance are modified to imply that the speaker intends for the robot to cancel its current goal and replace it with a new, potentially similar, goal. Even if the current behavior of the robot need not be changed by the correction, we still wish to cancel and replan in case the new information provides any alternate, preferred methods of achieving the goal. After detection has occurred and the semantic representation of the utterance has been updated, the full details of the corrective utterance can be appropriately handled by the architecture.

[0059] The context in which a correction is uttered by a human interlocutor affects the semantic intent of that utterance. A correction that occurs while teaching the representation of a new task is different than a correction that changes a given task instruction to a different instruction.

[0060] Consider the following correction specified when teaching a task requiring navigation to “position y”:

[0061] Human: Go to position x.

[0062] Robot: OK.

[0063] Human: Actually, go to position y.

[0064] Robot: OK. If this sequence is retained as instructed, the nature of an action instruction system combined with a naive cancellation approach will cause the action to be saved as 1) go to an incorrect location, 2) cancel that action, 3) go to the correct location. To avoid this extraneous behavior, the action learning process may be modified to exclude goal cancellation and to properly prune the set of retained actions in the script. In this case, a corrective utterance is interpreted as an instruction to re-assess the prior goal. To ensure that this process occurs with the full context of the overall action script, this occurs when learning of the action script concludes. We use this as an opportunity to perform any necessary ‘cleaning’ of the script before saving for later use.

[0065] If a corrective utterance is received mid-action, the ongoing action is preferably first be stopped so that the behavior can be modified. The next step is to determine, given both the ongoing action and the instructed action, what the appropriate robot behavior is. Given the nature of the utterance, it is safe to assume that the speaker wishes for this new instruction to be carried out in place of the existing action. However, the execution of the original action may have produced now-unintended side-effects. We will initially describe the system operating prior to any side effects taking place, before expanding into that set of cases.

[0066] In some embodiments, preventing unintended side effects of the first action is effected by stopping the execution of the first action as quickly as possible. The first step in canceling the unintended behavior is determining what exactly the speaker is trying to correct. To do this, the natural language understanding system must locate the corrected instruction in the dialogue history of the conversation, and determine the combined pragmatic meaning of that original instruction and its correction. If the correction in itself contains a complete instruction, i.e. “actually, pick something up from the Alpha table”, then no information from the original instruction is necessary, and the new goal can be constructed and submitted normally. In other cases, however, the correction may be abbreviated as an instruction with an ambiguous placeholder verb (“actually, use the Alpha table”). A substitution must be made in the original instruction that will replace the appropriate section in the original instruction with the new information.

[0067] Substitution in these cases is helped not only by matching morphological representations (i.e. “table” in “the alpha table” and “the beta table”), but also by the use of “types”. During the parsing process, every lexical symbol in an instruction is labeled with its syntactic and semantic type. This means that during the pragmatic processing of a correction, the syntactic and semantic types can be used to determine what needs to be substituted in the original instruction. Isolating the non-placeholder parts of the correction results in “the alpha table”, which carries the semantic type of ‘Location’. In the original instruction, “pick up the block from the beta table”, “the beta table” is also semantically typed as a ‘Location’, distinguishing it from “block”, which is an ‘Object’. Assembling a complete instruction of “pick up the block from the alpha table”, the pragmatic understanding system can thus pass this corrected instruction on to be submitted as a new goal.

[0068] This approach operates in all cases where the robot is currently following an action but has not yet made any changes to its external environment. Examples include “drive to location x ”, “look at object y”, and may include “grab object z” (on the condition that the utterance occurs prior to the object being grabbed).

[0069] The task planning and plan execution processes of one or more embodiments can be accomplished in any number of ways, for instance using special-purpose Planning Domain Definition Language (PDDL)-based planning algorithms such as the “Fast-Forward” planner (Hoffmann, Jorg. “FF: The fast-forward planning system.” Al magazine 22, no. 3 (2001): 57- 57). Other approaches to planning may use generative artificial intelligence (Al) techniques, for instance in which the operator’s instruction, or a combination of the operator’s instruction and corrective instruction, as well as information representing the actions already performed and / or the state already achieved, are used to form a prompt for a large language model (LLM), whose output is used to determine the actions required for the original instruction or for the corrective instruction. For example, techniques such as those described in Wang et al. “LLM-based Robot Task Planning with Exceptional Handling for General Purpose Service Robots.” arXiv preprint arXiv:2405.15646 (2024), or Thierauf et alXDo this instead”-Robots that Adequately Respond to Corrected Instructions." ACM Transactions on Human-Robot Interaction (2023). In the case of replanning, as with the original planning based on the initial instruction, re-planning can be accomplished using these algorithms. LEM-based models are particularly relevant to re-planning in that the common sense knowledge encoded in these models can be used for problem- solving needed to discover ways for restoring the task-relevant environmental states when direct undo actions are not available. The papers cited in this paragraph are incorporated herein by reference.

[0070] In many cases, or even most cases, a corrective utterance will not be received before robot behavior has taken place. Making progress on the initially-specified goal may have introduced effects that are now undesirable. In these cases, the intention of the corrective utterance is to both achieve the newly-specified state of the world, as well as to undo the erroneous instruction to the minimum extent necessary. When a correction is detected for an action that is currently being executed, the execution is first halted to re-assess the current state of the world so that next steps toward the new goal can be planned. The state of the world is a state, composed as a set of facts. These facts arc in the form of logical predicates which describe the world and the outcomes of various actions. These predicates, being informed by the architecture’s observations and belief system, are leveraged to produce a symbolic representation of the current world in the same way goals are specified.

[0071] Some effects of the robot’s actions may not be relevant to the intent of the instruction: for example, precise joint angles or object positions. These values are not represented as logical predicates and are not considered: the agent considers the logical predicate representing the state (for example, on(plate,soda)) and not the measured object positions that produce this state. It is acceptable to ignore information like this because they are unrelated to the intention of the goal.

[0072] By comparing the set of predicates in the goal state and the set of predicates in the known world state, the portions of the agent’ s environment which are in conflict with the new goal can be explicitly represented: the agent is aware of the predicate logic representing its current state, and the predicate logic representing the new goal state. It is then a reasonably trivial logical operation to determine which aspects of the current state are not relevant to the future goal and can be considered in conflict. To correct the unintended side effects, these conflicting predicates are negated to construct a goal environment which does not contain the conflict (e.g., on(plate,soda) is erroneous and so we produce not(on(plate,soda))). This goal environment is submitted to the task planner as a new goal state prior to the execution of the new instruction. Once the undo goal has been achieved, the world has been returned to the state it was in prior to the initial instruction. The agent is now at a “clean” state, as though the conflicting portions of the environment state had never been reached. The planning problem can now resume, in which it attempts to go from this “clean” state to the new end-goal. Using this approach, any state which can be reached by the planner can now be achieved by the agent. This does make the critical assumption that states can be undone, which is not always a safe assumption: something broken cannot be trivially unbroken, and something communicated cannot be un-communicated. However, many robot tasks are easy to reverse: the effects of movement, assembly, picking / placing, and many others can be reversed in a small number of actions. Assuming the states are produced by behaviors in this category, they will have been addressed. In some embodiments, a system comprises a robot, for instance including one or more manipulators, which is operated via a controller. The controller includes an operator interface, for instance including a voice to text input device for providing instructions or commands for the robot to carry out. Generally, the controller also includes inputs for sensing the state of the environment, for instance via a computer vision system. The controller includes a processor, that operates according to instructions stored on a medium for carrying out operations as described above.

[0073] In embodiments described above, references to control of a “robot” should be understood to include control of a set of potentially cooperating robots, for instance, where one robot may pick up an object and provide the object to a second robot for transport to another location. In another example, in a situation in which a corrective action requires undoing a change in environmental state by a first robot, a second robot may be instructed to perform actions to help achieve the corrected goal, either by acting in concert with the first robot, or by independently reverting an aspect of an environment state cause by actions performed by the first robot.

[0074] While the description above focusses on instructing and correcting operation of a physical robot, the approaches are equally applicable to non-physical (e.g., “virtual” domains). For example, instructions may relate to operation of a computer-based system in which certain actions related to computer-related operations such as sending a message over a data network or modifying a file (e.g., deleting it) on a storage device. It may not be possible to “undo” such actions, and therefore the corrective instruction may need to yield actions to restore the state, for example, instructing a recipient of a message to ignore the message, or causing a restoration of a file from a backup archive. More generally, many of the techniques described above may use an application programming interface (API) for causing actions to be performed in response to operating instructions or corrective instructions, and such API commands may be used for physical actions, such as movement of a robot manipulator, or for a virtual action, such as sending of a data network message.

[0075] A number of embodiments of the invention have been described. Nevertheless, it is to be understood that the foregoing description is intended to illustrate and not to limit the scope of the invention, which is defined by the scope of the following claims. Accordingly, other embodiments are also within the scope of the following claims. For example, various modifications may be made without departing from the scope of the invention. Additionally, some of the steps described above may be order independent, and thus can be performed in an order different from that described.

Claims

What is claimed is:

1. A method for correcting an instruction during control of a system, the method comprising: receiving a first instruction; processing the first instruction to determine a first sequence of actions, including the first action and the final action of the first sequence, for causing an environment of the system to achieve a first final state when said sequence of actions is initiated in a first state of the environment; causing the system to initiate the first sequence of actions; receiving a correction instruction while the system is performing an intermediate action in the first sequence of actions, an initial subsequence of actions comprising the first action through the intermediate action, and an intermediate state comprising a state of the environment after performing the actions of the initial subsequence of actions; determining a modified sequence of actions based on the correction instruction and the first instruction, the modified sequence of actions including the initial subsequence of actions of the first sequence of actions followed by a corrective subsequence of actions, wherein performance of the modified sequence of actions initiated in the first state yields a modified final state; and causing the system to perform the corrective sequence of actions for causing the environment of the robot to achieve the modified final state from the intermediate state.

2. The method of claim 1, wherein the system comprises a robot, and the first instruction comprises a first robot instruction, and the environment comprises a physical environment of the robot.

3. The method of claim 1, further comprising completing the intermediate action after receiving the correction instruction.

4. The method of any of the preceding claims, wherein determining the modified sequence of instructions include processing a combination of the first instruction and the correction instruction to determine the modified final state.

5. The method of claim 4, wherein the correction instruction comprises a modification of the first instruction.

6. The method of claim 4, wherein processing the combination of the first instruction and the correction instruction comprises determining that the correction instruction comprises a correction or modification of the first instruction.

7. The method of claim 4, wherein at least some action of the corrective subsequence of actions undoes an action of the initial subsequence of actions.

8. The method of claim 4, wherein at least some action of the initial subsequence of actions cannot be undone.

9. The method of claim 8, wherein at least some of actions of the corrective subsequence of actions cause a change of state of the environment to a state prior to the action that cannot be undone.

10. The method of claim 4, wherein at least some action of the corrective subsequence of actions comprises an action of the first sequence of actions.

11. A non-transitory machine-readable medium comprising instructions stored thereon, said instructions when executed by a processor cause the processor to perform the operations of any one of claims 1 through 10.

12. A non-transitory machine-readable medium comprising instructions stored thereon, said instructions when executed by a processor cause the processor to perform operations including: receiving a first robot instruction;processing the first robot instruction to determine a first sequence of actions, including the first action and the final action of the first sequence, for causing an environment of the robot to achieve a first final state when said sequence of actions is initiated in a first state of the environment; causing the robot to initiate the first sequence of actions; receiving a correction instruction while the robot is performing an intermediate action in the first sequence of actions, an initial subsequence of actions comprising the first action through the intermediate action, and an intermediate state comprising a state of the environment after performing the actions of the initial subsequence of actions; determining a modified sequence of actions based on the correction instruction and the first robot instruction, the modified sequence of actions including the initial subsequence of actions of the first sequence of actions followed by a corrective subsequence of actions, wherein performance of the modified sequence of actions initiated in the first state yields a modified final state; and causing the robot to perform the corrective sequence of actions for causing the environment of the robot to achieve the modified final state from the intermediate state.

13. A system comprising controller and a non-transitory machine- readable medium comprising instructions stored thereon, said instructions when executed by a processor of the system cause the system to perform the operations of any one of claims 1 through 10.

14. A robotic system for controlling a robot, the system comprising a controller and a non- transitory machine-readable medium comprising instructions stored thereon, said instructions when executed by a processor of the system cause the system to perform operations including: receiving a first robot instruction for controlling the robot; processing the first robot instruction to determine a first sequence of actions, including the first action and the final action of the first sequence, for causing an environment of the robot to achieve a first final state when said sequence of actions is initiated in a first state of the environment; causing the robot to initiate the first sequence of actions;receiving a correction instruction while the robot is performing an intermediate action in the first sequence of actions, an initial subsequence of actions comprising the first action through the intermediate action, and an intermediate state comprising a state of the environment after performing the actions of the initial subsequence of actions; determining a modified sequence of actions based on the correction instruction and the first robot instruction, the modified sequence of actions including the initial subsequence of actions of the first sequence of actions followed by a corrective subsequence of actions, wherein performance of the modified sequence of actions initiated in the first state yields a modified final state; and causing the robot to perform the corrective sequence of actions for causing the environment of the robot to achieve the modified final state from the intermediate state.