WO2023213989A1 - Verfahren zum vorbereiten und ausführen von aufgaben mithilfe eines roboters, roboter und computerprogramm - Google Patents

Verfahren zum vorbereiten und ausführen von aufgaben mithilfe eines roboters, roboter und computerprogramm Download PDF

Info

Publication number
WO2023213989A1
WO2023213989A1 PCT/EP2023/061892 EP2023061892W WO2023213989A1 WO 2023213989 A1 WO2023213989 A1 WO 2023213989A1 EP 2023061892 W EP2023061892 W EP 2023061892W WO 2023213989 A1 WO2023213989 A1 WO 2023213989A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
action
user
module
action sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/EP2023/061892
Other languages
English (en)
French (fr)
Inventor
Samuel Bustamante Gomez
Ismael Valentin RODRIGUEZ BRENA
Daniel Leidner
Jörn Vogel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Deutsches Zentrum fuer Luft und Raumfahrt eV
Original Assignee
Deutsches Zentrum fuer Luft und Raumfahrt eV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Deutsches Zentrum fuer Luft und Raumfahrt eV filed Critical Deutsches Zentrum fuer Luft und Raumfahrt eV
Priority to DE112023002127.9T priority Critical patent/DE112023002127A5/de
Priority to US18/863,253 priority patent/US20250303565A1/en
Publication of WO2023213989A1 publication Critical patent/WO2023213989A1/de
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1656Program controls characterised by programming, planning systems for manipulators
    • B25J9/1661Program controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40391Human to robot skill transfer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40392Programming, visual robot programming language
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40397Programming language for robots, universal, user oriented

Definitions

  • the invention relates to a method for preparing and executing tasks using a robot.
  • the invention also relates to a robot for carrying out tasks.
  • the invention also relates to a computer program.
  • the document DE 10 2017 209 032 A1 relates to a method for controlling a robot.
  • the document DE 10 2017 209 032 A1 proposes to determine various actions that can be carried out by the robot, to restrict the actions that can be carried out by the robot according to at least one precondition and to display this limited number of actions that can be performed by the robot on a display device so that the user can select an action to be performed from this limited number.
  • the document DE 10 2021 104 883 B3 relates to a method for robot-assisted execution of tasks, wherein a robot is controlled in a shared manner in a first support mode using a user module and is autonomously controlled in a user-monitored manner in a second support mode using an automation module.
  • a robot is controlled in a shared manner in a first support mode using a user module and is autonomously controlled in a user-monitored manner in a second support mode using an automation module.
  • adjustable autonomy particularly in the context of assistive robotics, the user module and the automation module are represented within a shared control module and use the same action representation.
  • German patent application filed on February 25, 2022 with the official file number 10 2022 104 525.0 relates to a method for carrying out tasks using a robot, the robot being controlled in a first execution mode and in at least one further execution mode, with one on an action goal-directed action sequence is generated and executed and the same action representations are used to control the robot in the first execution mode and in the at least one further execution mode.
  • the invention is based on the object of providing a method mentioned at the outset or of improving it structurally and/or functionally.
  • the invention is based on the object of providing a robot mentioned at the outset or of improving it structurally and/or functionally.
  • the invention is based on the object of providing a computer program mentioned at the outset or of improving it structurally and/or functionally.
  • the method can be used to control the robot.
  • “control” refers in particular to control technology and/or control technology.
  • Tasks to be carried out can be tasks that a user and/or a robot can/can carry out.
  • Tasks to be carried out can be tasks in which a robot supports a user.
  • the method may be used to control the robot in cooperation with a human user who uses the robot to assist in performing tasks (robotic tasks with a human-in-the-loop, RTHL).
  • the method may be used using at least one
  • the process can be carried out using a control device on the robot.
  • An action goal can be performing or completing a specific task.
  • An action goal can be an overall goal.
  • An action goal can be achieved by performing appropriate actions.
  • An action goal can be achieved by performing appropriate actions sequentially.
  • Actions to be carried out and/or executed can form an action sequence.
  • An action sequence can include the actions to be carried out and/or executed to achieve the action goal or can be formed by these actions.
  • An action sequence can be generated in a planning phase.
  • An action sequence can be generated by creating, selecting, composing, lining up, listing, and/or ordering.
  • An action sequence can be a symbolic plan.
  • the symbolic plan can contain all the symbolic transitions necessary to achieve an action goal.
  • An action sequence can be generated using a symbolic planner.
  • An action sequence directed toward an action goal may be an action sequence designed to accomplish the action goal.
  • An action sequence can be generated and/or executed to achieve the action goal.
  • a sequence of actions can be neither predetermined nor fixed.
  • An action sequence can be planned to achieve an action goal.
  • An action sequence can be individually planned to achieve a specific action goal. At least one action and at least one further action of the action sequence can be carried out at least partially in parallel with one another.
  • the environmental information can be generated and/or provided using a mathematical model.
  • the environmental information may be generated and/or provided using a mathematical model of the environment.
  • the environment may include the robot, parts of the robot and/or objects present in a work area of the robot.
  • Environmental information can be information about the robot, parts of the robot and/or objects present in a work area of the robot.
  • Environmental information can be information about a state of the robot, about a state of parts of the robot and / or about a state of objects present in a work area of the robot at a certain point in time.
  • Environmental information can describe current properties of the robot, parts of the robot and/or objects present in a work area of the robot.
  • the environmental information can be used in an action sequence.
  • the environment information can be generated, provided and/or used as object definitions.
  • Data used to generate an action sequence can be called input data.
  • Input data may include action definitions and/or object definitions.
  • Action definitions can define actions.
  • the actions can be part of an action sequence.
  • Object definitions can define objects.
  • Object definitions can include environmental information.
  • An action goal can be determined taking into account a user command.
  • a user command may be based on input and/or selection by a user.
  • a user command can be an input or selection of an action target by a user.
  • the user command probability may be a probability that an action goal will be entered or selected by a user.
  • the user command probability can be determined taking into account environmental information.
  • a likely action goal can be an action goal that a user is likely to enter or select.
  • a likely action goal can be a specific task that a user is likely to perform or complete.
  • the following steps can be carried out for a selection by the user: determining possible action goals, restricting a number of the determined possible action goals taking into account at least one precondition and/or offering the limited number of action goals in order to enable the user to make a selection.
  • the limited number of action goals may be presented to the user by displaying them on a display device.
  • the precondition can be a global precondition, which states in particular that an action sequence aimed at an action goal can only be carried out after a required preceding action sequence has been completed.
  • the precondition can state that an action sequence can be completed with a limited number of actions, although this number can be adjustable.
  • An action sequence can be defined as an exception and available to the user to choose from offered even though the number of actions required to complete that action sequence exceeds a permitted limited number.
  • the precondition can state that only action sequences are displayed on objects to be manipulated that are less than an adjustable maximum distance from the robot.
  • a blacklist with invalid action sequences can be created and the precondition can state that an action sequence that is on the blacklist may not be offered to the user for selection.
  • a whitelist of required action sequences can be created and the precondition can state that an action sequence that is on the whitelist must be offered to the user for selection.
  • the prerequisite may state that the robot may only be used in a limited spatial area, particularly within the user's home.
  • the precondition can state that the user may only be offered action sequences to choose from that do not exceed a predetermined energy requirement.
  • the method may include a preparation phase and an execution phase.
  • the preparation phase can be completed before the execution phase.
  • the execution phase can be completed after the preparation phase.
  • the execution phase can be traversed following a user command to execute a likely action target.
  • the execution phase can be passed through after a user command to execute an action goal that is not determined as a likely action goal, as soon as at least one preparatory action sequence directed at this action goal has been generated and executed in order to determine object-dependent constraints.
  • several preparation action sequences can be generated.
  • the Preparation phase allows multiple preparation action sequences to be generated for the same probable action goal.
  • multiple preparation action sequences can be generated for different probable action goals.
  • the at least one preparation action sequence can be saved.
  • the at least one preparation action sequence can be saved for later modification and/or execution.
  • the at least one preparation action sequence and/or the at least one execution action sequence can/can be generated in a planning phase.
  • at least one preliminary action sequence can be generated.
  • the at least one preliminary action sequence can be carried out and tested simulatively in the planning phase.
  • the preliminary action sequence can be tested with different parameters.
  • the at least one preliminary action sequence can be saved.
  • the at least one preliminary action sequence can be saved for later modification and/or execution.
  • An execution phase can be initiated with a user command. In the execution phase, a preliminary action sequence can be actually executed. In the execution phase, a preliminary action sequence aimed at an action goal selected by a user can be actually executed.
  • object-dependent constraints can be determined and saved.
  • Object-dependent constraints can be constraints caused by environmental objects.
  • Environmental objects can be the robot, parts of the robot and/or objects present in a work area of the robot.
  • Object-dependent constraints can be constraints that exist at a specific point in time.
  • Object-dependent constraints can be constraints caused by the robot, by parts of the robot and/or by objects present in a work area of the robot.
  • Execution phase the stored object-dependent constraints are used in at least one execution action sequence.
  • the robot can be shared using the same action representations in a first support mode and controlled autonomously in a user-monitored manner in a second support mode.
  • An assistance mode may be designed to perform tasks with robot assistance.
  • the robot In the first support mode, the robot can be controlled in a shared manner.
  • the robot In the first support mode, the robot can be shared controlled using a user module.
  • the first support mode can also be referred to as “shared control”.
  • the robot In the second support mode, the robot can be controlled autonomously in a user-monitored manner.
  • the robot can be controlled autonomously in a user-monitored manner using at least one automation module.
  • the second support mode can also be referred to as “supervised autonomy”.
  • the user module and the automation module can be represented within a shared control module.
  • At least one support mode may be configured to perform teleoperations.
  • At least one assist mode may be designed to perform fully autonomous operations.
  • At least one support mode can be designed for direct control of the robot.
  • Shared control or “shared control” means in particular that the robot, in particular control variables of the robot, can be controlled shared by the user using a user module and/or autonomously using an automation module.
  • the robot can be controlled partly using a user module and partly using an automation module.
  • a split between a control using a user module and a control using an automation module can be changed in a controlled manner.
  • a split between a control using a user module and a control using an automation module can be seamlessly changed.
  • “Seamless” can be used here in particular mean that a change or a change takes place at least approximately without influence on the execution of the task.
  • a share of control using a user module can range from almost 0% to almost 100% and a share of control using an automation module can range from almost 100% to almost 0%, with a share of control from a user module and a share of control from an automation module together always being 100%. be.
  • approximately 10% of the control can be carried out by the user and approximately 90% by the robot's control device.
  • the robot, in particular the control variables, can be controlled proportionally and/or divided along the degrees of freedom of movement. Shared control can be understood as a compromise between direct control and supervised autonomy, where the user directly and continuously controls only part of the task and leaves the rest to the robot.
  • Monitored autonomy means in particular that the user has handed over the execution of a task to the robot and the robot carries out the task independently under supervision.
  • Supervised autonomy traditionally includes two elements: First, declarative knowledge in the form of symbols that allows the robot to generate an abstract high-level plan. Second, procedural knowledge in the form of geometric operations that helps the robot create and execute low-level motion plans.
  • a control module can be a virtual module and/or comprise virtual structures.
  • the user module and/or the automation module may/can be a virtual module and/or comprise virtual structures.
  • the user module and/or the automation module can be a structurally and/or functionally distinguishable or delimitable module.
  • the automation module can be designed to control the robot autonomously.
  • the automation module can be designed to complete tasks specified by task definitions.
  • the automation module can be designed to generate input commands for autonomous control as an action representation.
  • the user module can be designed to suit the robot control user commands.
  • the user module may be configured to generate input commands for shared control as an action representation.
  • the control module can plan movements and trajectories in the same virtual structures in the first support mode and in the second support mode. Input commands of the control module may use the same virtual structures in the first support mode and in the second support mode.
  • the robot In the first support mode, the robot can be controlled by a user via virtual structures, in particular via a user module.
  • the automation module can plan movements and trajectories in the same virtual structures in which a user generates commands. Automation module input commands and user module input commands can use the same virtual structures.
  • a shared control module may include a user module and an automation module.
  • the automation module can be integrated into the user module.
  • the user module may include the automation module.
  • a shared control module can also be referred to as a “shared control module with integrated autonomy” (English: Shared Control with Integrated Autonomy, SCIA).
  • the user module and the automation module can use the same action representations with their respective input commands.
  • the automation module can use the user module's action representations.
  • the user module can use an action representation of the automation module.
  • the action representations can be virtual structures and/or include virtual structures.
  • output commands for controlling the robot can be generated based on input commands.
  • output commands for controlling the robot can be generated based on input commands from the automation module and/or on input commands from the user module.
  • the output commands can also be referred to as a robot control signal.
  • the input commands may be commands within the common or shared control module.
  • the input commands can be commands originating from the control module, for example from the automation module and/or from the user module.
  • the input commands can be commands from which output commands are generated.
  • the output commands can be generated directly based on input commands from the control module, for example based on input commands from the automation module and/or on input commands from the user module.
  • the output commands can be generated without separate output commands from the control module, for example without separate output commands from the automation module and/or output commands from the user module.
  • the output commands can be generated according to an active execution mode, for example according to an active support mode.
  • the output commands can be generated based on input commands from an automation module and/or on input commands from the user module.
  • the output commands can be generated based on input commands from the automation module.
  • the output commands may be common or shared control module output commands.
  • the output commands can be commands for controlling the robot.
  • the output commands may be commands sent to the robot to control the robot.
  • a change between the first support mode and the second support mode can be made possible based on input commands from the control module, for example based on input commands from the automation module and/or on input commands from the user module.
  • the automation module can be activated and/or deactivated. Switching between the first support mode and the second support mode can be done in traded control.
  • shared control with switching between the first support mode and the second support mode can also be referred to as “shared and traded control”.
  • a transfer of the input commands of the automation module and/or the input commands of the user module can take place within a shared control module, in particular within virtual structures that a user also uses for input.
  • Switching between the first support mode and the second support mode can be done by activating/deactivating the automation module.
  • the automation module In the first support mode, the automation module may be disabled.
  • the automation module In the second support mode, the automation module can be activated.
  • the automation module can be disabled by default.
  • the automation module can be activated and/or deactivated by a user command.
  • the stored object-dependent constraints can be used in the first support mode and/or in the second support mode.
  • the robot In the first support mode and/or in the second support mode, the robot can be controlled using a control module.
  • the control module may be a common control module designed to control the robot in the first assistance mode and in the second assistance mode.
  • the control module may be a split control module.
  • a shared control module can have a first submodule and at least one further submodule.
  • a shared control module may have a first submodule and a second submodule.
  • a first submodule may be designed to control the robot in the first support mode.
  • Another submodule can be designed to control the robot in the second support mode.
  • a first submodule can be designed as a user module.
  • a second submodule can be designed as an automation module.
  • Different degrees of autonomy can be assigned to the robot in the first support mode and in the second support mode.
  • the robot In the first support mode, the robot may be assigned a lower autonomy than in the second support mode.
  • the robot In the second support mode, the robot can be assigned greater autonomy than in the first support mode.
  • the first support mode and the second support mode may be executed sequentially, weighted sequential, parallel and/or weighted parallel.
  • suitable action definitions can be selected from a large number of action definitions.
  • the action definitions can be contained in an action database.
  • the action database can be a central database.
  • Declarative and/or procedural knowledge can be used when generating the action sequence.
  • declarative and/or procedural knowledge from the action definitions can be used.
  • finite state machines can be created in the form of shared control templates (SCTs).
  • SCTs shared control templates
  • the shared control templates can be designed to generate output commands from input commands of the control module, for example from input commands from the automation module and/or input commands from the user module.
  • the common or shared control module can use shared control templates. States and transitions can form key elements between shared control templates. Each state can represent a different skill phase. Transitions between states can be triggered when certain predefined events occur between objects of interest in the workspace.
  • Input commands from the control module for example Input commands from the automation module and/or input commands from the user module can be mapped to task-relevant robot movements using the shared control templates.
  • the output commands can be generated by mapping the input commands of the control module, for example the input commands of the automation module and/or the input commands of the user module, to task-relevant robot movements.
  • a shared control template can assist a user in achieving a task by providing object and task-specific mappings and constraints for each state of a skill.
  • the FSM can monitor progress and trigger transitions between the different states.
  • Autonomy can be implemented within an SCT. Autonomy can use this SCT.
  • the automation module can be defined and transmit input commands to the SCT. While executing a task in the SCIA, control of the robot can always remain within an SCT and input authority can be switched between the automation module and the user module. This means that the SCT is independent of whether an input command comes from the automation module or the user module. Regardless of whether the input commands come from the automation module or from the user module, the same state transitions, input assignments, active boundary conditions and/or the same overall control can always be applied.
  • the user command probability can be determined using a mathematical model.
  • the user command probability can be determined using a stochastic model such as hidden Markov model, a directed acyclic graph such as Bayesian network, an undirected probabilistic model, a stochastic process such as Gaussian process, maximum entropy inverse optimal control or Laplace's method become.
  • the preparatory action sequence and/or an action sequence that has not yet been carried out in the preparation phase can/can be carried out in reality and/or simulatively.
  • the preparation phase can be carried out continuously.
  • the preparation phase can be carried out at least substantially uninterrupted.
  • the preparation phase can also be referred to as a preparation function.
  • the preparation phase can be performed with low prioritization in relation to other tasks performed using the robot.
  • the preparation phase can be carried out in the background.
  • the preparation phase can continue to be executed while going through an execution phase.
  • the preparation phase can be carried out while performing tasks using the robot. Performing other tasks using the robot may involve user commands.
  • the preparation phase can be automatic and/or initiated by a user command.
  • the preparation phase can be initiated by switching on the robot.
  • the preparation phase can be initiated after completion of an execution phase.
  • the preparation phase can be interrupted, resumed and/or ended.
  • the preparation phase can be paused, resumed and/or ended automatically and/or by a user command.
  • the preparation phase can be ended after initiating the execution phase.
  • the robot may be designed to assist a user in performing tasks.
  • the robot may be an autonomous mobile robot.
  • the robot can be an assistance robot, a humanoid robot, a personal robot or a service robot.
  • the robot can have kinematics.
  • the robot may have joints and limbs.
  • the robot may have actuators and sensors.
  • the robot can have an input and/or output device for a user, which can also be referred to as a user interface.
  • the input and/or output device can be designed to record user commands.
  • the input and/or output device can be designed to offer a user action goals to choose from.
  • the input and/or output device can be designed as a touchscreen.
  • the robot can have a control device.
  • the control device can have at least one processor, at least one main memory, at least one data memory and/or at least one signal interface.
  • the control device and the input and/or output device can be connected to one another in a signal-transmitting manner.
  • the computer program can be executable using the control device.
  • the robot can be a real robot.
  • the robot can be a simulated robot or a robot simulation.
  • the robot may have a user-triggerable switching system.
  • the switching system can serve to bring together at any time input commands of the control module, for example input commands of a first submodule, such as an automation module, and input commands of at least one further submodule, such as a user module, and/or between input commands of a first one Submodule, such as automation module, and input commands of at least one further submodule, such as user module.
  • Switching between input commands of a first submodule, such as automation module, and input commands of at least another submodule, such as user module can be initiated by a user's input command to change the execution mode, for example a support mode.
  • the computer program can be installed and/or executable on a control device of a robot.
  • the computer program can be in the form of a computer program product.
  • the computer program can be available on a data carrier as an installable and/or executable program file.
  • the computer program can be used to be loaded into a working memory of a control device of a robot.
  • the invention results in, among other things, a method for reducing robot planning times by pre-planning object-dependent constraints with joint control with integrated autonomy.
  • the invention provides a rapid and iteratively refined feasibility test.
  • the invention particularly includes the following features: a planning system for an assistance robot that can plan tasks in advance (A); the planning system takes the current state of the environment (including the robot) as input and estimates the n most likely actions to be selected (activated) by the user (B), performs feasibility checks (C), and stores environment-dependent constraints (D), which be able to get the robot to complete a task without colliding with obstacles or having problems with manipulation.
  • the constraints stored in (D) can be used immediately when the user activates one of the checked actions, saving planning time (F).
  • An action can be activated or started by the user via any user interface.
  • the limitations in memory in (D) can support the execution of tasks in both shared control and supervised autonomy (E). If an action is activated by the user and none has been activated yet If object-specific constraints exist, these can be calculated at the latest at the moment of activation
  • Fig. 1 shows a method for reducing robot planning times by determining object-dependent constraints with joint control with integrated autonomy in preparation for task execution and
  • Fig. 2 Feasibility tests with simulated trajectories in preparation for task execution.
  • FIG. 1 shows a process 100 of a method for reducing robot planning times by determining object-dependent constraints with joint control with integrated autonomy in preparation for task execution.
  • the method includes a preparation phase 102 and an execution phase 104.
  • a module 106 is used to determine constraints.
  • the module 106 includes a model 108 of the environment, a submodule 110 for determining a user command probability, a submodule 112 for checking the feasibility of action sequences and a submodule 114 for storing determined constraints, such as 116, 118, 120.
  • the module 106 is continuously executed in the background and uses environmental information 122, in particular information about a state of the robot 124, about a state of parts of the robot 124 and / or about a state of objects present in a work area of the robot 124, such as 126.
  • the environmental information 122 is updated regularly.
  • those action goals 128, 130, 132 are determined that a user 134 is most likely to select and these are acted upon probable action goals 128, 130, 132 directed preparation action sequences generated.
  • these preparatory action sequences are carried out and tested, taking into account both objects 126 of the environment and a position of the robot 124, in particular with regard to obstacles such as 135, and possible collisions, in order to find feasible ways to achieve the action goals 128, 130, 132 to determine the obstacles 135 or areas outside a robot workspace.
  • the object-dependent constraints 1 16, 1 18, 120, which limit the possible paths to achieving the action goals 128, 130, 132, are determined and stored using the submodule 1 14.
  • the user 134 selects one of the action goals 128, 130, 132, whereupon a corresponding execution action sequence 136 is executed.
  • the robot 124 is controlled autonomously in a user-monitored manner using a user interface 138 in shared control 140 or using a greedy algorithm 142 in monitored autonomy 144.
  • the shared control input commands 140 and the supervised autonomy input commands 144 use the same action representation. This means that a seamless change between shared control 140 and monitored autonomy 144 can take place with immediate effect during the execution of the execution action sequence 136, which is indicated in time course 146 in FIG.
  • FIG. 2 shows feasibility tests with simulated trajectories 200, 202, 204 in preparation for task execution using the example of a gripping task.
  • the task is to create a feasible sequence of actions to achieve one a robot 206 placed cup 208 to find.
  • the arrangement of the cup 208 in front of the robot 206 is shown in A.
  • B, C and D show three scenarios with a bottle 210 as an obstacle. In scenario B there is no obstacle.
  • scenario C an obstacle 212 lies in the periphery of the workspace 214.
  • an obstacle 212 lies on a direct path between robot 206 and cup 208.
  • a boundary 216 of the areas 218 in which a feasible action sequence can be carried out using the method according to the invention or can be found is shown in B, C and D with a dashed line.
  • the areas 218 in C and D are each a subset of the area 218 in B.
  • the starting position of the robot 206 and the position of the cup 208 to be gripped are determined and the objects are localized by detection.
  • Preparatory action sequences are then created, executed and tested using the method according to the invention.
  • trajectories 200, 202, 204 are scanned in two phases: First, in an exploration phase, an attempt is made to connect a starting position with action-related poses from the work space 214. such as B. Approach pose and grasping pose. The workspace 214 is completely scanned and updated after each scan until a feasible first trajectory section is found. If a feasible first trajectory section exists, the full scan is terminated and a control planner searches the local environment of this first trajectory section in an exploration phase, with the planner attempting to only add further approach and grasping poses. This continues up to the boundaries 216 of the area 218. The plan is complete if the distance is greater than a predetermined threshold. If this is not the case, the exploration phase is restarted. Exemplary trajectories 202, 204 with obstacle 212 are shown in B and C.
  • May refers in particular to optional features of the invention. Accordingly, there are also further developments and/or exemplary embodiments of the invention which additionally or alternatively have the respective feature or features.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

Verfahren zum Vorbereiten und Ausführen von Aufgaben mithilfe eines Roboters (124), wobei in einer Vorbereitungsphase (102) ausgehend von Umgebungsinformationen (122) und unter Berücksichtigung einer Benutzerbefehlswahrscheinlichkeit wenigstens ein wahrscheinliches Aktionsziel (128, 130, 132) bestimmt wird, wenigstens eine auf das wenigstens eine wahrscheinliche Aktionsziel (128, 130, 132) gerichtete Vorbereitungs-Aktionssequenz generiert wird und die wenigstens eine Vorbereitungs- Aktionssequenz ausgeführt wird, Roboter (124) zum Ausführen von Aufgaben und Computerprogramm.

Description

Verfahren zum Vorbereiten und Ausführen von Aufgaben mithilfe eines Roboters, Roboter und Computerprogramm
Beschreibung
[0001 ] Die Erfindung betrifft ein Verfahren zum Vorbereiten und Ausführen von Aufgaben mithilfe eines Roboters. Außerdem betrifft die Erfindung einen Roboter zum Ausführen von Aufgaben. Außerdem betrifft die Erfindung ein Computerprogramm.
[0002] Das Dokument DE 10 2017 209 032 A1 betrifft ein Verfahren zum Steuern eines Roboters. Um eine Auswahl einer vom Roboter durchzuführenden Aktion durch einen Nutzer zu vereinfachen, wird mit dem Dokument DE 10 2017 209 032 A1 vorgeschlagen, verschiedene Aktionen, die durch den Roboter durchführbar sind, zu ermitteln, die vom Roboter durchführbaren Aktionen gemäß mindestens einer Vorbedingung einzuschränken und diese eingeschränkte Anzahl der vom Roboter durchführbaren Aktionen auf einer Anzeigevorrichtung anzuzeigen, sodass der Nutzer aus dieser eingeschränkten Anzahl eine durchzuführende Aktion auswählen kann.
[0003] Das Dokument DE 10 2021 104 883 B3 betrifft ein Verfahren zum roboterunterstützten Ausführen von Aufgaben, wobei ein Roboter in einem ersten Unterstützungsmodus mithilfe eines Benutzermoduls geteilt kontrolliert und in einem zweiten Unterstützungsmodus mithilfe eines Automationsmoduls benutzerüberwacht autonom kontrolliert wird. Um eine vom Benutzer ausgelöste, einstellbare Autonomie insbesondere im Kontext der assistiven Robotik zu ermöglichen, sind das Benutzermodul und das Automationsmodul innerhalb eines geteilten Kontrollmoduls dargestellt und verwenden dieselbe Aktionsrepräsentation.
[0004] Die am 25.02.2022 angemeldete deutsche Patentanmeldung mit dem amtlichen Aktenzeichen 10 2022 104 525.0 betrifft ein Verfahren zum Ausführen von Aufgaben mithilfe eines Roboters, wobei der Roboter in einem ersten Ausführungsmodus und in wenigstens einem weiteren Ausführungsmodus kontrolliert wird, wobei eine auf ein Aktionsziel gerichtete Aktionssequenz generiert und ausgeführt wird und zum Kontrollieren des Roboters in dem ersten Ausführungsmodus und in dem wenigstens einen weiteren Ausführungsmodus dieselben Aktionsrepräsentationen verwendet werden.
[0005] Der Erfindung liegt die Aufgabe zugrunde, ein eingangs genanntes Verfahren bereit zu stellen oder strukturell und/oder funktionell zu verbessern. Außerdem liegt der Erfindung die Aufgabe zugrunde, einen eingangs genannten Roboter bereit zu stellen oder strukturell und/oder funktionell zu verbessern. Außerdem liegt der Erfindung die Aufgabe zugrunde, ein eingangs genanntes Computerprogramm bereit zu stellen oder strukturell und/oder funktionell zu verbessern.
[0006] Die Aufgabe wird gelöst mit einem Verfahren mit den Merkmalen des Anspruchs 1 . Außerdem wird die Aufgabe gelöst mit einem Roboter mit den Merkmalen des Anspruchs 9. Außerdem wird die Aufgabe gelöst mit einem Computerprogramm mit den Merkmalen des Anspruchs 10. Vorteilhafte Ausführungen und/oder Weiterbildungen sind Gegenstand der unabhängigen Ansprüche.
[0007] Das Verfahren kann zum Kontrollieren des Roboters dienen. „Kontrollieren" bezeichnet in diesem Zusammenhang vorliegend insbesondere ein regelungstechnisches und/oder steuerungstechnisches Kontrollieren. Auszuführende Aufgaben können Aufgaben sein, die ein Benutzer und/oder ein Roboter ausführen können/kann. Auszuführende Aufgaben können Aufgaben sein, bei denen ein Roboter einen Benutzer unterstützt. Das Verfahren kann zum Kontrollieren des Roboters bei Kooperation mit einem menschlichen Benutzer, der den Roboter zur Unterstützung beim Ausführen von Aufgaben benutzt (englisch: robotic tasks with a human-in-the-loop, RTHL), dienen. Das Verfahren kann mithilfe wenigstens eines Prozessors durchgeführt werden. Das Verfahren kann mithilfe einer Kontrolleinrichtung des Roboters durchgeführt werden.
[0008] Ein Aktionsziel kann ein Ausführen oder Erfüllen einer spezifischen Aufgabe sein. Ein Aktionsziel kann ein Gesamtziel sein. Ein Aktionsziel kann durch Ausführen geeigneter Aktionen erreichbar sein. Ein Aktionsziel kann durch sequentielles Ausführen geeigneter Aktionen erreichbar sein. Die zum Erreichen des Aktionsziels auszuführenden und/oder ausgeführten Aktionen können eine Aktionssequenz bilden. Eine Aktionssequenz kann die zum Erreichen des Aktionsziels auszuführenden und/oder ausgeführten Aktionen umfassen oder durch diese Aktionen gebildet sein. Eine Aktionssequenz kann in einer Planungsphase generiert werden. Eine Aktionssequenz kann durch Erzeugen, Auswahlen, Zusammenstellen, Aneinanderreihen, Auflisten und/oder Ordnen generiert werden. Eine Aktionssequenz kann ein symbolischer Plan sein. Der symbolische Plan kann alle symbolischen Übergänge enthalten, die zum Erreichen eines Aktionsziels erforderlich sind. Eine Aktionssequenz kann mithilfe eines symbolischen Planers generiert werden. Eine auf ein Aktionsziel gerichtete Aktionssequenz kann eine Aktionssequenz sein, die zum Erfüllen des Aktionsziels ausgelegt ist. Eine Aktionssequenz kann generiert und/oder ausgeführt werden, um das Aktionsziel zu erreichen. Eine Aktionssequenz kann weder vorbestimmt noch fest sein. Eine Aktionssequenz kann zum Erreichen eines Aktionsziels geplant werden. Eine Aktionssequenz kann zum Erreichen eines spezifischen Aktionsziels individuell geplant werden. Wenigstens eine Aktion und wenigstens eine weitere Aktion der Aktionssequenz können zumindest teilweise parallel zueinander ausgeführt werden.
[0009] Die Umgebungsinformationen können mithilfe eines mathematischen Modells generiert und/oder bereitgestellt werden. Die Umgebungsinformationen können mithilfe eines mathematischen Modells der Umgebung generiert und/oder bereitgestellt werden. Die Umgebung kann den Roboter, Teile des Roboters und/oder in einem Arbeitsbereich des Roboters vorhandene Objekte umfassen. Umgebungsinformationen können Informationen über den Roboter, Teile des Roboters und/oder in einem Arbeitsbereich des Roboters vorhandene Objekte sein. Umgebungsinformationen können Informationen über einen Zustand des Roboters, über einen Zustand von Teilen des Roboters und/oder über einen Zustand von in einem Arbeitsbereich des Roboters vorhandenen Objekten zu einem bestimmten Zeitpunkt sein. Umgebungsinformationen können momentane Eigenschaften des Roboters, von Teilen des Roboters und/oder von in einem Arbeitsbereich des Roboters vorhandenen Objekten beschreiben. [0010] Die Umgebungsinformationen können in einer Aktionssequenz verwendet werden. Die Umgebungsinformationen können als Objektdefinitionen generiert, bereitgestellt und/oder verwendet werden. Zum Generieren einer Aktionssequenz verwendete Daten können als Eingabedaten bezeichnet werden. Eingabedaten können Aktionsdefinitionen und/oder Objektdefinitionen umfassen. Aktionsdefinitionen können Aktionen definieren. Die Aktionen können Teil einer Aktionssequenz sein. Objektdefinitionen können Objekte definieren. Objektdefinitionen können Umgebungsinformationen umfassen.
[0011 ] Ein Aktionsziel kann unter Berücksichtigung eines Benutzerbefehls bestimmt werden. Ein Benutzerbefehl kann auf einer Eingabe und/oder auf einer Auswahl durch einen Benutzer basieren. Ein Benutzerbefehl kann eine Eingabe oder Auswahl eines Aktionsziels durch einen Benutzer sein.
[0012] Die Benutzerbefehlswahrscheinlichkeit kann eine Wahrscheinlichkeit sein, mit der ein Aktionsziel von einem Benutzer eingegeben oder ausgewählt werden wird. Die Benutzerbefehlswahrscheinlichkeit kann unter Berücksichtigung von Umgebungsinformationen bestimmt werden. Ein wahrscheinliches Aktionsziel kann ein Aktionsziel sein, das ein Benutzer wahrscheinlich eingeben oder auswählen wird. Ein wahrscheinliches Aktionsziel kann eine spezifische Aufgabe sein, die ein Benutzer wahrscheinlich ausführen oder erfüllen wird.
[0013] Für eine Auswahl durch den Benutzer können folgende Schritte ausgeführt werden: Ermitteln möglicher Aktionsziele, Einschränken einer Anzahl der ermittelten möglichen Aktionsziele unter Berücksichtigung wenigstens einer Vorbedingung und/oder Anbieten der eingeschränkten Anzahl von Aktionszielen, um dem Benutzer eine Auswahl zu ermöglichen. Die eingeschränkte Anzahl von Aktionszielen kann dem Benutzer durch Anzeigen auf einer Anzeigevorrichtung angeboten werden. Die Vorbedingung kann eine globale Vorbedingung sein, die insbesondere besagt, dass eine auf ein Aktionsziel gerichtete Aktionssequenz erst ausführbar ist, nachdem eine erforderliche vorausgehende Aktionssequenz abgeschlossen ist. Die Vorbedingung kann besagen, dass eine Aktionssequenz mit einer begrenzten Anzahl von Aktionen abgeschlossen werden kann, wobei diese Anzahl einstellbar sein kann. Eine Aktionssequenz kann als Ausnahme definiert werden und dem Benutzer zur Auswahl angeboten werden, obwohl die zum Abschließen dieser Aktionssequenz erforderlichen Anzahl von Aktionen eine zugelassene begrenzte Anzahl überschreitet. Die Vorbedingung kann besagen, dass nur Aktionssequenzen an zu manipulierenden Objekten angezeigt werden, die weniger als ein einstellbarer Höchstabstand vom Roboter entfernt sind. Es kann eine Blacklist mit unzulässigen Aktionssequenzen angelegt wird und die Vorbedingung kann besagen, dass eine auf der Blacklist stehende Aktionssequenz dem Benutzer nicht zur Auswahl angeboten werden darf. Es kann eine Whitelist mit erforderlichen Aktionssequenzen angelegt werden und die Vorbedingung kann besagen, dass eine auf der Whitelist stehende Aktionssequenz dem Benutzer zur Auswahl angeboten werden muss. Die Vorbedingung kann besagen, dass der Roboter ausschließlich in einem begrenzten räumlichen Bereich, insbesondere innerhalb der Wohnung des Nutzers verwendet werden darf. Die Vorbedingung kann besagen, dass dem Benutzer nur Aktionssequenzen zur Auswahl angeboten werden dürfen, die einen vorbestimmten Energiebedarf nicht überschreiten.
[0014] Zum weiteren diesbezüglichen technologischen Hintergrund wird auf die Veröffentlichung „D. S. Leidner, Cognitive Reasoning for Compliant Robot Manipulation, ser. Springer Tracts in Advanced Robotics. Cham: Springer International Publishing, 2019, vol. 127." verwiesen, deren Merkmale auch zur Lehre der vorliegenden Erfindung gehört und die vollständig in die Offenbarung der vorliegenden Erfindung einbezogen ist.
[0015] Das Verfahren kann eine Vorbereitungsphase und eine Ausführungsphase umfassen. Die Vorbereitungsphase kann vor der Ausführungsphase durchlaufen werden. Die Ausführungsphase kann nach der Vorbereitungsphase durchlaufen werden. Die Ausführungsphase kann nach einem Benutzerbefehl zum Ausführen eines wahrscheinlichen Aktionsziels durchlaufen werden. Die Ausführungsphase kann nach einem Benutzerbefehl zum Ausführen eines nicht als wahrscheinliches Aktionsziel bestimmten Aktionsziels durchlaufen werden, sobald wenigstens eine auf dieses Aktionsziel gerichtete Vorbereitungs-Aktionssequenz generiert und ausgeführt wurde, um objektsabhängige Zwangsbedingungen zu ermitteln. In der Vorbereitungsphase können mehrere Vorbereitungs-Aktionssequenzen generiert werden. In der Vorbereitungsphase können mehrere Vorbereitungs-Aktionssequenzen für dasselbe wahrscheinliche Aktionsziel generiert werden. In der Vorbereitungsphase können mehrere Vorbereitungs-Aktionssequenzen für unterschiedliche wahrscheinliche Aktionsziele generiert werden. Die wenigstens eine Vorbereitungs-Aktionssequenz kann gespeichert werden. Die wenigstens eine Vorbereitungs-Aktionssequenz kann zur späteren Modifikation und/oder Ausführung gespeichert werden.
[0016] Die wenigstens eine Vorbereitungs-Aktionssequenz und/oder die wenigstens eine Ausführungs-Aktionssequenz können/kann in einer Planungsphase generiert werden. Beim/zum Generieren der wenigstens eine Vorbereitungs-Aktionssequenz und/oder die wenigstens eine Ausführungs-Aktionssequenz können/kann wenigstens eine vorläufige Aktionssequenz generiert werden. Die wenigstens eine vorläufige Aktionssequenz kann in der Planungsphase simulativ ausgeführt und getestet werden. Die vorläufige Aktionssequenz kann mit unterschiedlichen Parametern getestet werden. Die wenigstens eine vorläufige Aktionssequenz kann gespeichert werden. Die wenigstens eine vorläufige Aktionssequenz kann zur späteren Modifikation und/oder Ausführung gespeichert werden. Mit einem Benutzerbefehl kann eine Ausführungsphase initiiert werden. In der Ausführungsphase kann eine vorläufige Aktionssequenz real ausgeführt werden. In der Ausführungsphase kann eine auf ein von einem Benutzer ausgewähltes Aktionsziel gerichtete vorläufige Aktionssequenz real ausgeführt werden.
[0017] Beim Ausführen der wenigstens einen Vorbereitungs-Aktionssequenz können objektabhängige Zwangsbedingungen ermittelt und gespeichert werden. Objektabhängige Zwangsbedingungen können durch Umgebungsobjekte bedingte Zwangsbedingungen sein. Umgebungsobjekte können der Roboter, Teile des Roboters und/oder in einem Arbeitsbereich des Roboters vorhandene Objekte sein. Objektabhängige Zwangsbedingungen können in einem bestimmten Zeitpunkt bestehende Zwangsbedingungen sein. Objektabhängige Zwangsbedingungen können durch den Roboter, durch Teile des Roboters und/oder durch in einem Arbeitsbereich des Roboters vorhandene Objekte bedingte Zwangsbedingungen sein. Beim Ausführen der wenigstens einen Vorbereitungs-Aktionssequenz kann eine Kollisionsprüfung mit Hindernissen durchgeführt werden. Die Hindernisse können Umgebungsobjekte sein. Nach einem Benutzerbefehl können in einer
Ausführungsphase die gespeicherten objektabhängigen Zwangsbedingungen in wenigstens einer Ausführungs-Aktionssequenz verwendet werden.
[0018] Der Roboter kann unter Verwendung derselben Aktionsrepräsentationen in einem ersten Unterstützungsmodus geteilt und in einem zweiten Unterstützungsmodus benutzerüberwacht autonom kontrolliert werden. Ein Unterstützungsmodus kann zum roboterunterstützten Ausführen von Aufgaben ausgelegt sein. In dem ersten Unterstützungsmodus kann der Roboter geteilt kontrolliert werden. In dem ersten Unterstützungsmodus kann der Roboter mithilfe eines Benutzermoduls geteilt kontrolliert werden. Der erste Unterstützungsmodus kann auch als „geteilte Kontrolle" (englisch: Shared Control) bezeichnet werden. In dem zweiten Unterstützungsmodus kann der Roboter benutzerüberwacht autonom kontrolliert werden. In dem zweiten Unterstützungsmodus kann der Roboter mithilfe wenigstens eines Automationsmoduls benutzerüberwacht autonom kontrolliert werden. Der zweite Unterstützungsmodus kann auch als „überwachte Autonomie" (englisch: Supervised Autonomy) bezeichnet werden. Das Benutzermodul und das Automationsmodul können innerhalb eines geteilten Kontrollmoduls dargestellt sein. Wenigstens ein Unterstützungsmodus kann zum Ausführen von Teleoperationen ausgelegt sein. Wenigstens ein Unterstützungsmodus kann zum Ausführen vollständig autonomer Operationen ausgelegt sein. Wenigstens ein Unterstützungsmodus kann zum direkten Kontrollieren (englisch: Direct Control) des Roboters ausgelegt sein.
[0019] „Geteilte Kontrolle" bzw. „Shared Control" bedeutet insbesondere, dass der Roboter, insbesondere Steuerungsvariablen des Roboters, geteilt vom Benutzer mithilfe eines Benutzermoduls und/oder autonom mithilfe eines Automationsmoduls kontrolliert werden kann. Der Roboter kann teilweise mithilfe eines Benutzermoduls und teilweise mithilfe eines Automationsmoduls kontrolliert werden. Eine Aufteilung zwischen einer Kontrolle mithilfe eines Benutzermoduls und einer Kontrolle mithilfe eines Automationsmoduls kann kontrolliert änderbar sein. Eine Aufteilung zwischen einer Kontrolle mithilfe eines Benutzermoduls und einer Kontrolle mithilfe eines Automationsmoduls kann nahtlos änderbar sein. „Nahtlos" kann vorliegend insbesondere bedeuten, dass eine Änderung oder ein Wechsel zumindest annähernd ohne Einfluss für das Ausführen der Aufgabe abläuft. Ein Anteil der Kontrolle mithilfe eines Benutzermoduls kann zwischen fast 0% und fast 100% liegen und ein Anteil der Kontrolle mithilfe eines Automationsmoduls kann zwischen fast 100% und fast 0% liegen, wobei ein Kontrollanteil eines Benutzermoduls und ein Kontrollanteil eines Automationsmoduls zusammen immer 100% betragen. Beispielsweise kann eine Kontrolle zu ca. 10% durch den Benutzer und zu ca. 90% durch die Kontrolleinrichtung des Roboters erfolgen. Der Roboter, insbesondere die Steuerungsvariablen, können proportional und/oder aufgeteilt entlang der Bewegungsfreiheitsgrade kontrolliert werden. Die geteilte Kontrolle kann als Kompromiss zwischen direkter Kontrolle und überwachter Autonomie verstanden werden, wobei der Benutzer nur einen Teil der Aufgabe direkt und kontinuierlich kontrolliert und den Rest dem Roboter überlässt.
[0020] Überwachte Autonomie bedeutet insbesondere, dass der Benutzer ein Ausführen einer Aufgabe an den Roboter übergeben hat und der Roboter die Aufgabe unter Überwachung selbständig ausführt. Die überwachte Autonomie umfasst traditionell zwei Elemente: Erstens, deklaratives Wissen in Form von Symbolen, das dem Roboter das Generieren eines abstrakten High-Level-Plans ermöglicht. Zweitens prozedurales Wissen in Form von geometrischen Operationen, das den Roboter dabei unterstützt, Low-Level-Bewegungspläne zu erstellen und auszuführen.
[0021 ] Ein Kontrollmodul kann ein virtuelles Modul sein und/oder virtuelle Strukturen umfassen. Das Benutzermodul und/oder das Automationsmodul können/kann ein virtuelles Modul sein und/oder virtuelle Strukturen umfassen. Das Benutzermodul und/oder das Automationsmodul können/kann ein strukturell und/oder funktionell unterscheidbares oder abgrenzbares Modul sein. Das Automationsmodul kann dazu ausgelegt sein, den Roboter autonom zu kontrollieren. Das Automationsmodul kann dazu ausgelegt sein, durch Aufgabendefinitionen vorgegebene Aufgaben zu erledigen. Das Automationsmodul kann dazu ausgelegt sein, Eingabebefehle zum autonomen Kontrollieren als Aktionsrepräsentation zu generieren. Das Benutzermodul kann dazu ausgelegt sein, den Roboter entsprechend Benutzerbefehlen zu kontrollieren. Das Benutzermodul kann dazu ausgelegt sein, Eingabebefehle zum geteilten Kontrollieren als Aktionsrepräsentation zu generieren.
[0022] Das Kontrollmodul kann in dem ersten Unterstützungsmodus und in dem zweiten Unterstützungsmodus Bewegungen und Trajektorien in denselben virtuellen Strukturen planen. Eingabebefehle des Kontrollmoduls können in dem ersten Unterstützungsmodus und in dem zweiten Unterstützungsmodus dieselben virtuellen Strukturen verwenden. In dem ersten Unterstützungsmodus kann der Roboter durch einen Benutzer über virtuelle Strukturen, insbesondere über ein Benutzermodul, kontrollierbar sein. Das Automationsmodul kann Bewegungen und Trajektorien in denselben virtuellen Strukturen planen, in denen ein Benutzer Befehle generiert. Eingabebefehle des Automationsmoduls und Eingabebefehle des Benutzermoduls können dieselben virtuellen Strukturen verwenden.
[0023] Ein geteiltes Kontrollmodul kann ein Benutzermodul und ein Automationsmodul umfassen. Das Automationsmodul kann in das Benutzermodul integriert sein. Das Benutzermodul kann das Automationsmodul umfassen. Insofern kann ein geteiltes Kontrollmodul auch als „geteiltes Kontrollmodul mit integrierter Autonomie" (englisch: Shared Control with Integrated Autonomy, SCIA) bezeichnet werden.
[0024] Das Benutzermodul und das Automationsmodul können mit ihren jeweiligen Eingabebefehlen dieselben Aktionsrepräsentationen verwenden. Das Automationsmodul kann die Aktionsrepräsentationen des Benutzermoduls verwenden. Das Benutzermodul kann eine Aktionsrepräsentationen des Automationsmoduls verwenden. Die Aktionsrepräsentationen können virtuelle Strukturen sein und/oder virtuelle Strukturen umfassen.
[0025] Innerhalb des Kontrollmoduls können Ausgangsbefehle zum Kontrollieren des Roboters basierend auf Eingabebefehlen generiert werden. Innerhalb eines geteilten Kontrollmoduls können Ausgangsbefehle zum Kontrollieren des Roboters basierend auf Eingabebefehlen des Automationsmodul und/oder auf Eingabebefehlen des Benutzermoduls generiert werden. Die Ausgangsbefehle können auch als Robotersteuersignal bezeichnet werden. Die Eingabebefehle können Befehle innerhalb des gemeinsamen oder geteilten Kontrollmoduls sein. Die Eingabebefehle können von dem Kontrollmodul, beispielsweise von dem Automationsmodul und/oder von dem Benutzermodul ausgehende Befehle sein. Die Eingabebefehle können Befehle sein, aus denen Ausgangsbefehle generiert werden. Die Ausgangsbefehle können unmittelbar basierend auf Eingabebefehlen des Kontrollmoduls, beispielsweise basierend auf Eingabebefehlen des Automationsmoduls und/oder auf Eingabebefehlen des Benutzermoduls generiert werden. Die Ausgangsbefehle können ohne gesonderte Ausgangsbefehle des Kontrollmoduls, beispielsweise ohne gesonderte Ausgangsbefehle des Automationsmoduls und/oder Ausgangsbefehle des Benutzermoduls generiert werden.
[0026] Die Ausgangsbefehle können entsprechend einem aktiven Ausführungsmodus, beispielsweise entsprechend einem aktiven Unterstützungsmodus, generiert werden. In dem ersten Unterstützungsmodus können die Ausgangsbefehle basierend auf Eingabebefehlen eines Automationsmoduls und/oder auf Eingabebefehlen des Benutzermoduls generiert werden. In einem zweiten Unterstützungsmodus können die Ausgangsbefehle basierend auf Eingabebefehlen des Automationsmoduls generiert werden. Die Ausgangsbefehle können Ausgangsbefehle des gemeinsamen oder geteilten Kontrollmoduls sein. Die Ausgangsbefehle können Befehle zum Kontrollieren des Roboters sein. Die Ausgangsbefehle können Befehle sein, die an den Roboter gesendet werden, um den Roboter zu Kontrollieren.
[0027] Innerhalb des gemeinsamen oder geteilten Kontrollmoduls kann ein Wechseln zwischen dem ersten Unterstützungsmodus und dem zweiten Unterstützungsmodus basierend auf Eingabebefehlen des Kontrollmoduls, beispielsweise basierend auf Eingabebefehlen des Automationsmoduls und/oder auf Eingabebefehlen des Benutzermoduls, ermöglicht werden. Das Automationsmodul, kann aktivierbar und/oder deaktivierbar sein. Ein Wechseln zwischen dem ersten Unterstützungsmodus und dem zweiten Unterstützungsmodus kann in vermittelter Kontrolle (englisch: Traded Control) erfolgen. Insofern kann ein geteiltes Kontrollieren mit Wechsel zwischen dem ersten Unterstützungsmodus und dem zweiten Unterstützungsmodus auch als „Shared and Traded Control" bezeichnet werden. Ein Vermitteln der Eingabebefehle des Automationsmoduls und/oder der Eingabebefehle des Benutzermodul kann innerhalb eines geteilten Kontrollmoduls, insbesondere innerhalb virtueller Strukturen, die auch ein Benutzer zur Eingabe verwendet, erfolgen.
[0028] Ein Wechseln zwischen dem ersten Unterstützungsmodus und dem zweiten Unterstützungsmodus kann durch Aktivieren/Deaktivieren des Automationsmoduls erfolgen. In dem ersten Unterstützungsmodus kann das Automationsmodul deaktiviert sein. In dem zweiten Unterstützungsmodus, kann das Automationsmodul aktiviert sein. Das Automationsmodul kann standardmäßig deaktiviert sein. Das Automationsmodul kann durch einen Benutzerbefehl aktiviert und/oder deaktiviert werden.
[0029] Zum weiteren diesbezüglichen technologischen Hintergrund wird auf die Veröffentlichungen „S. Bustamante, G. Quere, K. Hagmann, X. Wu, P. Schmaus, J. Vogel, F. Stulp, and D. Leidner, "Toward seamless transitions between shared control and supervised autonomy in robotic assistance," IEEE Robotics and Automation Letters, vol. 6, no. 2, pp. 3833-3840, 2021." und „G. Quere, A. Hagengruber, M. Iskandar, S. Bustamante, D. Leidner, F. Stulp, and J. Vogel, "Shared Control Templates for Assistive Robotics," in 2020 IEEE International Conference on Robotics and Automation (ICRA), Paris, France, 2020, p. 7." verwiesen, deren Merkmale auch zur Lehre der vorliegenden Erfindung gehören und die vollständig in die Offenbarung der vorliegenden Erfindung einbezogen sind.
[0030] Die gespeicherten objektabhängigen Zwangsbedingungen können in dem ersten Unterstützungsmodus und/oder in dem zweiten Unterstützungsmodus verwendet werden. In dem ersten Unterstützungsmodus und/oder in dem zweiten Unterstützungsmodus kann der Roboter mithilfe eines Kontrollmoduls kontrolliert werden. Das Kontrollmodul kann ein gemeinsames Kontrollmodul sein, das zum Kontrollieren des Roboters in dem ersten Unterstützungsmodus und in dem zweiten Unterstützungsmodus ausgelegt ist. Das Kontrollmodul kann ein geteiltes Kontrollmodul sein. Ein geteiltes Kontrollmodul kann ein erstes Submodul und wenigstens ein weiteres Submodul aufweisen. Ein geteiltes Kontrollmodul kann ein erstes Submodul und ein zweites Submodul aufweisen. Ein erstes Submodul kann zum Kontrollieren des Roboters in dem ersten Unterstützungsmodus ausgelegt sein. Ein weiteres Submodul kann zum Kontrollieren des Roboters in dem zweiten Unterstützungsmodus ausgelegt sein. Ein erstes Submodul kann als Benutzermodul ausgeführt sein. Ein zweites Submodul kann als Automationsmodul ausgeführt sein. In dem ersten Unterstützungsmodus und in dem zweiten Unterstützungsmodus können dem Roboter unterschiedliche Autonomiegrade zugewiesen sein. In dem ersten Unterstützungsmodus kann dem Roboter eine geringere Autonomie zugewiesen sein als in dem zweiten Unterstützungsmodus. In dem zweiten Unterstützungsmodus kann dem Roboter eine größere Autonomie zugewiesen sein als in dem ersten Unterstützungsmodus. Der erste Unterstützungsmodus und der zweite Unterstützungsmodus können sequentiell, gewichtet sequentiell, parallel und/oder gewichtet parallel ausgeführt werden.
[0031 ] Beim/zum Generieren der wenigstens einen vorläufigen Aktionssequenz können aus einer Vielzahl von Aktionsdefinitionen geeignete Aktionsdefinitionen ausgewählt werden. Die Aktionsdefinitionen können in einer Aktionsdatenbank enthalten sein. Die Aktionsdatenbank kann eine zentrale Datenbank sein. Beim/zum Generieren der Aktionssequenz kann deklaratives und/oder prozedurales Wissen genutzt werden. Beim/zum Generieren der wenigstens einen vorläufigen Aktionssequenz kann deklaratives und/oder prozedurales Wissen aus den Aktionsdefinitionen genutzt werden.
[0032] Beim/zum Generieren der wenigstens einen vorläufigen Aktionssequenz können endliche Zustandsautomaten (englisch: Finite State Machine, FSM) in Form geteilter Kontroll-Vorlagen (englisch: Shared Control Templates, SCTs) erstellt werden. Die geteilten Kontroll-Vorlagen können dazu ausgelegt sein, aus Eingabebefehlen des Kontrollmoduls, beispielsweise aus Eingabebefehlen des Automationsmoduls und/oder Eingabebefehlen des Benutzermoduls, Ausgangsbefehle zu generieren. Das gemeinsame oder geteilte Kontrollmodul kann geteilte Kontroll-Vorlagen verwenden. Zwischen geteilten Kontroll-Vorlagen können Zustände und Übergänge Schlüsselelemente bilden. Jeder Zustand kann eine andere Fertigkeitsphase repräsentieren. Übergänge zwischen Zuständen können ausgelöst werden, wenn bestimmte vordefinierte Ereignisse zwischen interessierenden Objekten im Arbeitsbereich auftreten. Eingabebefehle des Kontrollmoduls, beispielsweise Eingabebefehle des Automationsmoduls und/oder Eingabebefehle des Benutzermoduls, können mithilfe der geteilten Kontroll-Vorlagen auf aufgabenrelevante Roboterbewegungen abgebildet werden. Mit dem Abbilden der Eingabebefehle des Kontrollmoduls, beispielsweise der Eingabebefehle des Automationsmoduls und/oder der Eingabebefehle des Benutzermoduls, auf aufgabenrelevante Roboterbewegungen können die Ausgangsbefehle generiert werden. Eine geteilte Kontroll-Vorlage kann einen Benutzer beim Erreichen einer Aufgabe unterstützen, indem sie Objekt- und aufgabenspezifische Abbildungen und Randbedingungen für jeden Zustand einer Fertigkeit bereitstellt. Dabei kann die FSM einen Fortschritt überwachen und Übergänge zwischen den verschiedenen Zuständen auslösen.
[0033] Die Autonomie kann innerhalb einer SCT implementiert werden. Die Autonomie kann dieses SCT verwenden. Das Automationsmodul kann definiert werden und Eingabebefehle an die SCT übermitteln. Während dem Ausführen einer Aufgabe in dem SCIA kann ein Kontrollieren des Roboters immer innerhalb einer SCT bleiben und eine Eingabeautorität kann zwischen dem Automationsmodul und dem Benutzermodul, gewechselt werden. Das bedeutet, dass die SCT unabhängig davon ist, ob ein Eingabebefehle von dem Automationsmodul oder von dem Benutzermodul kommt. Unabhängig davon, ob die Eingabebefehle von dem Automationsmodul oder von dem Benutzermodul ausgehen, können immer die gleichen Zustandsübergänge, Eingangszuordnungen, aktiven Randbedingungen und/oder die gleiche Gesamtsteuerung angewendet werden.
[0034] Zum weiteren diesbezüglichen technologischen Hintergrund wird auf die Veröffentlichungen „S. Bustamante, G. Quere, K. Hagmann, X. Wu, P. Schmaus, J. Vogel, F. Stulp, and D. Leidner, "Toward seamless transitions between shared control and supervised autonomy in robotic assistance," IEEE Robotics and Automation Letters, vol. 6, no. 2, pp. 3833-3840, 2021." und „G. Quere, A. Hagengruber, M. Iskandar, S. Bustamante, D. Leidner, F. Stulp, and J. Vogel, "Shared Control Templates for Assistive Robotics," in 2020 IEEE International Conference on Robotics and Automation (ICRA), Paris, France, 2020, p. 7." verwiesen, deren Merkmale auch zur Lehre der vorliegenden Erfindung gehören und die vollständig in die Offenbarung der vorliegenden Erfindung einbezogen sind.
[0035] Mit einem Benutzerbefehl kann eine Ausführung wahrscheinlicher Aktionsziele und/oder eine Ausführung nicht als wahrscheinliches Aktionsziel bestimmter Aktionsziele initiiert werden. Nach einem Benutzerbefehl zum Ausführen eines in der Vorbereitungsphase nicht als wahrscheinliches Aktionsziel bestimmten Aktionsziels kann vor Beginn einer Ausführungsphase wenigstens eine auf dieses Aktionsziel gerichtete Vorbereitungs-Aktionssequenz generiert und ausgeführt werden, um objektsabhängige Zwangsbedingungen zu ermitteln. Die ermittelten objektabhängigen Zwangsbedingungen können in der Ausführungsphase in wenigstens einer Ausführungs-Aktionssequenz verwendet werden.
[0036] Die Benutzerbefehlswahrscheinlichkeit kann mithilfe eines mathematischen Modells bestimmt werden. Die Benutzerbefehlswahrscheinlichkeit kann mithilfe eines stochastischen Modells, wie verdecktes Markowmodell, eines gerichteten azyklischen Graphs, wie Bayes'sches Netz, eines ungerichteten probabilistischen Modells, eines stochastischen Prozesses, wie Gauß-Prozess, einer inversen optimalen Steuerung mit maximaler Entropie oder der Methode von Laplace bestimmt werden.
[0037] Die Vorbereitungs-Aktionssequenz und/oder eine in der Vorbereitungsphase noch nicht ausgeführte Aktionssequenz können/kann real und/oder simulativ ausgeführt werden.
[0038] Die Vorbereitungsphase kann laufend ausgeführt werden. Die Vorbereitungsphase kann zumindest im Wesentlichen ununterbrochen ausgeführt werden. Insofern kann die Vorbereitungsphase auch als Vorbereitungsfunktion bezeichnet werden. Die Vorbereitungsphase kann in Bezug auf andere mithilfe des Roboters ausgeführte Aufgaben mit niedriger Priorisierung ausgeführt werden. Die Vorbereitungsphase kann im Hintergrund ausgeführt werden. Die Vorbereitungsphase kann während einem Durchlaufen einer Ausführungsphase weiterhin ausgeführt werden. Die Vorbereitungsphase kann während einem Ausführen von Aufgaben mithilfe des Roboters ausgeführt werden. Das Ausführen anderer Aufgaben mithilfe des Roboters kann Benutzerbefehle beinhalten. Die Vorbereitungsphase kann automatisch und/oder durch einen Benutzerbefehl initiiert werden. Die Vorbereitungsphase kann mit einem Einschalten des Roboters initiiert werden. Die Vorbereitungsphase kann nach Abschluss einer Ausführungsphase initiiert werden. Die Vorbereitungsphase kann unterbrochen, wieder aufgenommen und/oder beendet werden. Die Vorbereitungsphase kann automatisch und/oder durch einen Benutzerbefehl unterbrochen, wieder aufgenommen und/oder beendet werden. Die Vorbereitungsphase kann nach einem Initiieren der Ausführungsphase beendet werden.
[0039] Der Roboter kann zum Unterstützen eines Benutzers beim Ausführen von Aufgaben ausgelegt sein. Der Roboter kann ein autonomer mobiler Roboter sein. Der Roboter kann ein Assistenzroboter, ein humanoider Roboter, ein Personal Robot oder ein Dienstleistungsroboter sein. Der Roboter kann Kinematiken aufweisen. Der Roboter kann Gelenke und Glieder aufweisen. Der Roboter kann Aktuatoren und Sensoren aufweisen. Der Roboter kann eine Ein- und/oder Ausgabeeinrichtung für einen Benutzer, die auch als Benutzerschnittstelle bezeichnet werden kann, aufweisen. Die Ein- und/oder Ausgabeeinrichtung kann dazu ausgelegt sein, Benutzerbefehle zu erfassen. Die Ein- und/oder Ausgabeeinrichtung kann dazu ausgelegt sein, einem Benutzer Aktionsziele zur Auswahl anzubieten. Die Ein- und/oder Ausgabeeinrichtung kann als Touchscreen ausgeführt sein. Der Roboter kann eine Kontrolleinrichtung aufweisen. Die Kontrolleinrichtung kann wenigstens einen Prozessor, wenigstens einen Arbeitsspeicher, wenigstens einen Datenspeicher und/oder wenigstens eine Signalschnittstelle aufweisen. Die Kontrolleinrichtung und die Ein- und/oder Ausgabeeinrichtung können miteinander signalübertragend verbunden sein. Mithilfe der Kontrolleinrichtung kann das Computerprogramm ausführbar sein. Der Roboter kann ein realer Roboter sein. Der Roboter kann ein simulierter Roboter oder eine Robotersimulation sein.
[0040] Der Roboter kann ein benutzerauslösbares Vermittlungssystem aufweisen. Das Vermittlungssystem kann dazu dienen, zu jedem Zeitpunkt Eingabebefehle des Kontrollmoduls, beispielsweise Eingabebefehle eines ersten Submoduls, wie Automationsmodul, und Eingabebefehle wenigstens eines weiteren Submoduls, wie Benutzermodul, zusammenzuführen und/oder zwischen Eingabebefehlen eines ersten Submoduls, wie Automationsmodul, und Eingabebefehlen wenigstens eines weiteren Submoduls, wie Benutzermodul, zu wechseln. Ein Wechseln zwischen Eingabebefehlen eines ersten Submoduls, wie Automationsmodul, und Eingabebefehlen wenigstens eines weiteren Submoduls, wie Benutzermodul, kann durch einen Eingabebefehl eines Benutzers zum Wechseln des Ausführungsmodus, beispielsweise eines Unterstützungsmodus, initiiert werden.
[0041 ] Das Computerprogramm kann auf einer Kontrolleinrichtung eines Roboters installierbar und/oder ausführbar sein. Das Computerprogramm kann als Computerprogrammprodukt vorliegen. Das Computerprogramm kann auf einem Datenträger als installierbare und/oder ausführbare Programmdatei vorliegen. Das Computerprogramm kann dazu dienen, in einen Arbeitsspeicher einer Kontrolleinrichtung eines Roboters geladen zu werden.
[0042] Zusammenfassend und mit anderen Worten dargestellt ergibt sich somit durch die Erfindung unter anderem ein Verfahren zur Reduzierung von Roboterplanungszeiten durch Vorplanung von objektabhängigen Zwangsbedingungen bei gemeinsamer Kontrolle mit integrierter Autonomie. Mit der Erfindung wird eine schnelle und iterativ verfeinerte Durchführbarkeitsprüfung bereitgestellt.
[0043] Die Erfindung umfasst insbesondere folgende Merkmale: Ein Planungssystem für einen Assistenzroboter, das Aufgaben im Voraus planen kann (A); das Planungssystem nimmt den aktuellen Zustand der Umgebung (einschließlich des Roboters) als Eingabe und schätzt die n wahrscheinlichsten Aktionen, die vom Benutzer ausgewählt (aktiviert) werden sollen (B), führt Durchführbarkeitsprüfungen durch (C) und speichert umgebungsabhängige Einschränkungen (D), die den Roboter dazu bringen können, eine Aufgabe zu erledigen, ohne mit Hindernissen zu kollidieren oder Probleme mit der Manipulierbarkeit zu haben. Die in (D) gespeicherten Beschränkungen können sofort verwendet werden, wenn der Benutzer eine der geprüften Aktionen aktiviert, wodurch Planungszeit gespart wird (F). Eine Aktion kann vom Benutzer über eine beliebige Benutzerschnittstelle aktiviert oder gestartet werden. Die Beschränkungen im Speicher in (D) können die Ausführung von Aufgaben sowohl in Shared Control als auch in Supervised Autonomy (E) unterstützen. Wenn eine Aktion durch den Benutzer aktiviert wird und noch keine objektspezifischen Zwangsbedingungen vorhanden sind, können diese spätestens im Moment der Aktivierung berechnet werden
[0044] Nachfolgend werden Ausführungsbeispiele der Erfindung unter Bezugnahme auf Figuren näher beschrieben, dabei zeigen schematisch und beispielhaft:
Fig. 1 ein Verfahren zur Reduzierung der Roboterplanungszeiten durch Ermitteln von objektabhängigen Zwangsbedingungen bei gemeinsamer Kontrolle mit integrierter Autonomie in Vorbereitung einer Aufgabenausführung und
Fig. 2 Prüfungen einer Durchführbarkeit mit simulierten Trajektorien in Vorbereitung einer Aufgabenausführung.
[0045] Fig. 1 zeigt einen Ablauf 100 eines Verfahrens zur Reduzierung der Roboterplanungszeiten durch Ermitteln von objektabhängigen Zwangsbedingungen bei gemeinsamer Kontrolle mit integrierter Autonomie in Vorbereitung einer Aufgabenausführung. Das Verfahren umfasst eine Vorbereitungsphase 102 und eine Ausführungsphase 104.
[0046] In der Vorbereitungsphase 102 wird ein Modul 106 zum Ermitteln von Zwangsbedingungen verwendet. Das Modul 106 umfasst ein Modell 108 der Umgebung, ein Submodul 110 zum Bestimmen einer Benutzerbefehlswahrscheinlichkeit, ein Submodul 1 12 zum Prüfen einer Durchführbarkeit von Aktionssequenzen und ein Submodul 1 14 zum Speichern ermittelter Zwangsbedingungen, wie 1 16, 118, 120.
[0047] Das Modul 106 wird laufend im Hintergrund ausgeführt und verwendet Umgebungsinformationen 122, insbesondere Informationen über einen Zustand des Roboters 124, über einen Zustand von Teilen des Roboters 124 und/oder über einen Zustand von in einem Arbeitsbereich des Roboters 124 vorhandenen Objekten, wie 126. Die Umgebungsinformationen 122 werden regelmäßig aktualisiert.
[0048] Mithilfe des Submoduls 1 10 werden unter Berücksichtigung der Umgebungsinformationen 122 diejenigen Aktionsziele 128, 130, 132 bestimmt, die ein Benutzer 134 am wahrscheinlichsten auswählen wird und es werden auf diese wahrscheinlichen Aktionsziele 128, 130, 132 gerichtete Vorbereitungs- Aktionssequenzen generiert.
[0049] Mithilfe des Submoduls 112 werden diese Vorbereitungs-Aktionssequenzen ausgeführt und unter Einbeziehung sowohl von Objekten 126 der Umgebung als auch einer Position des Roboters 124 insbesondere in Hinblick auf Hindernisse, wie 135, und eventuelle Kollisionen getestet, um machbare Wege zum Erreichen der Aktionsziele 128, 130, 132 zu ermitteln, die Hindernisse 135 oder außerhalb eines Roboterarbeitsraums liegende Bereiche vermeiden. Dabei werden die objektsabhängigen Zwangsbedingungen 1 16, 1 18, 120 ermittelt, die die möglichen Wege zum Erreichen der Aktionsziele 128, 130, 132 begrenzen, und mithilfe des Submoduls 1 14 gespeichert.
[0050] In der Ausführungsphase 104 wählt der Benutzer 134 dann eines der Aktionsziele 128, 130, 132 aus, woraufhin eine entsprechende Ausführungs-Aktionssequenz 136 ausgeführt wird. Dabei wird der Roboter 124 mithilfe einer Benutzerschnittstelle 138 in geteilter Kontrolle 140 oder mithilfe eines Greedy-Algorithmus 142 in überwachter Autonomie 144 benutzerüberwacht autonom kontrolliert. Die Eingabebefehle bei geteilter Kontrolle 140 und die Eingabebefehle in überwachter Autonomie 144 verwenden dieselbe Aktionsrepräsentation. Damit kann während dem in Fig. 1 in zeitlichem Verlauf 146 angedeuteten Ausführen der Ausführungs-Aktionssequenz 136 mit sofortiger Wirkung ein nahtloser Wechsel zwischen geteilter Kontrolle 140 und überwachter Autonomie 144 erfolgen.
[0051 ] Unmittelbar nach Auswahl eines der Aktionsziele 128, 130, 132 durch den Benutzer 134 und dem damit verbundenen Initiieren der Ausführungsphase 104 werden aus dem Submodul 1 14 die relevanten der zuvor ermittelten und gespeicherten Zwangsbedingungen 1 16, 1 18, 120 abgerufen und beim Ausführen der Ausführungs- Aktionssequenz 136 verwendet, wodurch eine Reaktionszeit des Roboters 124 verkürzt wird.
[0052] Fig. 2 zeigt Prüfungen einer Durchführbarkeit mit simulierten Trajektorien 200, 202, 204 in Vorbereitung einer Aufgabenausführung am Beispiel einer Greifaufgabe. Die Aufgabe besteht darin, eine durchführbare Aktionssequenz zum Greifen eines vor einem Roboter 206 platzierten Bechers 208 zu finden. Die Anordnung des Bechers 208 vor dem Roboter 206 ist in A dargestellt. B, C und D zeigen drei Szenarien mit einer Flasche 210 als Hindernis. In dem Szenario B ist kein Hindernis vorhanden. In dem Szenario C liegt ein Hindernis 212 in der Peripherie des Arbeitsraums 214. In dem Szenario D liegt ein Hindernis 212 auf einem direkten Weg zwischen Roboter 206 und Becher 208. Eine Begrenzung 216 der Bereiche 218, in denen mithilfe des erfindungsgemäßen Verfahrens eine durchführbare Aktionssequenz bzw. gefunden werden kann, ist in B, C und D mit einer gestrichelten Linie dargestellt. Die Bereiche 218 in C und D sind jeweils eine Untermenge des Bereichs 218 in B.
[0053] Zunächst werden die Ausgangsposition des Roboters 206 und die Position des zu greifenden Bechers 208 festgelegt und die Objekte durch Erfassung lokalisiert. Anschließend werden mithilfe des erfindungsgemäßen Verfahrens Vorbereitungs- Aktionssequenzen erstellt, ausgeführt und getestet.
[0054] B, C und D zeigen, dass ausführbare Vorbereitungs-Aktionssequenzen generiert werden. Der Ansatz lässt sich von einem einfachen Arbeitsraum 214 ohne Hindernis (Szenario B) auf Arbeitsräume 214 verallgemeinern, die Hindernisse 212 enthalten (Szenarien C und D). Die Vorbereitung einer Aufgabeausführung mithilfe des erfindungsgemäßen Verfahrens ist vergleichsweise schnell und konvergiert in B und C in weniger als 4 Sekunden, wobei in einem Experiment 10 von 10 Versuchen erfolgreich waren. In D schöpft der Roboter 206 die lokalen Bewegungsmöglichkeiten aus und benötigt daher einen regelungstechnischen Plan mit Rekonfiguration, was eine längere Berechnungszeit von etwas mehr als 1 1 Sekunden erfordert, wobei 8 von 10 Versuchen erfolgreich waren. Eine solche Situation hätte jedoch ohne Durchführbarkeitsprüfung direkt zu einem Scheitern an der Aufgabe führen können. Dies unterstreicht die Vorteile der geometrischen Rückverfolgung: eine Rekonfiguration erfolgt nur, wenn eine lokale Abtastung nicht erfolgreich ist; dies reduziert die Planungszeit in häufigen Szenarien wie B, während eine Robustheit für Szenarien wie D erhalten bleibt.
[0055] Um die Planungszeiten gering zu halten, werden Trajektorien 200, 202, 204 in zwei Phasen abgeastet: Zunächst wird in einer Erkundungsphase versucht, eine Startposition mit aktionsbezogenen Posen aus dem Arbeitsraum 214 zu verbinden. wie z. B. Annäherungspose und Greifpose. Der Arbeitsraum 214 wird vollständig abgetastet und nach jeder Abtastung aktualisiert, bis ein durchführbarer erster Trajektorienabschnitt gefunden ist. Wenn ein durchführbarer erster Trajektorienabschnitt existiert, wird die vollständige Abtastung beendet und ein regelungstechnischer Planer durchsucht in einer Erschließungsphase die lokale Umgebung dieses ersten Trajektorienabschnitts, wobei der Planer versucht, nur weitere Annäherungs- und Greifposen hinzuzufügen. Dies wird bis zu den Begrenzungen 216 des Bereichs 218 fortgesetzt. Der Plan ist vollständig, wenn die Strecke größer als ein vorher festgelegter Schwellenwert ist. Ist dies nicht der Fall, wird die Erkundungsphase neu gestartet. Beispielhafte Trajektorien 202, 204 mit Hindernis 212 sind in B und C dargestellt.
[0056] Zur geometrischen Rückverfolgung werden in beiden Phasen Verbindungen mit einer schnellen lokalen numerischen Methode für die inverse Kinematik versucht, die weder Rekonfigurationen noch große Bewegungen berechnen kann. Dies mag in vielen Situationen funktionieren, kann aber in komplexen Szenarien versagen. Im Falle eines Scheiterns beginnt bei dem erfindungsgemäßen Verfahren der Planer die Erkundungsphase erneut mit einer globalen inversen Kinematiksuche, die mehr Zeit in Anspruch nimmt und den Roboter 206 zwingen könnte, sich von seiner Ausgangsposition aus neu zu konfigurieren, wie in D gezeigt. Im Übrigen wird ergänzend zur Fig. 2 insbesondere auf Fig. 1 und die zugehörige Beschreibung verwiesen.
[0057] Mit „kann" sind insbesondere optionale Merkmale der Erfindung bezeichnet. Demzufolge gibt es auch Weiterbildungen und/oder Ausführungsbeispiele der Erfindung, die zusätzlich oder alternativ das jeweilige Merkmal oder die jeweiligen Merkmale aufweisen.
[0058] Aus den vorliegend offenbarten Merkmalskombinationen können bedarfsweise auch isolierte Merkmale herausgegriffen und unter Auflösung eines zwischen den Merkmalen gegebenenfalls bestehenden strukturellen und/oder funktionellen Zusammenhangs in Kombination mit anderen Merkmalen zur Abgrenzung des Anspruchsgegenstands verwendet werden. Bezugszeichen 0 Ablauf 2 Vorbereitungsphase 4 Ausführungsphase 6 Modul 08 Modell 10 Submodul 12 Submodul 14 Submodul 16 Zwangsbedingung 18 Zwangsbedingung 20 Zwangsbedingung 22 Umgebungsinformationen 24 Roboter 26 Objekt 28 wahrscheinliches Aktionsziel 30 wahrscheinliches Aktionsziel 32 wahrscheinliches Aktionsziel 34 Benutzer 35 Hindernis 36 Ausführungs-Aktionssequenz 38 Benutzerschnittstelle 40 geteilte Kontrolle 42 Greedy-Algorithmus 44 überwachte Autonomie 46 zeitlicher Verlauf 00 Trajektorie 02 Trajektorie 04 Trajektorie 06 Roboter 08 Becher Flasche Hindernis Arbeitsraum Begrenzung Bereich

Claims

Patentansprüche Verfahren zum Vorbereiten und Ausführen von Aufgaben mithilfe eines Roboters (124, 206), dadurch gekennzeichnet, dass in einer Vorbereitungsphase (102) ausgehend von Umgebungsinformationen (122) und unter Berücksichtigung einer Benutzerbefehlswahrscheinlichkeit wenigstens ein wahrscheinliches Aktionsziel (128, 130, 132) bestimmt wird, wenigstens eine auf das wenigstens eine wahrscheinliche Aktionsziel (128, 130, 132) gerichtete Vorbereitungs-Aktionssequenz generiert wird und die wenigstens eine Vorbereitungs-Aktionssequenz ausgeführt wird. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass beim Ausführen der wenigstens einen Vorbereitungs-Aktionssequenz objektsabhängige Zwangsbedingungen (1 16, 118, 120) ermittelt und gespeichert werden. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass nach einem Benutzerbefehl zum Ausführen eines wahrscheinlichen Aktionsziels (128, 130, 132) in einer Ausführungsphase (104) die gespeicherten objektabhängigen Zwangsbedingungen (1 16, 1 18, 120) in wenigstens einer Ausführungs- Aktionssequenz (136) verwendet werden. Verfahren nach wenigstens einem der Ansprüche 2 bis 3, dadurch gekennzeichnet, dass der Roboter (124, 206) unter Verwendung derselben Aktionsrepräsentationen in einem ersten Unterstützungsmodus geteilt und in einem zweiten Unterstützungsmodus benutzerüberwacht autonom kontrolliert wird, wobei die gespeicherten objektabhängigen Zwangsbedingungen (1 16,
1 18, 120) in dem ersten Unterstützungsmodus und/oder in dem zweiten Unterstützungsmodus verwendet werden. Verfahren nach wenigstens einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass nach einem Benutzerbefehl zum Ausführen eines in der Vorbereitungsphase (102) nicht als wahrscheinliches Aktionsziel (128, 130, 132) bestimmten Aktionsziels vor Beginn einer Ausführungsphase (104) wenigstens eine auf dieses Aktionsziel gerichtete Vorbereitungs- Aktionssequenz generiert und ausgeführt wird, um objektsabhängige Zwangsbedingungen (116, 1 18, 120) zu ermitteln, und in der Ausführungsphase (104) die ermittelten objektabhängigen Zwangsbedingungen (1 16, 1 18, 120) in wenigstens einer Ausführungs- Aktionssequenz (136) verwendet werden. Verfahren nach wenigstens einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Benutzerbefehlswahrscheinlichkeit mithilfe eines stochastischen Modells, eines gerichteten azyklischen Graphs, eines ungerichteten probabilistischen Modells, einer inversen optimalen Steuerung mit maximaler Entropie oder der Methode von Laplace bestimmt wird. Verfahren nach wenigstens einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Vorbereitungs-Aktionssequenz und/oder eine in der Vorbereitungsphase (102) noch nicht ausgeführte Aktionssequenz real und/oder simulativ ausgeführt wird. Verfahren nach wenigstens einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Vorbereitungsphase (102) laufend im Hintergrund ausgeführt wird. Roboter (124, 206) zum Ausführen von Aufgaben, dadurch gekennzeichnet, dass der Roboter (124, 206) zum Ausführen eines Verfahrens nach wenigstens einem der Ansprüche 1 bis 8 ausgelegt ist. Computerprogramm, dadurch gekennzeichnet, dass das Computerprogramm Programmcodeabschnitte umfasst, mit denen ein Verfahren nach wenigstens einem der Ansprüche 1 bis 8 durchführbar ist, wenn das Computerprogramm auf einer Kontrolleinrichtung eines Roboters (124, 206) ausgeführt wird.
PCT/EP2023/061892 2022-05-06 2023-05-05 Verfahren zum vorbereiten und ausführen von aufgaben mithilfe eines roboters, roboter und computerprogramm Ceased WO2023213989A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE112023002127.9T DE112023002127A5 (de) 2022-05-06 2023-05-05 Verfahren zum vorbereiten und ausführen von aufgaben mithilfe eines roboters, roboter und computerprogramm
US18/863,253 US20250303565A1 (en) 2022-05-06 2023-05-05 Method for preparing and carrying out tasks by means of a robot, robot, and computer program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102022111400.7 2022-05-06
DE102022111400.7A DE102022111400A1 (de) 2022-05-06 2022-05-06 Verfahren zum Vorbereiten und Ausführen von Aufgaben mithilfe eines Roboters, Roboter und Computerprogramm

Publications (1)

Publication Number Publication Date
WO2023213989A1 true WO2023213989A1 (de) 2023-11-09

Family

ID=86378590

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/061892 Ceased WO2023213989A1 (de) 2022-05-06 2023-05-05 Verfahren zum vorbereiten und ausführen von aufgaben mithilfe eines roboters, roboter und computerprogramm

Country Status (3)

Country Link
US (1) US20250303565A1 (de)
DE (2) DE102022111400A1 (de)
WO (1) WO2023213989A1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017209032A1 (de) 2017-05-30 2018-12-06 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Steuern eines Roboters
WO2021040958A1 (en) * 2019-08-23 2021-03-04 Carrier Corporation System and method for early event detection using generative and discriminative machine learning models
US20210200219A1 (en) * 2019-12-26 2021-07-01 X Development Llc Robot plan online adjustment
DE102021104883B3 (de) 2021-03-01 2022-06-15 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum roboterunterstützten Ausführen von Aufgaben, Roboter zum Unterstützen eines Benutzers beim Ausführen von Aufgaben und Computerprogrammprodukt

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002034478A1 (fr) * 2000-10-23 2002-05-02 Sony Corporation Robot pourvu de jambes, procede de commande du comportement d"un tel robot, et support de donnees
CN103433923A (zh) 2007-01-12 2013-12-11 汉斯乔格·巴尔特斯 用于产生机器人的方法和系统
US20100017026A1 (en) 2008-07-21 2010-01-21 Honeywell International Inc. Robotic system with simulation and mission partitions
JP2012232363A (ja) * 2011-04-28 2012-11-29 Seiko Epson Corp ロボット制御システム、ロボットシステム及びプログラム
US9358687B2 (en) 2013-01-24 2016-06-07 Mohammad Reza Emami System, method and computer program for autonomously emulating robot manipulators of continuously-varying configurations
JP5862611B2 (ja) * 2013-04-02 2016-02-16 トヨタ自動車株式会社 作業変更装置、作業変更方法、及び作業変更プログラム
CN108602190B (zh) * 2016-02-05 2022-02-18 Abb瑞士股份有限公司 使用交互式命令控制工业机器人
KR101858108B1 (ko) * 2016-12-26 2018-05-16 한국생산기술연구원 로봇을 위한 동작 시뮬레이션 장치 및 방법
EP3703604B1 (de) * 2017-10-30 2025-08-06 Intuitive Surgical Operations, Inc. Systeme zur auswahl der platzierung von geführten ports
CN110297697B (zh) 2018-03-21 2022-02-18 北京猎户星空科技有限公司 机器人动作序列生成方法和装置
EP3587045A1 (de) 2018-06-28 2020-01-01 Siemens Aktiengesellschaft Verfahren und vorrichtung zum rechnergestützten ermitteln von regelparametern für eine günstige handlung eines technischen systems
KR20220159392A (ko) * 2020-03-27 2022-12-02 마코 서지컬 코포레이션 햅틱 인터페이스를 이용한 로봇 척추 수술 시스템 및 방법
EP3978202A1 (de) 2020-10-05 2022-04-06 Siemens Aktiengesellschaft Planen eines technischen prozesses aufweisend hierarchisch gegliederte aufgaben und parallelisierungsoptionen
DE102022104525B4 (de) * 2022-02-25 2024-11-07 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren und Roboter zum Ausführen von Aufgaben und Computerprogramm
CA3214432A1 (en) * 2022-09-27 2024-03-27 Sanctuary Cognitive Systems Corporation Systems, methods, and computer program products for automating tasks
WO2026006854A2 (en) * 2024-06-28 2026-01-02 Sarcos Corp. Determination of task plans for robotic devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017209032A1 (de) 2017-05-30 2018-12-06 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Steuern eines Roboters
WO2021040958A1 (en) * 2019-08-23 2021-03-04 Carrier Corporation System and method for early event detection using generative and discriminative machine learning models
US20210200219A1 (en) * 2019-12-26 2021-07-01 X Development Llc Robot plan online adjustment
DE102021104883B3 (de) 2021-03-01 2022-06-15 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum roboterunterstützten Ausführen von Aufgaben, Roboter zum Unterstützen eines Benutzers beim Ausführen von Aufgaben und Computerprogrammprodukt

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
BUSTAMANTE SAMUEL ET AL: "Toward Seamless Transitions Between Shared Control and Supervised Autonomy in Robotic Assistance", IEEE ROBOTICS AND AUTOMATION LETTERS, IEEE, vol. 6, no. 2, 8 March 2021 (2021-03-08), pages 3833 - 3840, XP011847377, DOI: 10.1109/LRA.2021.3064449 *
D. S. LEIDNER: "Springer Tracts in Advanced Robotics", vol. 127, 2019, CHAM: SPRINGER INTERNATIONAL PUBLISHING, article "Cognitive Reasoning for Compliant Robot Manipulation"
DONGJIE LI ET AL: "Path planning research and simulation of planar 3R redundant robot", INDUSTRIAL ELECTRONICS AND APPLICATIONS, 2009. ICIEA 2009. 4TH IEEE CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 25 May 2009 (2009-05-25), pages 2855 - 2858, XP031482558, ISBN: 978-1-4244-2799-4 *
G. QUEREA. HAGENGRUBERM. ISKANDARS. BUSTAMANTED. LEIDNERF. STULPJ. VOGEL: "Shared Control Templates for Assistive Robotics", 2020 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA, 2020, pages 7
HUANG CHIEN-MING ET AL: "Anticipatory robot control for efficient human-robot collaboration", 2016 11TH ACM/IEEE INTERNATIONAL CONFERENCE ON HUMAN-ROBOT INTERACTION (HRI), IEEE, 7 March 2016 (2016-03-07), pages 83 - 90, XP032891047, DOI: 10.1109/HRI.2016.7451737 *
QUERE GABRIEL ET AL: "Shared Control Templates for Assistive Robotics", 2020 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA), IEEE, 31 May 2020 (2020-05-31), pages 1956 - 1962, XP033826378, DOI: 10.1109/ICRA40945.2020.9197041 *
S. BUSTAMANTEG. QUEREK. HAGMANNX. WUP. SCHMAUSJ. VOGELF. STULPD. LEIDNER: "Toward seamless transitions between shared control and supervised autonomy in robotic assistance", IEEE ROBOTICS AND AUTOMATION LETTERS, vol. 6, no. 2, 2021, pages 3833 - 3840, XP011847377, DOI: 10.1109/LRA.2021.3064449

Also Published As

Publication number Publication date
DE112023002127A5 (de) 2025-02-20
US20250303565A1 (en) 2025-10-02
DE102022111400A1 (de) 2023-11-09

Similar Documents

Publication Publication Date Title
DE112018002565B4 (de) System und Verfahren zum direkten Anlernen eines Roboters
EP3623116A1 (de) Verfahren und vorrichtung zur kollisionsfreien bewegungsplanung eines manipulators
DE102019203214B4 (de) Verfahren zum Betreiben eines Roboters in einem Multiagentensystem, Roboter und Multiagentensystem
DE102019205651B3 (de) Verfahren und System zum Ausführen von Roboterapplikationen
DE102020212658A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE112019007579T5 (de) Numerische-Steuerung-Vorrichtung und Maschinelles-Lernen-Gerät
EP3857324B1 (de) Dynamische verfeinerung von markern in einem autonomen weltmodell
DE102018218081A1 (de) Vorrichtung und Verfahren zur Ansteuerung eines Robotersystems
Liu et al. Learning to cooperate together: A semi-autonomous control architecture for multi-robot teams in urban search and rescue
DE112021007017T5 (de) Numerik-Steuervorrichtung und Numerik-Steuersystem
DE112019007750T5 (de) Umgebungskarten- Erzeugungsvorrichtung und -Verfahren, Vorrichtung zum Schätzen der lokalen Position, und autonomer beweglicher Körper
DE102020214177A1 (de) Vorrichtung und Verfahren zum Trainieren einer Steuerungsstrategie mittels bestärkendem Lernen
DE112022002107T5 (de) Systeme, vorrichtungen und verfahren zur entwicklung autonomer roboter
EP3771522A1 (de) Verfahren und manipulationssystem zur manipulation eines objekts durch einen roboter mittels vektorfelder
DE102021104883B3 (de) Verfahren zum roboterunterstützten Ausführen von Aufgaben, Roboter zum Unterstützen eines Benutzers beim Ausführen von Aufgaben und Computerprogrammprodukt
WO2023161141A1 (de) Verfahren und roboter zum ausführen von aufgaben und computerprogramm
EP3812106B1 (de) Roboteranordnung, verfahren zum betreiben der roboteranordnung, computerprogramm sowie maschinenlesbares speichermedium
EP3760390B1 (de) Durchführen einer vorgegebenen aufgabe mithilfe wenigstens eines roboters
EP4449217A1 (de) Zuweisen einer aufgabe an einen örtlich entfernten experten
DE102022111400A1 (de) Verfahren zum Vorbereiten und Ausführen von Aufgaben mithilfe eines Roboters, Roboter und Computerprogramm
DE102022207800A1 (de) Verfahren zum Trainieren einer Steuerungsrichtlinie zur Steuerung eines technischen Systems
EP3741518B1 (de) Verfahren und vorrichtung für eine automatisierte beeinflussung eines aktuators
DE112018007703T5 (de) Robotersteuerung
EP3710900B1 (de) Verfahren und system zum vorgeben bzw. lernen eines roboterbefehls
DE112024000656T5 (de) Robotersteuerungssystem, Robotersteuerungsverfahren und Robotersteuerungsprogramm

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23723570

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 10202400001218

Country of ref document: CH

WWE Wipo information: entry into national phase

Ref document number: 112023002127

Country of ref document: DE

REG Reference to national code

Ref country code: DE

Ref legal event code: R225

Ref document number: 112023002127

Country of ref document: DE

WWP Wipo information: published in national office

Ref document number: 112023002127

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 23723570

Country of ref document: EP

Kind code of ref document: A1

WWP Wipo information: published in national office

Ref document number: 18863253

Country of ref document: US