WO2021069129A1 - Device and method for controlling a robot device - Google Patents

Device and method for controlling a robot device Download PDF

Info

Publication number
WO2021069129A1
WO2021069129A1 PCT/EP2020/072410 EP2020072410W WO2021069129A1 WO 2021069129 A1 WO2021069129 A1 WO 2021069129A1 EP 2020072410 W EP2020072410 W EP 2020072410W WO 2021069129 A1 WO2021069129 A1 WO 2021069129A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
sequence
demonstration
activity
positions
Prior art date
Application number
PCT/EP2020/072410
Other languages
German (de)
French (fr)
Inventor
Mathias Buerger
Philipp Christian Schillinger
Meng Guo
Original Assignee
Robert Bosch Gmbh
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 Robert Bosch Gmbh filed Critical Robert Bosch Gmbh
Publication of WO2021069129A1 publication Critical patent/WO2021069129A1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36184Record actions of human expert, teach by showing
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36442Automatically teaching, teach by showing
    • 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

Definitions

  • Various embodiments generally relate to an apparatus and a method for controlling a robotic device.
  • the method and apparatus having the features of independent claims 1 and 15 enable users to perform a skill using their own hands to teach the robot the skill (activity). This makes it possible to teach a skill to a robot without additional knowledge or training. This can be done in such a way that it is independent of the dynamic and mechanical limitations of the robot. Teaching the robot is intuitive as the user can behave as they would without the robot. In addition, no additional modeling of the robot is required, since objects are not traced to be manipulated, but rather the hand of a user.
  • a method for controlling a robot device comprising performing an activity by a demonstration entity, recording a sequence of positions of a part of the demonstration entity by means of which the demonstration entity performs the activity, generating training data based on the recorded sequence of positions of the part of the Demonstration authority; Training a robot control model by using the sequence of poses of the part of the demonstrator as a training sequence of poses for a part of the robot and controlling the robot device based on the trained robot control model.
  • the procedure described in this paragraph is a first example.
  • the recording of the sequence of positions can include the recording of sensor data by one or more sensors and the determination of the sequence of positions from the sensor data.
  • the recording of the sequence of positions can include the visual recording of the performance of the activity by the demonstrator.
  • the visual recording of activities or skills for training a robot enables a user to easily demonstrate the activity or skill.
  • the visual recording can include the recording of at least one sequence of camera images.
  • the provision of a camera for recording camera images creates a simple way of recording training data.
  • Several cameras can also be provided in order to obtain images from different angles.
  • the features mentioned in this paragraph in combination with the third example form a fourth example.
  • the positions can be determined based on an image analysis of the sequence of camera images, in which the position and / or orientation of the part of the presentation instance is tracked in the at least one sequence of camera images.
  • the features mentioned in this paragraph in combination with the fourth example form a fifth example.
  • Controlling the robot device based on the trained robot control model can include generating a reference trajectory from the trained robot control model and tracking (at least approximately) the reference trajectory by the robot device using a linear-quadratic Gaussian (LQG) controller.
  • LQG linear-quadratic Gaussian
  • the method can include determining a sequence of positions of one or more further elements that are involved in the activity, the training data being generated based on the sequence of positions of the one or more further elements.
  • this enables a robot to be trained in such a way that the robot can adapt to new scenarios.
  • a sequence of postures of an object that is manipulated when performing the activity can be determined and the training data can be generated based on the sequence of postures of the object.
  • the method may include multiple performance of the activity by the demonstration entity, recording, for each performance of the activity by the demonstration entity, a sequence of positions of the part of the presentation entity and the generation of training data based on the recorded sequences of positions of the part of the presentation entity and training the robot control model by using the sequences of poses of the part of the demonstrator as training sequences of poses for the part of the robot. Repeated implementation enables more robust training and training of a robot in such a way that the robot can adapt to new scenarios.
  • the features mentioned in this paragraph in combination with any one of the first example through the eighth example form a ninth example.
  • the robot control model can have a statistical model.
  • the method can include determining a sequence of positions of at least one object that is manipulated during the execution of the activity, and the statistical model can be parameterized by means of the determined positions.
  • the statistical model can have or be a task-parameterized Gaussian mixed model. As described below, such models enable effective training of a robot.
  • the features mentioned in this paragraph in combination with any one of the first example to the eleventh example form a twelfth example.
  • the statistical model can have or be a task-parameterized hidden semi-Markov model. As described below, such a model enables effective training of a robot.
  • the features mentioned in this paragraph in combination with any one of the first example through the twelfth example form a thirteenth example.
  • a robot control device configured to perform a method according to any one of the first example to fourteenth examples.
  • the device described in this paragraph constitutes a sixteenth example.
  • a computer program comprising program instructions which, when executed by one or more processors, cause one or more processors to perform a method according to any one of the first example to fifteenth examples.
  • a computer-readable storage medium having stored thereon program instructions which, when executed by one or more processors, cause one or more processors to perform a method according to any one of the first example to fifteenth examples.
  • Figure 1 shows a robot device arrangement
  • FIG. 2 shows a flow chart that illustrates a training method according to various embodiments.
  • FIGS. 4A to 4E show representations which illustrate the combination of Gaussian components in local coordinate systems to form a combined Gaussian mixed model
  • Figure 5 shows a flowchart showing a method for controlling a
  • Illustrated robotic device according to an embodiment.
  • a “circuit” can be understood as any type of entity implementing logic, which can be hardware, software, firmware, or a combination thereof.
  • a “circuit” may be a hardwired logic circuit or a programmable logic circuit such as a programmable processor, for example a microprocessor.
  • a “circuit” can also be software that is implemented or executed by a processor, for example any type of computer program. Any other type of implementation of the respective functions, which are described in more detail below, may be understood as a “circuit” in accordance with an alternative embodiment.
  • FIG. 1 shows a robot device arrangement 100.
  • the robot device arrangement 100 includes a robot device 101, for example an industrial robot in the form of a robot arm for moving, assembling or processing a workpiece.
  • the robot device 101 has robot limbs 102, 103, 104 and a base (or generally a bracket) 105 by which the robot limbs 102, 103, 104 are supported.
  • the term "robot limb” refers to the moving parts of the robot device 101, the actuation of which enables a physical interaction with the environment, for example in order to carry out a task.
  • the robot device arrangement 100 contains a controller 106 which is set up to implement the interaction with the environment in accordance with a control program.
  • the last element 104 (seen from the base 105) of the robot limbs 102, 103, 104 is also referred to as the end effector 104 and can be one or more Include tools such as a welding torch, gripping tool, painting machine, or the like.
  • the other robot limbs 102, 103 (closer to the base 105) can form a positioning device so that, together with the end effector 104, a robot arm (or articulated arm) is provided with the end effector 104 at its end.
  • the robotic arm is a mechanical arm that can perform similar functions as a human arm (possibly with a tool on its end).
  • the robot device 101 may include connectors 107, 108, 109 that connect the robot limbs 102, 103, 104 to one another and to the base 105.
  • a connector 107, 108, 109 can have one or more joints, each of which can provide rotational movement and / or translational movement (i.e., displacement) for associated robot limbs relative to one another.
  • the movement of the robot limbs 102, 103, 104 can be initiated with the aid of actuators that are controlled by the controller 106.
  • the term "actuator” can be understood as a component that is capable of influencing a mechanism in response to being driven.
  • the actuator can convert instructions (so-called activation) issued by the controller 106 into mechanical movements.
  • the actuator for example an electromechanical converter, can be set up to convert electrical energy into mechanical energy in response to its activation.
  • controller can be understood as any type of logical implementation unit that can contain, for example, a circuit and / or a processor that is able to process software, firmware or a Execute combination of the same, and the instructions, for example to an actuator in the present example, can give.
  • the controller can be set up, for example, by program code (for example software) to control the operation of a system, in the present example a robot.
  • the controller 106 includes one or more processors 110 and a memory 111 that stores code and data based on which the processor 110 controls the robotic device 101. According to various embodiments, the controller 106 controls the robot device 101 based on a statistical model 112 stored in the memory 111.
  • a robot as implemented by the robotic device assembly 100, can learn from demonstrations to perform a task or to work with a human partner.
  • Human demonstrations can be encoded by a probabilistic model (also known as a statistical model) that represents the target schedule of the task for the robot.
  • the controller 106 can then use the statistical model to generate the desired robot movements, possibly depending on the condition of the human partner and the environment.
  • kinesthetic demonstrations can be performed in which the robot is moved directly, e.g. by physically pushing or using a remote control.
  • moving the robot is also much less intuitive for a human to perform a task compared to using one's own hands.
  • an approach is provided that enables a human user to teach an activity (skill) to a robot by simply performing the activity itself.
  • Demonstrations are carried out, for example, by following the hand of the User (and optionally the objects involved) instead of recording the trajectory of the end-effect gate.
  • Demonstrations are then used to learn a compact mathematical representation of the skill that can be used (e.g. by the controller 106) to demonstrate that skill by the robot in new scenarios (e.g., new relative positions between the robot and the object to be manipulated ) to reproduce.
  • Various exemplary embodiments are based on technical advances in two areas: firstly, the tracking of a hand based on camera images is typically available in areas where robots are used, for example in factories, and secondly, methods for training robots based on human demonstrations are both efficient Learning by the robot (ie training the robot) as well as flexible reproduction.
  • An example of this are TP-HSMMs (Task-Parameterized Hidden Semi Markov Models), which enable a task parameter-dependent representation of learned movement skills.
  • Tracking objects and human hands is an active research area (especially in machine vision) and is of great importance for industrial applications.
  • it is used according to various embodiments for training (teaching) and learning of robots.
  • FIG. 2 shows a flow diagram 200 that illustrates a training method according to various embodiments.
  • the demonstration phase a user (or generally a demonstration instance) demonstrates the desired skill.
  • the demonstration is recorded.
  • a video recording is created by means of a camera and the sequence of the positions of a hand of the user (generally a part of the demonstration instance) is determined from the images of the video and represented in the form of a trajectory. This is repeated for several demonstrations. It should be noted that this is decoupled on Kind of happening, that is, for example, using a lot of videos that were previously recorded with no intention of teaching a skill to a robot.
  • a mathematical model is learned from the collected demonstrations. For example, a TP-HSMM is learned that contains a hand pose as one of the task parameters.
  • a "pose” contains, for example, information about position and / or orientation or also about status (e.g. "hand closed” versus "hand open”).
  • the learned mathematical model is used to control the robot in such a way that it executes the skill within a demonstrated scenario or also a non-demonstrated scenario.
  • the controller 106 generates a trajectory that is suitable for the movement behavior of the robot, according to which it controls the robot, the position of the end effector 104 assuming the role of the hand pose task parameter.
  • the hand generally the part of the demonstration instance
  • the hand is thus clearly mapped onto the end effector (generally the part of the robot device), or the two parts (within the framework of the robot control) are identified with one another and the part of the robot device imitates the part of the demonstration instance .
  • the trajectory for controlling the robot (also referred to as a reference trajectory) can be generated in various ways.
  • a possible trajectory for the robot is generated by taking into account the robot's movement behavior in the trajectory planning, or instead a trajectory that is partially possible for the robot is generated and the robot is controlled in such a way that it follows the trajectory as physically as possible.
  • FIG. 3 shows an arrangement 300 for recording demonstrations by a user.
  • a user 301 demonstrates a skill by moving his hand 302. For example, he takes an object 304 from a first position 305 and moves it to a second position 306.
  • a camera 307 records the movement of the user.
  • Several cameras can also be provided which record the demonstration from different angles, in particular from the perspective of the start position 305 and from the perspective of the end position 306 of the object 304.
  • Each demonstration is thus represented as a sequence of images which is fed to a control device 308, which corresponds to the controller 106, for example. Based on the demonstrations, the control device 308 learns a statistical model 309 that corresponds to the statistical model 112, for example.
  • the user 301 can carry out a demonstration according to various alternatives.
  • the user 301 can proceed as follows: a) Preconfiguring the recording system (e.g. having the one or more cameras 307 and the control device 308) so that there are one or more objects 304 that are of interest to the skill and the hand 302 (or both hands of the user 301) can follow. b) The user demonstrates how the activity can be carried out. The control device records the associated trajectory of the hand 302 (or hands) and the one or more objects 304 and stores them. c) The user repeats the demonstration from b) but with different system configurations, for example different starting positions of his hands, different starting positions 305 of the object 304 or different end positions 306 of the object 304.
  • the recording system e.g. having the one or more cameras 307 and the control device 308
  • the user demonstrates how the activity can be carried out.
  • the control device records the associated trajectory of the hand 302 (or hands) and the one or more objects 304 and stores them.
  • the user repeats the demonstration from b) but with different system configurations, for example
  • the user 301 can proceed, for example, as follows: a) The user 301 records raw output data of the recording system when he carries out the activity, for example a video recording, which is obtained from one or more cameras 307, for example RGBD camera sensors. b) The associated trajectory of the hand (or hands) 302 of the user is then determined by means of abstraction from the recorded data. c) The user repeats the demonstration and determination of an associated trajectory of a) and b) but with different system configurations, for example different start positions of his hands, different start positions 305 of the object 304 or different end positions 306 of the object 304.
  • the first alternative has higher demands on the real-time tracking performance of the recording system.
  • the picking system must track the hand of the user 302 together with the object 304 and possible end positions of the object 304 (for example of pallets).
  • the demonstrations are abstracted (for example are represented as courses of coordinates of the hand 302 or the object 304) and as trajectories (for example the hand 302 of the subject 304 or also several hands and / or several objects) are stored, for example in a memory of the control device 308.
  • a movement model for example a hand movement model in the following example
  • a TP-HSMM Task-Parameterized Hidden Semi Markov Model
  • a TP-HSMM enables both efficient learning and flexible reproduction for learning robot skills from human demonstrations. More specifically, the recorded trajectory of the user's hand 302 is treated as a desired movement to be learned while the trajectory of the object (304 is used to generate different task parameters) for the skill, which represent different configurations of the work area.
  • the model can also be applied analogously to both hands of the user and / or several objects.
  • the object or objects and the hand or hands (or other body parts such as an arm) that are involved in the activity are also summarized below as "elements that are involved in the activity”.
  • the demonstrations need not necessarily be performed by a human user. In special applications, it could also be desired that a robot learns an activity from an animal or also from a machine, for example another robot. In this sense, the demonstration instance (also referred to as a trainer or demonstration unit) that demonstrates an activity can also be an animal or another robot.
  • the model encapsulates how the user's hand 302 moves given various configurations of the workspace. For example, for the same skill in picking up and placing the object 304, the model learns different recording techniques (such as picking up the object 304 from above or from the side) for different orientations of the object 304.
  • the goal of training the mathematical model is to enable the robot to reproduce the demonstrated skill using its robotic arm. If there is a new scenario regarding the state of the robot arm and the position of the object 304, the controller 308 uses the model 309 to generate a reference trajectory and controls the robot in such a way that it follows the reference trajectory so that it does the work for it reproduced new scenario.
  • the control algorithm according to which the control device 308 controls the robot arm end effector 104 in order to follow the reference trajectory is referred to as tracking control, for which many different realizations are possible depending on the particular dynamic behavior of the robot 101.
  • the case may arise that the reference trajectory generated by the controller 308 based on the model 309 is only partially feasible for a scenario, ie it is possible that the robot cannot follow it completely here .
  • the controller 308 can control the robot 101 in such a way that the end effector 104 follows the determined reference trajectory as closely as physically possible.
  • controller 308 can train the statistical model in 202 and control the robot 101 in 203 to perform an activity for which it has been trained.
  • each point can be the manifold the position of the end effector 104 in 3D in Cartesian
  • connection not only represents the state of the robot end effector 104 but also a state of the hand 304 of the user 301 in an off state can be.
  • each point of the manifold can represent the possible position of a
  • the user 301 For each activity (corresponding to a skill), the user 301 carries out several demonstrations that define how the robot 101 is to carry them out.
  • each demonstration with is referred to, where is a sequence of states s, where each state denotes the
  • the robot 101 can manipulate respective objects so that they achieve a desired end state.
  • several demonstrations of the user are followed for each skill to be learned (for example for the set of core skills), each demonstration being represented according to (1) (for example in a corresponding data structure in the control device 308).
  • Each demonstration has the recorded Trajectory of the user's hand to the desired robot end-effector states and the recorded states of all objects involved in the skill.
  • the number of states T m results from the duration of the demonstration and the
  • Sampling rate i.e. the rate at which the position of the hand (or hands) 301 and the object (or objects) 304 are determined. For example, if a demonstration lasts ten seconds and the sampling rate is set to 50Hz, then this demonstration consists of 500 training vectors. If a demonstration phase consists of five different demonstrations, then the final training data set consists of 2500 training vectors, assuming that each demonstration lasts ten seconds (with a fixed sampling rate of 50 Hz). The duration of the demonstration typically has no influence on the training process of the statistical model 308.
  • the desired trajectory of the robot end effector states when performing the activity is given by the recorded (tracked) trajectory of the user's hand.
  • the control device 308 trains, for example, a TP-HSMM as a mathematical model 309.
  • the trained TP-HSMM represents both spatial and temporal information with regard to how the robot arm should move with respect to the objects involved.
  • the controller can adapt the robot trajectory to new (i.e. non-demonstrated) scenarios in which the objects are in different places.
  • task-parameterized (task-parameterized) data for a demonstration is to enter the end effector states observed for the demonstration, which are given in a global coordinate system, into each
  • TP-GMM task-parameterized Gaussian mixed model
  • Such a mixed model in contrast to simple GMMs cannot be learned independently for each coordinate system.
  • the reason is that the mixing coefficient are shared by all coordinate systems (ie apply to all coordinate systems) and the k-th component in the coordinate system must be the k-th component in the correspond to the global coordinate system.
  • One way of learning (ie training) such models is the EM (expectation maximization) algorithm.
  • a TP-GMM When a TP-GMM has been trained, it can be used by the control device 308 during execution (in 203 in the sequence of FIG. 2) to reproduce a trajectory for a learned skill.
  • the control device 308 can use this to create a single combined GMM with the parameters by multiplying the affine-transformed Gaussian components (of the different coordinate systems).
  • the resulting combined GMM is given by where the parameters of each Gaussian component in each local coordinate system (for the new scenario) are given by
  • FIGS. 4A to 4E show representations which illustrate the combination of Gaussian components in local coordinate systems to form a combined Gaussian mixed model.
  • FIG. 4A corresponds to a first local coordinate system, for example the local coordinate system at the starting position 305 (which corresponds to the origin in FIG. 4A).
  • FIG. 4B corresponds to a second local coordinate system, for example the local coordinate system at the target position 306 (which corresponds to the origin in FIG. 4B).
  • FIG. 4A clearly shows the movement of an object 304 to be moved from the point of view of the start position 305.
  • the start position is always the same (from the point of view of the start position), so the course of the trajectories is well defined there (i.e. the scatter of the trajectories is small there). In other words, the local model is very confident there. Further away from the starting position, the model becomes less certain because it has seen various demonstrations in which the target position was in different places. The uncertainty is illustrated by the larger ellipses and the divergence of the trajectories.
  • Each ellipse illustrates a Gaussian component around the mean of the Gaussian component and a size and shape corresponding to its covariance matrix.
  • the trajectories scatter more at a greater distance from the target position (because in different demonstrations the starting position was at different points relative to the target position). Closer to the target position, the trajectories scatter less (because in each demonstration the object 304 has finally arrived at the target position 305).
  • the model for the starting position shown in FIG. 4C, is also very safe in the vicinity of the starting position, but unsafe at a greater distance from the starting position.
  • the model for the target position shown in FIG. 4D, is very safe in the vicinity of the starting position, but unsafe at a greater distance.
  • FIG. 4E now shows the combination of the two local models to form a combined model according to (3) to (6).
  • the combined model is much safer in the middle, between the starting and target positions.
  • the controller 308 can now (in 203) clearly control the robot 101 in such a way that it traverses the ellipses between the starting position and the target position (e.g. through their centers) in order to cope with the activity in the new scenario.
  • TP-HSMM is used as statistical model 309 according to various embodiments.
  • HMM Hidden Semi-Markov Model
  • HMM Hidden Markov Model
  • temporal information is embedded in the underlying stochastic process. This means that while in the case of an HMM it is assumed that the underlying statistical process has the Markov property, ie the probability of moving to the next state depends only on the current state, in the case of an HSMM the process the probability of entering the transition to the next state, depends on the current state and on the dwell time in the current state.
  • HSMMs are typically used in particular in speech synthesis.
  • a task-parameterized HSMM (TP-HSMM) is represented by according to one embodiment in which the transition probability from the state in the state designated, the Gaussian distributions for the dwell time in the state (the superscript D is not an index here, but is only intended to indicate the relationship with the length of stay) and a (associated or associated) TP-GMM as described above.
  • the probabilities at later times are given by the semi-Markov model on which they are based.
  • each state corresponds to a Gaussian component in the associated TP-GMM.
  • the structure of the TP -HSMM is linear, which means that the sequence of states is deterministic and only the dwell time is random. Such a linear structure can be given to accelerate the training by are set with and
  • the TP -HSMM is (for example by the controller 308) in 202 based on the demonstrations of the user 301 is trained, for example according to an EM (expectation maximization) procedure.
  • the results of the training are values for the parameter set that characterize the TP-HSMM.
  • control device 308 can then control the robot 101 based on the trained model 309 in order to carry out an activity, for example for a new scenario.
  • the controller uses the trained statistical model 309 to determine a reference trajectory for the new scenario and controls the robot to follow the reference trajectory.
  • scenario refers to a special choice of the modeled task parameters (e.g. starting position 305 and target position 306).
  • This sequence of states is the sequence of states which the robot 101 is to go through when reproducing the activity.
  • Such a state is, for example, the state represented by the (small) ellipse in FIG. 4E. It corresponds to a component of the combined TP-GMM for the new scenario (see description of FIG. 4).
  • the TP -HSMMs clearly contains the information on how the states of the TP-GMMs are to be run through over time (given by the probability distributions for the length of stay in each state and the transition probabilities between the states). For each state k t , the control device 308 determines a corresponding one
  • End effector state for example, according to an LQG (Linear Quadratic Gaussian) rule.
  • LQG Linear Quadratic Gaussian
  • the control device ensures that the differences between successive ones are not too great (according to the selected controller parameters). At the robot then tries to follow the execution, it is only an intermediate size.
  • the robot can follow the sequence of states do not follow exactly. This can also be due to the fact that is a synthetic trajectory obtained from a trained model.
  • minimal intervention LQG control may be used by controller 308 to generate such a sequence of states of Gaussian components.
  • Such control methods typically have both an optimization goal that is to avoid / punish a position error (here the distance between and the
  • a non-Euclidean state space often occurs in manipulation tasks for a robot. For example, rotary dies are often used or unit
  • a method for controlling a robot device is provided, as is shown in FIG.
  • FIG. 5 shows a flow chart 500 which illustrates a method for controlling a robot device according to an embodiment.
  • an activity is performed by a demonstration entity.
  • training data is generated based on the recorded sequence of poses of the part of the demonstration instance.
  • a robot control model is trained by using the sequence of poses of the part of the demonstrator as the training sequence of poses for a part of the robot.
  • the robot device is controlled based on the trained robot control model.
  • an activity is demonstrated one or more times by a demonstration entity (eg a human user).
  • the demonstration instance is not the robot device itself, but is, for example, independent of the robot device, that is to say, for example, a demonstration instance separate from the robot.
  • the demonstrations are recorded and used as the basis for training a model to control the robotic device.
  • a model is training is that the robot device is enabled to carry out the activity (possibly also in other scenarios) itself (ie to acquire the skill), ie to reproduce the activity (possibly also in other scenarios) in other words.
  • the part of the demonstration instance eg a hand
  • the model is trained in such a way that the part of the robot device imitates or copies (if necessary, adapted to a new scenario) the demonstrated behavior (for example the demonstrated movement sequences) of the part of the demonstration instance.
  • the sequence of positions is, for example, a sequence (or sequence) of positions and / or orientations and / or other states (e.g. "hand open” or "hand closed”).
  • the sequence of positions can be viewed as a sequence of movements.
  • the recording of the sequence of poses can be understood as recording information representing the sequence of poses (e.g. containing a representation of each position, e.g. in the form of a vector or a matrix).
  • the activity e.g. picking up and placing an object, turning an object (e.g. a lever), opening an object, etc.
  • the activity can be carried out in various ways, which depend in particular on the particular scenario in which the activity is carried out, e.g. starting position and start orientation of an object or the robot end effector and desired end position and desired end orientation of an object.
  • the sequence of positions of the part of the demonstration instance can be recorded based on sensor signals from various sensors, for example video sensors, radar sensors, LiDAR (light detection and ranging) sensors, ultrasonic sensors and motion sensors.
  • sensors for example video sensors, radar sensors, LiDAR (light detection and ranging) sensors, ultrasonic sensors and motion sensors.
  • one or more sensors are used which enable the part of the presentation instance (for example a human hand) to be tracked precisely.
  • machine vision techniques can be used that make it possible to determine a position from RGB (red-green-blue) data or RGBD (red-green-blue depth) data.
  • a specific sensor system such as a motion capture system or a glove can be used for hand tracking in order to ensure precise tracking with regard to position, orientation, posture and / or status of the To determine or track part of the demonstration instance (eg a human hand) or an object of interest (eg an object manipulated during the activity).
  • a specific sensor system such as a motion capture system or a glove can be used for hand tracking in order to ensure precise tracking with regard to position, orientation, posture and / or status of the To determine or track part of the demonstration instance (eg a human hand) or an object of interest (eg an object manipulated during the activity).
  • one or more sensors are used to ultimately generate a control signal for controlling a physical system, such as a computer-controlled machine, a manufacturing machine, an (electrical) tool, a household appliance, a personal assistant, an access control device or a similar device, referred to herein as a “robot device”, which can be controlled in such a way that it is able to achieve movements similar to the demonstration entity, for example a human hand.
  • a physical system such as a computer-controlled machine, a manufacturing machine, an (electrical) tool, a household appliance, a personal assistant, an access control device or a similar device, referred to herein as a “robot device”, which can be controlled in such a way that it is able to achieve movements similar to the demonstration entity, for example a human hand.
  • the training data for the robot control model are generated from the movement sequence (e.g. a demonstrated trajectory) demonstrated by the demonstration instance and, if necessary, trajectories of one or more objects that are manipulated during the activity. This enables a corresponding training method to be carried out for the robot control model.
  • a trajectory can be understood in such a way that it has (at least) information about position or orientation or both.
  • the calculation of the control signal is ultimately based on a set of recorded demonstrations, for example on information about the hands and object positions followed during the demonstrations.
  • a resulting control trajectory for the robot device can then follow the trajectory demonstrated by the demonstration instance, e.g. a human hand, e.g. so that it is very similar to it.
  • the control trajectory can be ascertained (or selected) in such a way that the probability that the demonstration instance will next show the ascertained control trajectory is maximized.

Abstract

According to one embodiment, a method for controlling a robot device is provided, said method comprising the following steps: a demonstration entity performs an activity; a sequence of positions of a part of the demonstration entity with which the demonstration entity performs the action is recorded; training data is generated on the basis of the recorded sequence of positions of the part of the demonstration entity; a robot control model is trained using the sequence of positions of the part of the demonstration entity as a training sequence of positions for a part of the robot; and the robot device is controlled on the basis of the trained robot control model.

Description

Beschreibung description
Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung Apparatus and method for controlling a robotic device
Verschiedene Ausführungsbeispiele betreffen allgemein eine Vorrichtung und ein Verfahren zum Steuern einer Robotervorrichtung. Various embodiments generally relate to an apparatus and a method for controlling a robotic device.
Die Vermittlung von Roboterfähigkeiten aus Demonstrationen gewinnt zunehmend an Bedeutung und Popularität im Bereich der Roboter-Manipulation, aufgrund seiner Effizienz und Intuitivität. Solche Demonstrationen erfordern jedoch typischerweise direktes Bewegen des Roboters (z.B. durch physisches Drücken oder per Fernbedienung) und weitere Interaktion mit den Objekten in der Umgebung des Roboters. The teaching of robotic skills from demonstrations is becoming increasingly important and popular in the field of robot manipulation because of its efficiency and intuitiveness. However, such demonstrations typically require direct movement of the robot (e.g. by physical pushing or remote control) and further interaction with the objects in the vicinity of the robot.
Die Veröffentlichung „A Tutorial on Task-Parameterized Movement Leaming and Retrieval“, von S. Calinon, in Intelligent Service Robotics, 9(1): 1-29, 2016, beschreibt Aufgaben-parametrisierte Modelle, die es insbesondere ermöglichen, einen Roboter basierend auf solchen Demonstrationen zu trainieren. The publication "A Tutorial on Task-Parameterized Movement Leaming and Retrieval", by S. Calinon, in Intelligent Service Robotics, 9 (1): 1-29, 2016, describes task-parameterized models that make it possible in particular to be based on a robot to train on such demonstrations.
Das direkte Bewegen des Roboters bringt jedoch die Einschränkungen mit sich, dass es Erfahrung erfordert, einen Roboter direkt zu bedienen und potenzielle Sicherheitsrisiken birgt, insbesondere für Laien. Außerdem ist es selbst für erfahrene Bediener oft physisch (z.B. mechanisch) herausfordernd, den Roboter auf die richtige Weise zu bewegen, um eine bestimmte Aufgabe zu vollbringen, insbesondere wenn die Aufgabe präzise Bewegungen erfordert. Moving the robot directly, however, brings with it the limitations that it requires experience to operate a robot directly and poses potential safety risks, especially for laypeople. In addition, even for experienced operators, it is often physically (e.g. mechanically) challenging to move the robot in the correct way to accomplish a given task, especially when the task requires precise movements.
Dementsprechend sind verbesserte Ansätze, einem Roboter Fertigkeiten beizubringen, wünschenswert. Accordingly, improved approaches to teaching a robot skills are desirable.
Das Verfahren und die Vorrichtung mit den Merkmalen der unabhängigen Ansprüche 1 und 15 ermöglichen, dass Benutzer eine Fertigkeit unter Verwendung ihrer eigenen Hände durchführen, um dem Roboter die Fertigkeit (Tätigkeit) beizubringen. Dies ermöglicht es, einem Roboter eine Fertigkeit ohne zusätzliche Kenntnisse oder zusätzliches Training beizubringen. Dies kann so erfolgen, dass es unabhängig von den dynamischen und mechanischen Beschränkungen des Roboters ist. Das Unterrichten des Roboters ist intuitiv, da sich der Benutzer verhalten kann, wie er es ohne den Roboter tun würde. Außerdem ist kein zusätzliches modellieren des Roboters erforderlich, da nicht zu manipulieren Objekte verfolgt werden, sondern die Hand eines Benutzers. The method and apparatus having the features of independent claims 1 and 15 enable users to perform a skill using their own hands to teach the robot the skill (activity). This makes it possible to teach a skill to a robot without additional knowledge or training. This can be done in such a way that it is independent of the dynamic and mechanical limitations of the robot. Teaching the robot is intuitive as the user can behave as they would without the robot. In addition, no additional modeling of the robot is required, since objects are not traced to be manipulated, but rather the hand of a user.
Gemäß einer Ausführungsform wird ein Verfahren zum Steuern einer Robotervorrichtung bereitgestellt aufweisend Durchführen einer Tätigkeit durch eine Vorführinstanz, Aufzeichnen einer Abfolge von Stellungen eines Teils der Vorführinstanz, mittels dem die Vorführinstanz die Tätigkeit durchführt, Erzeugen von Trainingsdaten basierend auf der aufgezeichneten Abfolge von Stellungen des Teils der Vorführinstanz; Trainieren eines Roboter-Steuerungsmodells durch Verwenden der Abfolge von Stellungen des Teils der Vorführinstanz als Trainingsabfolge von Stellungen für einen Teil des Roboters und Steuern der Robotervorrichtung basierend auf dem trainierten Roboter-Steuerungsmodell. Das in diesem Absatz beschriebene Verfahren bildet ein erstes Beispiel. According to one embodiment, a method is provided for controlling a robot device comprising performing an activity by a demonstration entity, recording a sequence of positions of a part of the demonstration entity by means of which the demonstration entity performs the activity, generating training data based on the recorded sequence of positions of the part of the Demonstration authority; Training a robot control model by using the sequence of poses of the part of the demonstrator as a training sequence of poses for a part of the robot and controlling the robot device based on the trained robot control model. The procedure described in this paragraph is a first example.
Das Aufzeichnen der Abfolge von Stellungen kann das Aufzeichnen von Sensordaten durch ein oder mehrere Sensoren und das Ermitteln der Abfolge von Stellungen aus den Sensordaten aufweisen. Die in diesem Absatz genannten Merkmale in Kombination mit dem ersten Beispiel bilden ein zweites Beispiel. The recording of the sequence of positions can include the recording of sensor data by one or more sensors and the determination of the sequence of positions from the sensor data. The features mentioned in this paragraph in combination with the first example form a second example.
Das Aufzeichnen der Abfolge von Stellungen kann das visuelle Aufzeichnen der Durchführung der Tätigkeit durch die Vorführinstanz aufweisen. Das visuelle Aufzeichnen von Tätigkeiten oder Fertigkeiten zum Trainieren eines Roboters ermöglicht es, dass ein Benutzer die Tätigkeit oder Fertigkeit einfach vorführen kann. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis zweiten Beispiel bilden ein drittes Beispiel. The recording of the sequence of positions can include the visual recording of the performance of the activity by the demonstrator. The visual recording of activities or skills for training a robot enables a user to easily demonstrate the activity or skill. The features mentioned in this paragraph in combination with any one of the first example to the second example form a third example.
Das visuelle Aufzeichnen kann das Aufnehmen mindestens einer Folge von Kamerabildem aufweisen. Das Vorsehen einer Kamera zum Aufzeichnen von Kamerabildern schafft eine einfache Möglichkeit zum Aufzeichnen von Trainingsdaten. Es können auch mehrere Kameras vorgesehen sein, um Bilder aus verschiedenen Blickwinkeln zu erhalten. Die in diesem Absatz genannten Merkmale in Kombination mit dem dritten Beispiel bilden ein viertes Beispiel. Das Ermitteln der Stellungen kann basierend auf einer Bildanalyse der Folge von Kamerabildem erfolgen, bei der die Position und/oder Orientierung des Teils der Vorführinstanz in der mindestens einen Folge von Kamerabildern verfolgt wird. Die in diesem Absatz genannten Merkmale in Kombination mit dem vierten Beispiel bilden ein fünftes Beispiel. The visual recording can include the recording of at least one sequence of camera images. The provision of a camera for recording camera images creates a simple way of recording training data. Several cameras can also be provided in order to obtain images from different angles. The features mentioned in this paragraph in combination with the third example form a fourth example. The positions can be determined based on an image analysis of the sequence of camera images, in which the position and / or orientation of the part of the presentation instance is tracked in the at least one sequence of camera images. The features mentioned in this paragraph in combination with the fourth example form a fifth example.
Das Steuern der Robotervorrichtung basierend auf dem trainierten Roboter- Steuerungsmodell kann das Erzeugen einer Referenztrajektorie aus dem trainierten Roboter-Steuerungsmodell und das Verfolgen (zumindest näherungsweise) der Referenztrajektorie durch die Robotervorrichtung mittels eines Linear-Quadratisch- Gaußsch(LQG)-Reglers aufweisen. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis fünften Beispiel bilden ein sechstes Beispiel. Controlling the robot device based on the trained robot control model can include generating a reference trajectory from the trained robot control model and tracking (at least approximately) the reference trajectory by the robot device using a linear-quadratic Gaussian (LQG) controller. The features mentioned in this paragraph in combination with any one of the first example through the fifth example form a sixth example.
Das Verfahren kann das Ermitteln einer Abfolge von Stellungen von ein oder mehreren weiteren Elementen, die an der Tätigkeit beteiligt sind aufweisen, wobei die Trainingsdaten basierend auf der Abfolge von Stellungen der ein oder mehreren weiteren Elemente erzeugt werden. Dies ermöglicht insbesondere ein Training eines Roboters derart, dass sich der Roboter an neue Szenarien anpassen kann. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis sechsten Beispiel bilden ein siebtes Beispiel. The method can include determining a sequence of positions of one or more further elements that are involved in the activity, the training data being generated based on the sequence of positions of the one or more further elements. In particular, this enables a robot to be trained in such a way that the robot can adapt to new scenarios. The features mentioned in this paragraph in combination with any one of the first example to the sixth example form a seventh example.
Bei dem Verfahren kann eine Abfolge von Stellungen eines Objekts, das bei der Ausführung der Tätigkeit manipuliert wird, ermittelt werden und die Trainingsdaten basierend auf der Abfolge von Stellungen des Objekts erzeugt werden. Die in diesem Absatz genannten Merkmale in Kombination mit dem siebten Beispiel bilden ein achtes Beispiel. In the method, a sequence of postures of an object that is manipulated when performing the activity can be determined and the training data can be generated based on the sequence of postures of the object. The features mentioned in this paragraph in combination with the seventh example form an eighth example.
Das Verfahren kann das mehrmalige Durchführen der Tätigkeit durch die Vorführinstanz, das Aufzeichnen, für jede Durchführung der Tätigkeit durch die Vorführinstanz, einer Abfolge von Stellungen des Teils der Vorführinstanz und das Erzeugen von Trainingsdaten basierend auf den aufgezeichneten Abfolgen von Stellungen des Teils der Vorführinstanz und Trainieren des Roboter-Steuerungsmodells durch Verwenden der Abfolgen von Stellungen des Teils der Vorführinstanz als Trainingsabfolgen von Stellungen für den Teil des Roboters aufweisen. Eine mehrmalige Durchführung ermöglicht ein robusteres Training und ein Training eines Roboters derart, dass sich der Roboter an neue Szenarien anpassen kann. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis achten Beispiel bilden ein neuntes Beispiel. The method may include multiple performance of the activity by the demonstration entity, recording, for each performance of the activity by the demonstration entity, a sequence of positions of the part of the presentation entity and the generation of training data based on the recorded sequences of positions of the part of the presentation entity and training the robot control model by using the sequences of poses of the part of the demonstrator as training sequences of poses for the part of the robot. Repeated implementation enables more robust training and training of a robot in such a way that the robot can adapt to new scenarios. The features mentioned in this paragraph in combination with any one of the first example through the eighth example form a ninth example.
Das Roboter-Steuerungsmodell kann ein statistisches Modell aufweisen. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis neunten Beispiel bilden ein zehntes Beispiel. The robot control model can have a statistical model. The features mentioned in this paragraph in combination with any one of the first example through the ninth example form a tenth example.
Das Verfahren kann das Ermitteln einer Abfolge von Stellungen mindestens eines Objekts, das bei der Ausführung der Tätigkeit manipuliert wird, aufweisen und das statistische Modell kann mittels der ermittelten Stellungen parametrisiert sein. Die in diesem Absatz genannten Merkmale in Kombination mit dem zehnten Beispiel bilden ein elftes Beispiel. The method can include determining a sequence of positions of at least one object that is manipulated during the execution of the activity, and the statistical model can be parameterized by means of the determined positions. The features mentioned in this paragraph in combination with the tenth example form an eleventh example.
Das statistische Modell kann ein Aufgaben-parametrisiertes Gaußsches Mischmodell aufweisen oder sein. Wie unten beschrieben ermöglichen solche Modelle ein effektives Training eines Roboters. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis elften Beispiel bilden ein zwölftes Beispiel. The statistical model can have or be a task-parameterized Gaussian mixed model. As described below, such models enable effective training of a robot. The features mentioned in this paragraph in combination with any one of the first example to the eleventh example form a twelfth example.
Das statistische Modell ein Aufgaben-parametrisiertes Hidden-Semi-Markov-Modell aufweisen oder sein. Wie unten beschrieben ermöglicht ein solches Modell ein effektives Training eines Roboters. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis zwölften Beispiel bilden ein dreizehntes Beispiel. The statistical model can have or be a task-parameterized hidden semi-Markov model. As described below, such a model enables effective training of a robot. The features mentioned in this paragraph in combination with any one of the first example through the twelfth example form a thirteenth example.
Beim Durchführen der Tätigkeit besteht beispielsweise kein räumlicher Kontakt zwischen der Vorführinstanz und der Robotervorrichtung. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis dreizehnten Beispiel bilden ein vierzehntes Beispiel. Die Kinematik der Vorführinstanz und der Robotervorrichtung können sich unterscheiden. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis vierzehnten Beispiel bilden ein fünfzehntes Beispiel. When performing the activity, for example, there is no spatial contact between the demonstration entity and the robot device. The features mentioned in this paragraph in combination with any one of the first example through the thirteenth example form a fourteenth example. The kinematics of the demonstration instance and the robot device can differ. The features mentioned in this paragraph in combination with any one of the first example through the fourteenth example form a fifteenth example.
Gemäß einer Ausführungsform wird eine Robotersteuervorrichtung bereitgestellt, die eingerichtet ist, ein Verfahren gemäß irgendeinem von dem ersten Beispiel bis vierzehnten Beispiel durchzuführen. Die in diesem Absatz beschriebene Vorrichtung bildet ein sechzehntes Beispiel. According to an embodiment, there is provided a robot control device configured to perform a method according to any one of the first example to fourteenth examples. The device described in this paragraph constitutes a sixteenth example.
Gemäß einer Ausführungsform wird ein Computerprogramm bereitgestellt, aufweisend Programminstruktionen, die, wenn sie von ein oder mehreren Prozessoren ausgeführt werden, die ein oder mehreren Prozessoren dazu bringen, ein Verfahren gemäß irgendeinem von dem ersten Beispiel bis fünfzehnten Beispiel durchzuführen. According to one embodiment, a computer program is provided comprising program instructions which, when executed by one or more processors, cause one or more processors to perform a method according to any one of the first example to fifteenth examples.
Gemäß einer Ausführungsform wird ein Computerlesbares Speichermedium, auf dem Programminstruktionen gespeichert sind, die, wenn sie von ein oder mehreren Prozessoren ausgeführt werden, die ein oder mehreren Prozessoren dazu bringen, ein Verfahren gemäß irgendeinem von dem ersten Beispiel bis fünfzehnten Beispiel durchzuführen. According to one embodiment, there is provided a computer-readable storage medium having stored thereon program instructions which, when executed by one or more processors, cause one or more processors to perform a method according to any one of the first example to fifteenth examples.
Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Folgenden näher erläutert. In den Zeichnungen beziehen sich gleiche Bezugszeichen überall in den mehreren Ansichten allgemein auf dieselben Teile. Die Zeichnungen sind nicht notwendig maßstabsgerecht, wobei der Schwerpunkt stattdessen allgemein auf die Darstellung der Prinzipien der Erfindung liegt. Embodiments of the invention are shown in the figures and are explained in more detail below. In the drawings, like reference characters generally refer to the same parts throughout the several views. The drawings are not necessarily to scale, emphasis instead being placed generally on illustrating the principles of the invention.
Figur 1 zeigt eine Robotervorrichtungsanordnung. Figure 1 shows a robot device arrangement.
Figur 2 zeigt ein Ablaufdiagramm, das ein Trainingsverfahren gemäß verschiedenen Ausführungsformen veranschaulicht. FIG. 2 shows a flow chart that illustrates a training method according to various embodiments.
Figur 3 zeigt eine Anordnung zum Aufzeichnen von Demonstrationen eines Benutzers. Figur 4A bis 4E zeigen Darstellungen, die die Kombination von Gaußschen Komponenten in lokalen Koordinatensystemen zu einem kombinierten Gaußschen Mischmodell veranschaulichen Figure 3 shows an arrangement for recording demonstrations by a user. FIGS. 4A to 4E show representations which illustrate the combination of Gaussian components in local coordinate systems to form a combined Gaussian mixed model
Figur 5 zeigt ein Ablaufdiagramm, das ein Verfahren zum Steuern einerFigure 5 shows a flowchart showing a method for controlling a
Robotervorrichtung gemäß einer Ausführungsform veranschaulicht. Illustrated robotic device according to an embodiment.
Die verschiedenen Ausführungsformen, insbesondere die im Folgenden beschriebenen Ausführungsbeispiele, können mittels ein oder mehrerer Schaltungen implementiert werden. In einer Ausführungsform kann eine „Schaltung“ als jede Art von Logik implementierender Entität verstanden werden, welche Hardware, Software, Firmware oder eine Kombination davon sein kann. Daher kann in einer Ausführungsform eine „Schaltung“ eine hartverdrahtete Logikschaltung oder eine programmierbare Logikschaltung, wie beispielsweise ein programmierbarer Prozessor, zum Beispiel ein Mikroprozessor sein. Eine „Schaltung“ kann auch Software sein, die von einem Prozessor implementiert bzw. ausgeführt wird, zum Beispiel jede Art von Computerprogramm. Jede andere Art der Implementierung der jeweiligen Funktionen, die im Folgenden ausführlicher beschrieben werden, kann in Übereinstimmung mit einer alternativen Ausführungsform als eine „Schaltung“ verstanden werden. The various embodiments, in particular the exemplary embodiments described below, can be implemented by means of one or more circuits. In one embodiment, a “circuit” can be understood as any type of entity implementing logic, which can be hardware, software, firmware, or a combination thereof. Thus, in one embodiment, a “circuit” may be a hardwired logic circuit or a programmable logic circuit such as a programmable processor, for example a microprocessor. A “circuit” can also be software that is implemented or executed by a processor, for example any type of computer program. Any other type of implementation of the respective functions, which are described in more detail below, may be understood as a “circuit” in accordance with an alternative embodiment.
Figur 1 zeigt eine Robotervorrichtungsanordnung 100. FIG. 1 shows a robot device arrangement 100.
Die Robotervorrichtungsanordnung 100 beinhaltet eine Robotervorrichtung 101, zum Beispiel einen Industrieroboter in der Form eines Roboterarms zum Bewegen, Montieren oder Bearbeiten eines Werkstücks. Die Robotervorrichtung 101 weist Roboterglieder 102, 103, 104 und einen Sockel (oder allgemein eine Halterung) 105 auf, durch die die Roboterglieder 102, 103, 104 getragen werden. Der Begriff " Roboterglied" bezieht sich auf die beweglichen Teile der Robotervorrichtung 101, deren Betätigung eine physische Interaktion mit der Umgebung ermöglicht, z.B. um eine Aufgabe auszuführen. Zur Steuerung beinhaltet die Robotervorrichtungsanordnung 100 eine Steuerung 106, die eingerichtet ist, die Interaktion mit der Umgebung gemäß einem Steuerungsprogramm zu realisieren. Das letzte Element 104 (von dem Sockel 105 aus gesehen) der Roboterglieder 102, 103, 104 wird auch als Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge wie einen Schweißbrenner, ein Greifwerkzeug, ein Lackiergerät oder dergleichen beinhalten. The robot device arrangement 100 includes a robot device 101, for example an industrial robot in the form of a robot arm for moving, assembling or processing a workpiece. The robot device 101 has robot limbs 102, 103, 104 and a base (or generally a bracket) 105 by which the robot limbs 102, 103, 104 are supported. The term "robot limb" refers to the moving parts of the robot device 101, the actuation of which enables a physical interaction with the environment, for example in order to carry out a task. For control purposes, the robot device arrangement 100 contains a controller 106 which is set up to implement the interaction with the environment in accordance with a control program. The last element 104 (seen from the base 105) of the robot limbs 102, 103, 104 is also referred to as the end effector 104 and can be one or more Include tools such as a welding torch, gripping tool, painting machine, or the like.
Die anderen Roboterglieder 102, 103 (näher am Sockel 105) können eine Positionierungsvorrichtung bilden, so dass zusammen mit dem Endeffektor 104 ein Roboterarm (oder Gelenkarm) mit dem Endeffektor 104 an seinem Ende vorgesehen ist. Der Roboterarm ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm erfüllen kann (möglicherweise mit einem Werkzeug an seinem Ende). The other robot limbs 102, 103 (closer to the base 105) can form a positioning device so that, together with the end effector 104, a robot arm (or articulated arm) is provided with the end effector 104 at its end. The robotic arm is a mechanical arm that can perform similar functions as a human arm (possibly with a tool on its end).
Die Robotervorrichtung 101 kann Verbindungselemente 107, 108, 109 beinhalten, die die Roboterglieder 102, 103, 104 miteinander und mit dem Sockel 105 verbinden. Ein Verbindungselement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, von denen jedes eine Drehbewegung und/oder eine Translationsbewegung (d.h. eine Verschiebung) für zugehörige Roboterglieder relativ zueinander bereitstellen kann. Die Bewegung der Roboterglieder 102, 103, 104 kann mit Hilfe von Stellgliedern eingeleitet werden, die von der Steuerung 106 gesteuert werden. The robot device 101 may include connectors 107, 108, 109 that connect the robot limbs 102, 103, 104 to one another and to the base 105. A connector 107, 108, 109 can have one or more joints, each of which can provide rotational movement and / or translational movement (i.e., displacement) for associated robot limbs relative to one another. The movement of the robot limbs 102, 103, 104 can be initiated with the aid of actuators that are controlled by the controller 106.
Der Begriff "Stellglied" kann als eine Komponente verstanden werden, die geeignet ist, als Reaktion darauf, dass sie angetrieben wird, einen Mechanismus zu beeinflussen. Das Stellglied kann von der Steuerung 106 ausgegebene Anweisungen (die sogenannte Aktivierung) in mechanische Bewegungen umsetzen. Das Stellglied, z.B. ein elektromechanischer Wandler, kann eingerichtet werden, elektrische Energie als Reaktion auf seine Ansteuerung in mechanische Energie umzuwandeln. The term "actuator" can be understood as a component that is capable of influencing a mechanism in response to being driven. The actuator can convert instructions (so-called activation) issued by the controller 106 into mechanical movements. The actuator, for example an electromechanical converter, can be set up to convert electrical energy into mechanical energy in response to its activation.
Der Begriff "Steuerung" (auch als „Steuereinrichtung bezeichnet“) kann als jede Art von logischer Implementierungseinheit verstanden werden, die beispielsweise eine Schaltung und/oder einen Prozessor beinhalten kann, der in der Lage ist, in einem Speichermedium gespeicherte Software, Firmware oder eine Kombination derselben auszuführen, und die Anweisungen, z.B. an ein Stellglied im vorliegenden Beispiel, erteilen kann. Die Steuerung kann beispielsweise durch Programmcode (z.B. Software) eingerichtet werden, den Betrieb eines Systems, im vorliegenden Beispiel eines Roboters, zu steuern. In dem vorliegenden Beispiel beinhaltet die Steuerung 106 einen oder mehrere Prozessoren 110 und einen Speicher 111, der Code und Daten speichert, auf deren Grundlage der Prozessor 110 die Robotervorrichtung 101 steuert. Gemäß verschiedener Ausführungsformen steuert die Steuerung 106 die Robotervorrichtung 101 auf der Grundlage eines im Speicher 111 gespeicherten statistischen Modells 112. The term “controller” (also referred to as “control device”) can be understood as any type of logical implementation unit that can contain, for example, a circuit and / or a processor that is able to process software, firmware or a Execute combination of the same, and the instructions, for example to an actuator in the present example, can give. The controller can be set up, for example, by program code (for example software) to control the operation of a system, in the present example a robot. In the present example, the controller 106 includes one or more processors 110 and a memory 111 that stores code and data based on which the processor 110 controls the robotic device 101. According to various embodiments, the controller 106 controls the robot device 101 based on a statistical model 112 stored in the memory 111.
Ein Roboter, wie er durch die Robotergeräteanordnung 100 implementiert ist, kann aus Demonstrationen lernen, eine Aufgabe auszuführen oder mit einem menschlichen Partner zusammenzuarbeiten. Menschliche Demonstrationen können durch ein probabilistisches Modell (auch als statistisches Modell bezeichnet) kodiert werden, das den Sollplan der Aufgabe für den Roboter darstellt. Die Steuerung 106 kann anschließend mit dem statistischen Modell die gewünschten Roboterbewegungen erzeugen, möglicherweise in Abhängigkeit vom Zustand des menschlichen Partners und der Umgebung. A robot, as implemented by the robotic device assembly 100, can learn from demonstrations to perform a task or to work with a human partner. Human demonstrations can be encoded by a probabilistic model (also known as a statistical model) that represents the target schedule of the task for the robot. The controller 106 can then use the statistical model to generate the desired robot movements, possibly depending on the condition of the human partner and the environment.
Um einem Roboter eine Fertigkeit beizubringen, wie beispielsweise sich gemäß einer gewünschten Trajektorie zu bewegen, können kinästhetische Demonstrationen durchgeführt werden, bei denen der Roboter direkt bewegt wird, z.B. durch physisches Schieben oder mittels einer Fernbedienung. In order to teach a robot a skill, such as moving according to a desired trajectory, kinesthetic demonstrations can be performed in which the robot is moved directly, e.g. by physically pushing or using a remote control.
Neben der dafür erforderlichen Erfahrung, der Sicherheitsrisiken und der Anforderungen (z.B. für Aufgaben, die präzise Bewegungen erfordern) ist das Bewegen des Roboters auch viel weniger intuitiv für einen Menschen, um eine Aufgabe durchzuführen, verglichen mit dem Gebrauch der eigenen Hände. In addition to the experience, safety risks and requirements (e.g. for tasks that require precise movements), moving the robot is also much less intuitive for a human to perform a task compared to using one's own hands.
Alternative Ansätze verfolgen Objekte im Arbeitsbereich des Roboters, um die gewünschten zu produzierenden Effekte auf die Objekte zu erzielen. Dies erfordert jedoch eine zusätzliche Modellierung des Roboters, um die gewünschten Effekte mit Bewegungen zu verbinden, die vom Roboter ausgeführt werden müssen. Alternative approaches track objects in the working area of the robot in order to achieve the desired effects to be produced on the objects. However, this requires additional modeling of the robot in order to combine the desired effects with movements that must be carried out by the robot.
In Hinblick auf das obere wird gemäß verschiedenen Ausführungsbeispielen eine Herangehensweise bereitgestellt, die es einem menschlichen Benutzer ermöglicht, einem Roboter eine Tätigkeit (Fertigkeit) beizubringen, indem er einfach die Tätigkeit selbst durchführt. Dabei werden Demonstrationen beispielsweise durch Verfolgen der Hand des Benutzers (und optional der involvierten Objekte) aufgezeichnet, anstatt die Trajektorie des End-Effekttors aufzuzeichnen. Demonstrationen werden dann dazu verwendet, eine kompakte mathematische Repräsentation der Fertigkeit zu lernen, die (zum Beispiel von der Steuerung 106) dazu verwendet werden kann, diese Fertigkeit durch den Roboter in neuen Szenarien (zum Beispiel neuen relativen Positionen zwischen dem Roboter und zu manipulierendem Objekt) zu reproduzieren. With regard to the above, according to various exemplary embodiments, an approach is provided that enables a human user to teach an activity (skill) to a robot by simply performing the activity itself. Demonstrations are carried out, for example, by following the hand of the User (and optionally the objects involved) instead of recording the trajectory of the end-effect gate. Demonstrations are then used to learn a compact mathematical representation of the skill that can be used (e.g. by the controller 106) to demonstrate that skill by the robot in new scenarios (e.g., new relative positions between the robot and the object to be manipulated ) to reproduce.
Verschiedene Ausführungsbeispiele basieren auf den technischen Fortschritten in zwei Bereichen: Erstens ist die Verfolgung einer Hand basierend auf Kamerabildem in Bereichen, wo Roboter eingesetzt werden, beispielsweise in Fabriken, typischerweise verfügbar und zweitens erlauben es Verfahren zum Trainieren von Robotern basierend auf menschlichen Demonstrationen sowohl das effiziente Lernen durch den Roboter (d.h. Trainieren des Roboters) als auch die flexible Reproduktion. Ein Beispiel hierfür sind TP- HSMMs (Task-Parameterized Hidden Semi Markov Models), die eine Aufgabenparameter-abhängige Repräsentation von gelernten Bewegungsfertigkeiten ermöglichen. Various exemplary embodiments are based on technical advances in two areas: firstly, the tracking of a hand based on camera images is typically available in areas where robots are used, for example in factories, and secondly, methods for training robots based on human demonstrations are both efficient Learning by the robot (ie training the robot) as well as flexible reproduction. An example of this are TP-HSMMs (Task-Parameterized Hidden Semi Markov Models), which enable a task parameter-dependent representation of learned movement skills.
Das Verfolgen von Objekten und menschlichen Händen ist ein aktives Forschungsgebiet, (insbesondere im maschinellen Sehen) und ist für industrielle Anwendungen von großer Bedeutung. Im Unterschied zur Anwendung entsprechender Techniken auf die Mensch- Maschine-Interaktion (wie beispielsweise für Videospiele) wird es gemäß verschiedenen Ausführungsformen für das Trainieren (Unterrichten) und Lernen von Robotern eingesetzt. Tracking objects and human hands is an active research area (especially in machine vision) and is of great importance for industrial applications. In contrast to the application of corresponding techniques to human-machine interaction (such as for video games, for example), it is used according to various embodiments for training (teaching) and learning of robots.
Figur 2 zeigt ein Ablaufdiagramm 200, das ein Trainingsverfahren gemäß verschiedenen Ausführungsformen veranschaulicht. FIG. 2 shows a flow diagram 200 that illustrates a training method according to various embodiments.
In 201, der Demonstrationsphase, demonstriert ein Benutzer (oder allgemein eine Vorführinstanz) die gewünschte Fertigkeit. Die Demonstration wird aufgezeichnet. Beispielsweise wird eine Videoaufnahme mittels einer Kamera erstellt und die Abfolge der Stellungen einer Hand des Benutzers (allgemein eines Teils der Vorführinstanz) wird aus den Bildern des Videos ermittelt und in Form einer Trajektorie repräsentiert. Dies wird für mehrere Demonstrationen wiederholt. Es sollte beachtet werden, dass dies auf entkoppelte Art geschehen kann, d.h. beispielsweise wird eine Menge von Videos verwendet, die zuvor ohne Absicht, einem Roboter eine Fertigkeit beizubringen, aufgenommen wurden. In 201, the demonstration phase, a user (or generally a demonstration instance) demonstrates the desired skill. The demonstration is recorded. For example, a video recording is created by means of a camera and the sequence of the positions of a hand of the user (generally a part of the demonstration instance) is determined from the images of the video and represented in the form of a trajectory. This is repeated for several demonstrations. It should be noted that this is decoupled on Kind of happening, that is, for example, using a lot of videos that were previously recorded with no intention of teaching a skill to a robot.
In 202, der Lern- oder Trainingsphase, wird ein mathematisches Modell aus den gesammelten Demonstrationen gelernt. Beispielsweise wird ein TP-HSMM gelernt, das eine Handpose als einen der Aufgaben-Parameter enthält. Eine „Pose“ enthält beispielsweise Information über Position und/oder Orientierung oder auch über Zustand (z.B. „Hand geschlossen“ gegenüber „Hand geöffnet“). In 202, the learning or training phase, a mathematical model is learned from the collected demonstrations. For example, a TP-HSMM is learned that contains a hand pose as one of the task parameters. A "pose" contains, for example, information about position and / or orientation or also about status (e.g. "hand closed" versus "hand open").
In 203, in der Reproduktions- oder Ausführungsphase, wird das gelernte mathematische Modell dazu verwendet, um den Roboter der Art zu steuern, dass er die Fertigkeit innerhalb eines demonstrierten Szenarios oder auch eines nicht-demonstrierten Szenarios ausführt. Beispielsweise erzeugt die Steuerung 106 eine Trajektorie, die für das Bewegungsverhalten des Roboters geeignet ist, gemäß der sie den Roboter steuert, wobei die Stellung des Endeffektors 104 die Rolle des Handposen- Aufgabenparameters einnimmt. Es wird somit anschaulich die Hand (allgemein der Teil der Vorführinstanz) auf den Endeffektor (allgemein den Teil der Robotervorrichtung) abgebildet, bzw. es werden die beiden Teile (im Rahmen der Robotersteuerung) miteinander identifiziert und der Teil der Robotervorrichtung imitiert den Teil der Vorführinstanz. Dies unterscheidet sich beispielsweise von dem Trainieren eines Roboters durch direktes Bewegen (z.B. Schieben und Ziehen) oder mittels einer Fernbedienung. Dort imitiert der Teil der Robotervorrichtung nicht einen Teil der Vorführinstanz. In 203, in the reproduction or execution phase, the learned mathematical model is used to control the robot in such a way that it executes the skill within a demonstrated scenario or also a non-demonstrated scenario. For example, the controller 106 generates a trajectory that is suitable for the movement behavior of the robot, according to which it controls the robot, the position of the end effector 104 assuming the role of the hand pose task parameter. The hand (generally the part of the demonstration instance) is thus clearly mapped onto the end effector (generally the part of the robot device), or the two parts (within the framework of the robot control) are identified with one another and the part of the robot device imitates the part of the demonstration instance . This differs, for example, from training a robot by moving it directly (e.g. pushing and pulling) or using a remote control. There the part of the robot device does not imitate a part of the demonstration instance.
Das Erzeugen der Trajektorie für die Steuerung des Roboters (auch als Referenz- Trajektorie bezeichnet) kann auf verschiedene Weisen durchgeführt werden. The trajectory for controlling the robot (also referred to as a reference trajectory) can be generated in various ways.
Beispielsweise wird eine für den Roboter mögliche Trajektorie durch Berücksichtigung des Roboter-Bewegungsverhaltens in der Trajektorienplanung erzeugt oder stattdessen eine teilweise für den Roboter mögliche Trajektorie erzeugt und der Roboter derart gesteuert, dass er der Trajektorie so gut wie physikalisch möglich folgt. For example, a possible trajectory for the robot is generated by taking into account the robot's movement behavior in the trajectory planning, or instead a trajectory that is partially possible for the robot is generated and the robot is controlled in such a way that it follows the trajectory as physically as possible.
Figur 3 zeigt eine Anordnung 300 zum Aufzeichnen von Demonstrationen eines Benutzers. Ein Benutzer 301 demonstriert eine Fertigkeit durch Bewegen seiner Hand 302. Beispielsweise nimmt er ein Objekt 304 von einer ersten Position 305 und bewegt es an eine zweite Position 306. Eine Kamera 307 zeichnet die Bewegung des Benutzers auf. Es können auch mehrere Kameras vorgesehen sein, die die Demonstration aus verschiedenen Blickwinkeln, insbesondere aus Sicht der Startposition 305 und aus Sicht der Endposition 306 des Objekts 304 aufzeichnen. FIG. 3 shows an arrangement 300 for recording demonstrations by a user. A user 301 demonstrates a skill by moving his hand 302. For example, he takes an object 304 from a first position 305 and moves it to a second position 306. A camera 307 records the movement of the user. Several cameras can also be provided which record the demonstration from different angles, in particular from the perspective of the start position 305 and from the perspective of the end position 306 of the object 304.
Jede Demonstration wird damit als eine Folge von Bildern repräsentiert, die einer Steuereinrichtung 308, die beispielsweise der Steuerung 106 entspricht, zugeführt wird. Die Steuereinrichtung 308 lernt basierend auf den Demonstrationen ein statistisches Modell 309, dass beispielsweise dem statistischen Modell 112 entspricht. Each demonstration is thus represented as a sequence of images which is fed to a control device 308, which corresponds to the controller 106, for example. Based on the demonstrations, the control device 308 learns a statistical model 309 that corresponds to the statistical model 112, for example.
Für eine gewünschte Tätigkeit (beispielsweise zur Manipulation eines Objekts) kann der Benutzer 301 eine Demonstration gemäß verschiedener Alternativen durchführen. For a desired activity (for example to manipulate an object), the user 301 can carry out a demonstration according to various alternatives.
Beispielsweise kann als erste Alternative der Benutzer 301 wie folgt Vorgehen a) Vorkonfiguration des Aufnahmesystems (z.B. aufweisend die ein oder mehreren Kameras 307 und der Steuereinrichtung 308), sodass es ein oder mehrere Objekte 304, die für die Fertigkeit von Interesse sind und die Hand 302 (oder auch beide Hände des Benutzers 301) verfolgen kann. b) Der Benutzer demonstriert, wie die Tätigkeit durchgeführt werden kann. Die Steuereinrichtung zeichnet die zugehörige Trajektorie der Hand 302 (oder der Hände) und der ein oder mehreren Objekte 304 auf und speichert sie. c) Der Benutzer wiederholt die Demonstration von b) aber mit unterschiedlichen Systemkonfigurationen, beispielsweise unterschiedlichen Startpositionen seiner Hände, unterschiedlichen Startpositionen 305 des Objekts 304 oder unterschiedlichen Endpositionen 306 des Objekts 304. For example, as a first alternative, the user 301 can proceed as follows: a) Preconfiguring the recording system (e.g. having the one or more cameras 307 and the control device 308) so that there are one or more objects 304 that are of interest to the skill and the hand 302 (or both hands of the user 301) can follow. b) The user demonstrates how the activity can be carried out. The control device records the associated trajectory of the hand 302 (or hands) and the one or more objects 304 and stores them. c) The user repeats the demonstration from b) but with different system configurations, for example different starting positions of his hands, different starting positions 305 of the object 304 or different end positions 306 of the object 304.
Als zweite Alternative kann der Benutzer 301 beispielsweise wie folgt Vorgehen a) Der Benutzer 301 zeichnet Ausgabe-Rohdaten des Aufzeichnungssystems auf, wenn er die Tätigkeit durchführt, beispielsweise eine Videoaufzeichnung, die von einer oder mehreren Kameras 307, zum Beispiel RGBD- Kamerasensoren erhalten werden. b) Anschließend wird mittels Abstraktion aus den aufgezeichneten Daten die zugehörige Trajektorie der Hand (oder der Hände) 302 des Benutzers ermittelt. c) Der Benutzer wiederholt die Demonstration und Ermittlung einer zugehörigen Trajektorie von a) und b) aber mit unterschiedlichen Systemkonfigurationen, beispielsweise unterschiedlichen Startpositionen seiner Hände, unterschiedlichen Startpositionen 305 des Objekts 304 oder unterschiedlichen Endpositionen 306 des Objekts 304. As a second alternative, the user 301 can proceed, for example, as follows: a) The user 301 records raw output data of the recording system when he carries out the activity, for example a video recording, which is obtained from one or more cameras 307, for example RGBD camera sensors. b) The associated trajectory of the hand (or hands) 302 of the user is then determined by means of abstraction from the recorded data. c) The user repeats the demonstration and determination of an associated trajectory of a) and b) but with different system configurations, for example different start positions of his hands, different start positions 305 of the object 304 or different end positions 306 of the object 304.
Es sollte beachtet werden, dass die erste Alternative höhere Anforderungen im Hinblick auf die Echtzeit- Verfolgung-Leistungsfähigkeit des Aufnahmesystems hat. It should be noted that the first alternative has higher demands on the real-time tracking performance of the recording system.
Ist die vom Roboter zu lernende Fertigkeit beispielsweise, das Objekt 304 aufzunehmen und an der Endposition 306 zu platzieren, muss das Aufnahmesystem die Hand des Benutzers 302 zusammen mit dem Objekt 304 und mögliche Endpositionen des Objekts 304 (zum Beispiel von Paletten) verfolgen. If the skill to be learned by the robot is, for example, to pick up the object 304 and place it at the end position 306, the picking system must track the hand of the user 302 together with the object 304 and possible end positions of the object 304 (for example of pallets).
Es wird angenommen, dass am Ende von 201 die Demonstrationen abstrahiert sind (beispielsweise als Verläufe von Koordinaten der Hand 302 oder des Objekts 304 repräsentiert sind) und als Trajektorien (zum Beispiel der Hand 302 Subjekts 304 oder auch mehrerer Hände und/oder mehrerer Objekte) abgespeichert sind, beispielsweise in einem Speicher der Steuereinrichtung 308. It is assumed that at the end of 201 the demonstrations are abstracted (for example are represented as courses of coordinates of the hand 302 or the object 304) and as trajectories (for example the hand 302 of the subject 304 or also several hands and / or several objects) are stored, for example in a memory of the control device 308.
In 202 wird nun gemäß einer Ausführungsform ein Bewegungsmodell (z.B. im Folgenden Beispiel ein Handbewegungsmodell) gelernt, das High-Level-Bewegungsmodell angesehen werden kann. Gemäß einer Ausführungsform wird dazu ein TP-HSMM (Task- Parameterized Hidden Semi Markov Model) als statistisches Modell 309 trainiert. Ein TP- HSMM ermöglicht sowohl effizientes Lernen als auch flexible Reproduktion zum Lernen von Roboter-Fähigkeiten aus menschlichen Demonstrationen. Genauer wird die aufgezeichnete Trajektorie der Benutzerhand 302 als gewünschte Bewegung behandelt, die gelernt werden soll, während die Trajektorie des Objekts (304 dazu verwendet wird, unterschiedliche Aufgabenparameter (Task-Parameter) für die Fertigkeit zu erzeugen, die unterschiedliche Konfigurationen des Arbeitsbereichs repräsentieren. Es sollte beachtet werden, dass wenn im Folgenden von einer Benutzerhand und einem Objekt gesprochen wird, das Modell auch analog auf beide Hände des Benutzers und/oder mehrere Objekte angewendet werden kann. Das Objekt oder die Objekte und die Hand oder Hände (oder auch andere Körperteile wie ein Arm), die an der Tätigkeit beteiligt sind, werden im Folgenden auch als „Elemente, die an der Tätigkeit beteiligt sind“ zusammengefasst. Es sollte beachtet werden, dass die Demonstrationen nicht notwendig von einem menschlichen Benutzer vorgeführt werden müssen. So könnte in speziellen Anwendungsfällen auch gewünscht sein, dass ein Roboter eine Tätigkeit von einem Tier oder auch von einer Maschine, z.B. einem anderen Roboter, lernt. In diesem Sinne kann die Vorführinstanz (auch als Trainer oder Demonstrationseinheit bezeichnet), die eine Tätigkeit demonstriert, auch ein Tier oder ein anderer Roboter sein. In 202, according to one embodiment, a movement model (for example a hand movement model in the following example) is now learned, which high-level movement model can be viewed. According to one embodiment, a TP-HSMM (Task-Parameterized Hidden Semi Markov Model) is trained as a statistical model 309 for this purpose. A TP-HSMM enables both efficient learning and flexible reproduction for learning robot skills from human demonstrations. More specifically, the recorded trajectory of the user's hand 302 is treated as a desired movement to be learned while the trajectory of the object (304 is used to generate different task parameters) for the skill, which represent different configurations of the work area. It should be noted that when a user hand and an object are referred to below, the model can also be applied analogously to both hands of the user and / or several objects. The object or objects and the hand or hands (or other body parts such as an arm) that are involved in the activity are also summarized below as "elements that are involved in the activity". It should be noted that the demonstrations need not necessarily be performed by a human user. In special applications, it could also be desired that a robot learns an activity from an animal or also from a machine, for example another robot. In this sense, the demonstration instance (also referred to as a trainer or demonstration unit) that demonstrates an activity can also be an animal or another robot.
In anderen Worten kapselt das Modell, wie sich die Benutzerhand 302 bei gegebenen verschiedenen Konfigurationen des Arbeitsbereichs bewegt. Beispielsweise lernt das Modell für dieselbe Fertigkeit, das Objekt 304 aufzunehmen und zu platzieren, unterschiedliche Aufnahme-Techniken (wie beispielsweise das Objekt 304 von oben oder von der Seite aufzunehmen) für unterschiedliche Orientierungen des Objekts 304. In other words, the model encapsulates how the user's hand 302 moves given various configurations of the workspace. For example, for the same skill in picking up and placing the object 304, the model learns different recording techniques (such as picking up the object 304 from above or from the side) for different orientations of the object 304.
Das Ziel des Trainierens des mathematischen Modells soll den Roboter in die Lage versetzen, die demonstrierte Fertigkeit mittels seines Roboterarms zu reproduzieren. Ist ein neues Szenario hinsichtlich des Zustands des Roboterarms und der Position des Objekts 304 gegeben, verwendet die Steuereinrichtung 308 das Modell 309, um eine Referenztrajektorie zu erzeugen, und steuert den Roboter der Art, sodass er der Referenztrajektorie folgt, sodass er die Tätigkeit für dieses neue Szenario reproduziert. Der Steueralgorithmus, gemäß dem die Steuereinrichtung 308 den Roboterarm-Endeffektor 104 steuert, um der Referenztrajektorie zu folgen wird, als Verfolgungssteuerung bezeichnet, für die viele unterschiedliche Realisierung abhängig von dem speziellen dynamischen Verhalten des Roboters 101 möglich sind. The goal of training the mathematical model is to enable the robot to reproduce the demonstrated skill using its robotic arm. If there is a new scenario regarding the state of the robot arm and the position of the object 304, the controller 308 uses the model 309 to generate a reference trajectory and controls the robot in such a way that it follows the reference trajectory so that it does the work for it reproduced new scenario. The control algorithm according to which the control device 308 controls the robot arm end effector 104 in order to follow the reference trajectory is referred to as tracking control, for which many different realizations are possible depending on the particular dynamic behavior of the robot 101.
Aufgrund des Unterschieds des menschlichen Bewegungsverhaltens und des Roboter- Bewegungsverhaltens kann der Fall auftreten, dass die von der Steuerung 308 basierend auf dem Modell 309 erzeugte Referenztrajektorie für ein Szenario nur teilweise realisierbar ist, d.h. es ist möglich, dass der Roboter hier nicht vollständig folgen kann. Diesem Fall kann die Steuerung 308 den Roboter 101 derart steuern, dass der Endeffektor 104 der ermittelten Referenztrajektorie so nah wie physikalisch möglich folgt. Due to the difference between the human movement behavior and the robot movement behavior, the case may arise that the reference trajectory generated by the controller 308 based on the model 309 is only partially feasible for a scenario, ie it is possible that the robot cannot follow it completely here . This case The controller 308 can control the robot 101 in such a way that the end effector 104 follows the determined reference trajectory as closely as physically possible.
Im Folgenden werden die mathematischen Details beschrieben, auf deren Grundlage die Steuerung 308 das statistische Modell in 202 trainieren kann und den Roboter 101 in 203 zum Durchführen einer Tätigkeit, für die er trainiert wurde, steuern kann. The following describes the mathematical details on the basis of which the controller 308 can train the statistical model in 202 and control the robot 101 in 203 to perform an activity for which it has been trained.
Im Folgenden wird ein Roboter 101 mit mehreren Freiheitsgraden angenommen. Der Zustand des Endeffektors 104 wird als bezeichnet, wobei
Figure imgf000016_0002
die
Figure imgf000016_0001
In the following, a robot 101 with several degrees of freedom is assumed. The state of the end effector 104 is referred to as, where
Figure imgf000016_0002
the
Figure imgf000016_0001
Arbeits-Mannigfaltigkeit des Roboters bezeichnet. Beispielsweise kann jeder Punkt der Mannigfaltigkeit
Figure imgf000016_0003
die Position des Endeffektors 104 in 3D in kartesischen
Called the work manifold of the robot. For example, each point can be the manifold
Figure imgf000016_0003
the position of the end effector 104 in 3D in Cartesian
Koordinaten, seine Orientierung als Quaternion und, im Falle eines Greifers als Werkzeug, der Zustand des Greifers (z.B. wie weit der Greifer geöffnet ist oder auch nur, ob er geöffnet oder geschlossen ist), repräsentieren. Coordinates, its orientation as a quaternion and, in the case of a gripper as a tool, the state of the gripper (e.g. how far the gripper is open or just whether it is open or closed).
Es sollte beachtet werden, dass eine wichtige Eigenschaft von in diesem
Figure imgf000016_0004
Zusammenhang ist, dass nicht nur der Zustand des Roboter-Endeffektors 104 sondern auch ein Zustand der Hand 304 des Benutzers 301 in ein Zustand aus repräsentiert
Figure imgf000016_0005
werden kann.
It should be noted that an important property of this
Figure imgf000016_0004
The connection is that not only represents the state of the robot end effector 104 but also a state of the hand 304 of the user 301 in an off state
Figure imgf000016_0005
can be.
Es wird ferner angenommen, dass der Roboter in einem statischen, bekannten Arbeitsumfeld arbeitet und innerhalb dieses Arbeitsumfelds die Hand 302 des Benutzers präzise verfolgt werden kann (d.h. Kameras 304 in ausreichender Zahl und Anordnung vorgesehen sind). Innerhalb der Reichweite des Roboters gibt es Objekte (von Interesse), die mit bezeichnet werden. Ohne Beschränkung der
Figure imgf000016_0006
Allgemeinheit wird angenommen, dass der Zustand p jedes Objekts in einer Objektkonfigurationsmannigfaltigkeit
Figure imgf000016_0007
Beispielsweise kann jeder Punkt der Mannigfaltigkeit die mögliche Position eines
Figure imgf000017_0001
It is further assumed that the robot works in a static, known working environment and within this working environment the hand 302 of the user can be precisely tracked (ie cameras 304 are provided in sufficient number and arrangement). Within the range of the robot there are objects (of interest) marked with. Without limitation of
Figure imgf000016_0006
In general, it is assumed that the state p of each object in an object configuration manifold
Figure imgf000016_0007
For example, each point of the manifold can represent the possible position of a
Figure imgf000017_0001
Objekts 304 in 3D in kartesischen Koordinaten zusammen mit einer möglichen Orientierung als Quaternion angeben. Ferner wird angenommen, dass es eine Menge von Kem-Manipulationsfertigkeiten gibt, die es dem Roboter ermöglicht, die Objekte zu manipulieren (z.B. zu bewegen). DieSpecify object 304 in 3D in Cartesian coordinates together with a possible orientation as a quaternion. Further, it is believed that there are a lot of core manipulation skills that enable the robot to manipulate (e.g. move) the objects. The
Menge dieser Kern-Manipulationsfertigkeiten wird als
Figure imgf000017_0002
bezeichnet.
Set of these core manipulation skills is called the
Figure imgf000017_0002
designated.
Für jede Tätigkeit (entsprechend einer Fertigkeit) führt der Benutzer 301 mehrere Demonstrationen durch, die definieren, wie der Roboter 101 sie durchführen soll. For each activity (corresponding to a skill), the user 301 carries out several demonstrations that define how the robot 101 is to carry them out.
Insbesondere ist für eine Fertigkeit
Figure imgf000017_0003
eine Objekt menge
Figure imgf000017_0004
Involviert und die Menge von Demonstrationen wird mit bezeichnet, wobei jede Demonstration mit
Figure imgf000017_0005
Figure imgf000017_0006
bezeichnet wird, wobei
Figure imgf000017_0007
eine Folge von Zuständen s ist, wobei jeder Zustand den
In particular, is for a skill
Figure imgf000017_0003
a lot of objects
Figure imgf000017_0004
Involved and the amount of demonstrations is denoted with, each demonstration with
Figure imgf000017_0005
Figure imgf000017_0006
is referred to, where
Figure imgf000017_0007
is a sequence of states s, where each state denotes the
(zu dem Zeitpunkt t) gewünschten Zustand wie er aus der Verfolgen der
Figure imgf000017_0008
(at the time t) desired state as he came from the tracking of the
Figure imgf000017_0008
Hand (durch Aufnahme von Kamerabildem) ermittelt wurde, und Objektzustände jeder in der Mannigfaltigkeit angibt. Mittels eiiner
Figure imgf000017_0010
Figure imgf000017_0009
Hand (by taking camera images), and specifying object states each in the manifold. By means of a
Figure imgf000017_0010
Figure imgf000017_0009
Kombination dieser Fertigkeiten kann der Roboter 101 jeweilige Objekte manipulieren, so dass sie einen gewünschten Endzustand erreichen. Zusammenfassend werden für jede zu erlernende Fertigkeit (beispielsweise für die Menge von Kernfertigkeiten) mehrere Demonstrationen des Benutzers verfolgt, wobei jede Demonstration gemäß (1) (z.B. in einer entsprechenden Datenstruktur in der Steuereinrichtung 308) repräsentiert wird. Jede Demonstration weist die aufgezeichnete Trajektorie der Hand des Benutzers, um die gewünschten Roboter-Endeffektorzustände
Figure imgf000018_0001
zu definieren und die aufgezeichneten Zustände aller bei der Fertigkeit involvierten Objekte auf.
Combination of these skills, the robot 101 can manipulate respective objects so that they achieve a desired end state. In summary, several demonstrations of the user are followed for each skill to be learned (for example for the set of core skills), each demonstration being represented according to (1) (for example in a corresponding data structure in the control device 308). Each demonstration has the recorded Trajectory of the user's hand to the desired robot end-effector states
Figure imgf000018_0001
and the recorded states of all objects involved in the skill.
Die Anzahl der Zustände Tm ergibt sich dabei aus der Dauer der Demonstration und derThe number of states T m results from the duration of the demonstration and the
Abtastrate, d.h. der Rate, mit der die Position der Hand (oder der Hände) 301 und des Objekts (oder der Objekte) 304 ermittelt wird. Wenn beispielsweise eine Demonstration zehn Sekunden dauert und die Abtastrate auf 50Hz eingestellt ist, dann besteht diese Demonstration aus 500 Trainingsvektoren. Wenn eine Demonstrationsphase aus fünf verschiedenen Demonstrationen besteht, dann besteht der endgültige Trainingsdatensatz aus 2500 Trainingsvektoren, unter der Annahme, dass jede Demonstration zehn Sekunden dauert (mit einer festen Abtastrate von 50Hz). Die Dauer der Demonstration hat typischerweise keinen Einfluss auf den Trainingsprozess des statistischen Modells 308. Sampling rate, i.e. the rate at which the position of the hand (or hands) 301 and the object (or objects) 304 are determined. For example, if a demonstration lasts ten seconds and the sampling rate is set to 50Hz, then this demonstration consists of 500 training vectors. If a demonstration phase consists of five different demonstrations, then the final training data set consists of 2500 training vectors, assuming that each demonstration lasts ten seconds (with a fixed sampling rate of 50 Hz). The duration of the demonstration typically has no influence on the training process of the statistical model 308.
Die gewünschte Trajektorie der Roboter-Endeffektorzustände beim Durchführen
Figure imgf000018_0002
der Tätigkeit (für dasselbe Szenario) wird dabei durch die aufgezeichnete (verfolgte) Trajektorie der Hand des Benutzers gegeben.
The desired trajectory of the robot end effector states when performing
Figure imgf000018_0002
the activity (for the same scenario) is given by the recorded (tracked) trajectory of the user's hand.
Als mathematisches Modell 309 trainiert die Steuereinrichtung 308 beispielsweise ein TP- HSMM. Das trainierte TP-HSMM repräsentiert sowohl räumliche als auch zeitliche Information in Hinblick darauf, wie sich der Roboterarm bezüglich der involvierten Objekte bewegen soll. Durch Berücksichtigung unterschiedlicher Perspektiven (z.B. der Perspektiven unterschiedlicher Objekte) kann die Steuerung die Roboter-Trajektorie an neue (d.h. nicht-demonstrierte) Szenarien anpassen, in denen die Objekte sich an anderen Stellen befinden. The control device 308 trains, for example, a TP-HSMM as a mathematical model 309. The trained TP-HSMM represents both spatial and temporal information with regard to how the robot arm should move with respect to the objects involved. By taking into account different perspectives (e.g. the perspectives of different objects), the controller can adapt the robot trajectory to new (i.e. non-demonstrated) scenarios in which the objects are in different places.
Die dem Lernen aus Demonstrationen zu Grunde liegende Idee kann darin gesehen werden, ein vorgegebenes Fertigkeitenmodell wie ein GMM (Gaußsches Mischmodell), das Teil des TP-HSMM sein kann, an eine gegebene Menge von Demonstrationen anzupassen. Es wird angenommen, dass M Demonstrationen gegeben sind, wobei jede Demonstrationen gemäß (1) Datenpunkte aus einer Datenmenge von
Figure imgf000018_0003
Beobachtungen insgesamt enthält, wobei zur
Figure imgf000019_0001
Figure imgf000019_0003
The idea on which learning from demonstrations is based can be seen in adapting a given skills model such as a GMM (Gaussian mixed model), which can be part of the TP-HSMM, to a given set of demonstrations. It is assumed that M demonstrations are given, each demonstration according to (1) being data points from a data set of
Figure imgf000018_0003
Contains total observations, with for
Figure imgf000019_0001
Figure imgf000019_0003
Einfachheit
Figure imgf000019_0002
angenommen wird.
simplicity
Figure imgf000019_0002
Is accepted.
Es wird ferner angenommen, dass jede Demonstration aus der Perspektive P unterschiedlicher Koordinatensysteme
Figure imgf000019_0012
die als Aufgabenparameter (Task-Parameter) bezeichnet werden, aufgenommen wird.
It is also assumed that each demonstration from the perspective P has different coordinate systems
Figure imgf000019_0012
which are referred to as task parameters (task parameters) is included.
Eine Möglichkeit, für eine Demonstration solche Aufgaben-parametrisierten (Task- parametrisierten) Daten zu erhalten ist es, die für die Demonstration beobachteten Endeffektor-Zustände, die in einem globalen Koordinatensystem gegeben sind, in jedesOne possibility of obtaining such task-parameterized (task-parameterized) data for a demonstration is to enter the end effector states observed for the demonstration, which are given in a global coordinate system, into each
Koordinatensystem zu transformieren durch
Figure imgf000019_0004
Figure imgf000019_0005
wobei die Verschiebung und Rotation des Koordinatensystems
Figure imgf000019_0006
Figure imgf000019_0009
bezüglich des globalen Koordinatensystems zur Zeit t ist. Es wird angenommen, dass verfügbar sind. Beispielsweise ist jedes das lokale
Figure imgf000019_0007
Figure imgf000019_0008
Koordinatensystem eines Objekts und die Objektpositionen und Objektrotationen werden verfolgt.
Transform the coordinate system through
Figure imgf000019_0004
Figure imgf000019_0005
where the shift and rotation of the coordinate system
Figure imgf000019_0006
Figure imgf000019_0009
with respect to the global coordinate system at time t. It is believed that are available. For example, each is the local one
Figure imgf000019_0007
Figure imgf000019_0008
The coordinate system of an object and the object positions and object rotations are tracked.
Eine Möglichkeit für ein statistisches Modell 309 ist ein TP-GMM (Aufgaben- parametrisiertes Gaußsches Mischmodell). Es kann als Tupel
Figure imgf000019_0010
geschrieben werden, wobei K die Anzahl von Gaußschen Komponenten in dem Mischmodell bezeichnet, die A-priori-Wahrscheinlichkeit für die k-te Komponente
Figure imgf000019_0011
bezeichnet und
Figure imgf000020_0001
der Mittelwert bzw. die Kovarianz der k-ten Komponente in dem Koordinatensystem
Figure imgf000020_0002
sind.
One possibility for a statistical model 309 is a TP-GMM (task-parameterized Gaussian mixed model). It can be used as a tuple
Figure imgf000019_0010
where K denotes the number of Gaussian components in the mixed model, the a priori probability for the kth component
Figure imgf000019_0011
designated and
Figure imgf000020_0001
the mean value or the covariance of the k-th component in the coordinate system
Figure imgf000020_0002
are.
Ein solches Mischmodel kann (im Unterschied zu einfachen GMMs) nicht unabhängig für jedes Koordinatensystem gelernt werden. Der Grund ist, dass die Mischkoeffizienten
Figure imgf000020_0003
sich von allen Koordinatensystemen geteilt werden (d.h. für alle Koordinatensysteme gelten) und die k-te Komponente im Koordinatensystem muss der k-ten Komponente im
Figure imgf000020_0008
globalen Koordinatensystem entsprechen. Eine Möglichkeit, solche Modelle zu lernen (d.h. zu trainieren) ist der EM (Expectation Maximization)-Algorithmus.
Such a mixed model (in contrast to simple GMMs) cannot be learned independently for each coordinate system. The reason is that the mixing coefficient
Figure imgf000020_0003
are shared by all coordinate systems (ie apply to all coordinate systems) and the k-th component in the coordinate system must be the k-th component in the
Figure imgf000020_0008
correspond to the global coordinate system. One way of learning (ie training) such models is the EM (expectation maximization) algorithm.
Wenn ein TP-GMM trainiert ist, kann es während der Ausführung (in 203 im Ablauf von Figur 2) von der Steuereinrichtung 308 dazu verwendet werden, eine Trajektorie für eine gelernte Fähigkeit zu reproduzieren. Sind nämlich die beobachteten Koordinatensysteme
Figure imgf000020_0004
gegeben (die beispielsweise ein neues Szenario repräsentieren, indem sie für jedes Objekt Position und Orientierung durch Position und Orientierung des jeweiligen lokalen Koordinatensystems angeben), so kann die Steuereinrichtung 308 daraus ein einziges kombiniertes GMM mit den Parametern
Figure imgf000020_0005
erzeugen, indem sie die affin-transformierten Gaußschen Komponenten (der unterschiedlichen Koordinatensysteme) multipliziert. Das resultierte kombinierte GMM ist gegeben durch
Figure imgf000020_0006
wobei die Parameter jeder Gaußschen Komponente in jedem lokalen Koordinatensystem (für das neue Szenario) gegeben sind durch
Figure imgf000020_0007
Figure imgf000021_0001
When a TP-GMM has been trained, it can be used by the control device 308 during execution (in 203 in the sequence of FIG. 2) to reproduce a trajectory for a learned skill. Namely, are the observed coordinate systems
Figure imgf000020_0004
given (which represent, for example, a new scenario by specifying the position and orientation for each object through the position and orientation of the respective local coordinate system), the control device 308 can use this to create a single combined GMM with the parameters
Figure imgf000020_0005
by multiplying the affine-transformed Gaussian components (of the different coordinate systems). The resulting combined GMM is given by
Figure imgf000020_0006
where the parameters of each Gaussian component in each local coordinate system (for the new scenario) are given by
Figure imgf000020_0007
Figure imgf000021_0001
Mehr Details dazu findet man in dem eingangs zitierten Paper. Figur 4A bis 4E zeigen Darstellungen, die die Kombination von Gaußschen Komponenten in lokalen Koordinatensystemen zu einem kombinierten Gaußschen Mischmodell veranschaulichen. More details can be found in the paper cited at the beginning. FIGS. 4A to 4E show representations which illustrate the combination of Gaussian components in local coordinate systems to form a combined Gaussian mixed model.
Die Figur 4A entspricht einem ersten lokalen Koordinatensystem, beispielsweise dem lokalen Koordinatensystem an der Startposition 305 (welche in Figur 4A dem Ursprung entspricht). FIG. 4A corresponds to a first local coordinate system, for example the local coordinate system at the starting position 305 (which corresponds to the origin in FIG. 4A).
Die Figur 4B entspricht einem zweiten lokalen Koordinatensystem, beispielsweise dem lokalen Koordinatensystem an der Zielposition 306 (welche in Figur 4B dem Ursprung entspricht). FIG. 4B corresponds to a second local coordinate system, for example the local coordinate system at the target position 306 (which corresponds to the origin in FIG. 4B).
Anschaulich zeigt Figur 4A die Bewegung eines zu bewegenden Objekts 304 aus der Sicht der Startposition 305. Die Startposition ist (aus Sicht der Startposition) immer gleich, deshalb ist dort der Verlauf der Trajektorien gut festgelegt (d.h. die Streuung der Trajektorien ist dort gering). In anderen Worten ist sich dort das lokale Modell sehr sicher. Weiter weg von der Startposition wird sich das Modell unsicherer, weil es verschiedene Demonstrationen gesehen hat, bei der sich die Zielposition an verschiedenen Stellen befunden hat. Die Unsicherheit wird durch die größeren Ellipsen und das Auseinanderlaufen der Trajektorien veranschaulicht. Jede Ellipse veranschaulicht eine Gaußsche Komponente um den Mittelwert der Gaußschen Komponente und einer Größe und Form entsprechend ihrer Kovarianzmatrix. 4A clearly shows the movement of an object 304 to be moved from the point of view of the start position 305. The start position is always the same (from the point of view of the start position), so the course of the trajectories is well defined there (i.e. the scatter of the trajectories is small there). In other words, the local model is very confident there. Further away from the starting position, the model becomes less certain because it has seen various demonstrations in which the target position was in different places. The uncertainty is illustrated by the larger ellipses and the divergence of the trajectories. Each ellipse illustrates a Gaussian component around the mean of the Gaussian component and a size and shape corresponding to its covariance matrix.
An der Zielposition ist es analog, die Trajektorien streuen in größerer Entfernung von der Zielposition stärker (weil sich in verschiedenen Demonstrationen die Startposition relativ zur Zielposition an verschiedenen Stellen befunden hat). Näher an der Zielposition streuen die Trajektorien weniger (weil bei jeder Demonstration letztendlich das Objekt 304 an der Zielposition 305 angekommen ist). Für ein neues Szenario ist sich nun das Modell für die Startposition, dargestellt in Figur 4C, in der Nähe der Startposition auch sehr sicher, jedoch unsicher in größerem Abstand von der Startposition. At the target position it is analogous, the trajectories scatter more at a greater distance from the target position (because in different demonstrations the starting position was at different points relative to the target position). Closer to the target position, the trajectories scatter less (because in each demonstration the object 304 has finally arrived at the target position 305). For a new scenario, the model for the starting position, shown in FIG. 4C, is also very safe in the vicinity of the starting position, but unsafe at a greater distance from the starting position.
Analog ist sich das Modell für die Zielposition, dargestellt in Figur 4D, in der Nähe der Startposition sehr sicher jedoch unsicher in größerem Abstand. Similarly, the model for the target position, shown in FIG. 4D, is very safe in the vicinity of the starting position, but unsafe at a greater distance.
Figur 4E zeigt nun die Kombination der beiden lokalen Modelle zu einem kombinierten Modell gemäß (3) bis (6). FIG. 4E now shows the combination of the two local models to form a combined model according to (3) to (6).
Verglichen mit den beiden lokalen Modellen ist sich das kombinierte Modell in der Mitte, zwischen Ausgangs- und Zielposition viel sicherer. Die Steuerung 308 kann nun (in 203) anschaulich den Roboter 101 derart steuern, dass er die Ellipsen zwischen Startposition und Zielposition (z.B. durch ihre Mitten) abfährt, um die Tätigkeit im neuen Szenario zu bewältigen. Compared to the two local models, the combined model is much safer in the middle, between the starting and target positions. The controller 308 can now (in 203) clearly control the robot 101 in such a way that it traverses the ellipses between the starting position and the target position (e.g. through their centers) in order to cope with the activity in the new scenario.
Wie erwähnt wird gemäß verschiedenen Ausführungsformen ein TP-HSMM als statistisches Modell 309 verwendet. As mentioned, a TP-HSMM is used as statistical model 309 according to various embodiments.
Ein HSMM (Hidden semi-Markov-Model) erweitert einen einfachen HMM (Hidden Markov Modell) dahingehend, dass zeitliche Informationen in den zu Grunde liegenden stochastischen Prozess eingebettet werden. Das heißt, dass während bei einem HMM angenommen wird, dass der zu Grunde liegende statistische Prozess die Markov- Eigenschaft hat, d.h. die Wahrscheinlichkeit, in den nächsten Zustand überzugehen, nur vom aktuellen Zustand abhängt, bei einem HSMM der Prozess die Wahrscheinlichkeit, in den nächsten Zustand überzugehen, vom aktuellen Zustand und von der Verweildauer im aktuellen Zustand abhängt. HSMMs werden typischerweise insbesondere bei der Sprachsynthese angewendet. An HSMM (Hidden Semi-Markov Model) extends a simple HMM (Hidden Markov Model) in such a way that temporal information is embedded in the underlying stochastic process. This means that while in the case of an HMM it is assumed that the underlying statistical process has the Markov property, ie the probability of moving to the next state depends only on the current state, in the case of an HSMM the process the probability of entering the transition to the next state, depends on the current state and on the dwell time in the current state. HSMMs are typically used in particular in speech synthesis.
Ein Aufgaben-parametrisiertes HSMM (TP-HSMM) wird gemäß einer Ausführungsform repräsentiert durch
Figure imgf000023_0002
wobei
Figure imgf000023_0007
die Übergangswahrscheinlichkeit vom Zustand
Figure imgf000023_0003
in den Zustand
Figure imgf000023_0004
bezeichnet,
Figure imgf000023_0006
die Gaußschen Verteilungen für die Verweildauer im Zustand
Figure imgf000023_0005
bezeichnen (das hochgestellte D ist hierbei kein Index sondern soll nur den Zusammenhang mit der Verweildauer (engl duration) kennzeichnen) und
Figure imgf000023_0001
ein (zugehöriges oder assoziiertes) TP-GMM wie oben beschrieben ist.
A task-parameterized HSMM (TP-HSMM) is represented by according to one embodiment
Figure imgf000023_0002
in which
Figure imgf000023_0007
the transition probability from the state
Figure imgf000023_0003
in the state
Figure imgf000023_0004
designated,
Figure imgf000023_0006
the Gaussian distributions for the dwell time in the state
Figure imgf000023_0005
(the superscript D is not an index here, but is only intended to indicate the relationship with the length of stay) and
Figure imgf000023_0001
a (associated or associated) TP-GMM as described above.
Das TP-GMM beschreibt die Ausgabewahrscheinlichkeiten (oder Emissionswahrscheinlichkeiten d.h. Wahrscheinlichkeiten für die Beobachtungen) für jeden Zustand k= l, ... K. The TP-GMM describes the output probabilities (or emission probabilities, i.e. probabilities for the observations) for each state k = 1, ... K.
Die A-priori-Wahrscheinlichkeiten beschreiben bei einem HSMM jedoch nur die
Figure imgf000023_0008
Wahrscheinlichkeitsverteilung für die für die anfänglichen Komponenten bei t= 1. Die Wahrscheinlichkeiten zu späteren Zeiten werden durch das zu Grunde liegende Semi- Markov-Modell gegeben.
In the case of an HSMM, however, the a priori probabilities only describe the
Figure imgf000023_0008
Probability distribution for the for the initial components at t = 1. The probabilities at later times are given by the semi-Markov model on which they are based.
In diesem betrachteten TP -HSMM, entspricht jeder Zustand einer Gaußschen Komponente im zugehörigen TP-GMM. In this TP -HSMM under consideration, each state corresponds to a Gaussian component in the associated TP-GMM.
Es kann gewünscht sein, dass die Struktur des TP -HSMM linear ist, was bedeutet, dass die Folge von Zuständen deterministisch ist und nur die Verweildauer zufällig ist. Eine solche lineare Struktur kann zum Beschleunigen des Trainings vorgegeben werden indem
Figure imgf000023_0009
gesetzt werden mit und
Figure imgf000023_0010
Figure imgf000023_0011
It may be desirable that the structure of the TP -HSMM is linear, which means that the sequence of states is deterministic and only the dwell time is random. Such a linear structure can be given to accelerate the training by
Figure imgf000023_0009
are set with and
Figure imgf000023_0010
Figure imgf000023_0011
Das TP -HSMM wird (beispielsweise von der Steuereinrichtung 308) in 202 basierend auf den Demonstrationen
Figure imgf000024_0001
des Benutzers 301 trainiert, beispielsweise gemäß einer EM (Expectation Maximization)- Prozedur. Das Resultat des Trainings sind Werte für den Parametersatz
Figure imgf000024_0002
die das TP-HSMM charakterisieren.
The TP -HSMM is (for example by the controller 308) in 202 based on the demonstrations
Figure imgf000024_0001
of the user 301 is trained, for example according to an EM (expectation maximization) procedure. The results of the training are values for the parameter set
Figure imgf000024_0002
that characterize the TP-HSMM.
In 203 kann anschließend die Steuereinrichtung 308 den Roboter 101 basierend auf dem trainierten Modell 309 steuern, um eine Tätigkeit auszufiihren, beispielsweise für ein neues Szenario. Während der Ausführung verwendet die Steuereinrichtung das trainierte statistische Modell 309, um eine Referenztrajektorie für das neue Szenario zu ermitteln, und steuert den Roboter derart, dass er der Referenztrajektorie folgt. Der Begriff „Szenario“ bezieht sich hierbei auf eine spezielle Wahl der modellierten Aufgabenparameter (z.B. Startposition 305 und Zielposition 306). In 203 the control device 308 can then control the robot 101 based on the trained model 309 in order to carry out an activity, for example for a new scenario. During execution, the controller uses the trained statistical model 309 to determine a reference trajectory for the new scenario and controls the robot to follow the reference trajectory. The term "scenario" refers to a special choice of the modeled task parameters (e.g. starting position 305 and target position 306).
Für einen gewünschten Startzustand und einem gewünschten Zielzustand
Figure imgf000024_0003
zu
Figure imgf000024_0005
einem Zeitpunkt
Figure imgf000024_0007
kann die wahrscheinlichste Zustandsfolge
Figure imgf000024_0004
wobei mittels des Viterbi- Algorithmus für HSMMs ermittelt
Figure imgf000024_0006
werden. Diese Zustandsfolge ist die Folge von Zuständen, die von dem Roboter 101 bei der Reproduzierung der Tätigkeit durchlaufen werden soll.
For a desired starting state and a desired target state
Figure imgf000024_0003
to
Figure imgf000024_0005
a point in time
Figure imgf000024_0007
can be the most likely sequence of states
Figure imgf000024_0004
determined using the Viterbi algorithm for HSMMs
Figure imgf000024_0006
become. This sequence of states is the sequence of states which the robot 101 is to go through when reproducing the activity.
Ein solcher Zustand ist beispielsweise der in Figur 4E durch die (kleine) Ellipse dargestellte Zustand. Er entspricht einer Komponente des kombinierten TP-GMMs für das neue Szenario (siehe Beschreibung von Figur 4). Das TP -HSMMs enthält anschaulich noch die Information, wie die Zustände des TP-GMMs zeitlich durchlaufen werden sollen (gegeben durch die Wahrscheinlichkeitsverteilungen für die Verweildauer in jedem Zustand und die Übergangswahrscheinlichkeiten zwischen den Zuständen). Für jeden Zustand kt bestimmt die Steuereinrichtung 308 einen korrespondierendenSuch a state is, for example, the state represented by the (small) ellipse in FIG. 4E. It corresponds to a component of the combined TP-GMM for the new scenario (see description of FIG. 4). The TP -HSMMs clearly contains the information on how the states of the TP-GMMs are to be run through over time (given by the probability distributions for the length of stay in each state and the transition probabilities between the states). For each state k t , the control device 308 determines a corresponding one
Endeffektorzustand z.B. gemäß einer LQG (Linear Quadratic Gaussian)-Regelung. Als
Figure imgf000025_0002
End effector state, for example, according to an LQG (Linear Quadratic Gaussian) rule. As
Figure imgf000025_0002
Referenz kann sie dabei für jeden Zustand den Mittelwert der jeweiligen TP-GMM-
Figure imgf000025_0005
It can reference the mean value of the respective TP-GMM-
Figure imgf000025_0005
Komponente nehmen. Die Steuereinrichtung sorgt dafür, dass die Unterschiede zwischen aufeinanderfolgenden nicht zu groß sind (gemäß der gewählten Reglerparameter). Bei
Figure imgf000025_0003
der Ausführung versucht der Roboter dann zu folgen, ist nur eine Zwischengröße.
Figure imgf000025_0004
Figure imgf000025_0006
Take component. The control device ensures that the differences between successive ones are not too great (according to the selected controller parameters). At
Figure imgf000025_0003
the robot then tries to follow the execution, it is only an intermediate size.
Figure imgf000025_0004
Figure imgf000025_0006
Möglicherweise kann aufgrund des Unterschieds des menschlichen Bewegungsverhaltens und des Roboter- Bewegungsverhaltens der Roboter der Zustandsfolge
Figure imgf000025_0007
nicht genau folgen. Dies kann auch daran liegen, dass
Figure imgf000025_0008
eine synthetische Trajektorie ist, die aus einem trainierten Modell erhalten wurde. Beispielsweise kann eine LQG-Steuerung mit minimaler Intervention (minimal Intervention) von der Steuereinrichtung 308 verwendet werden, um eine solche Zustandsfolge von Gaußschen Komponenten zu erzeugen. Derartige Steuerungsverfahren haben typischerweise sowohl ein Optimierungsziel, das einen Positionsfehler vermeiden/bestrafen soll (hier die Distanz zwischen und dem
Figure imgf000025_0009
Possibly due to the difference in the human movement behavior and the robot movement behavior, the robot can follow the sequence of states
Figure imgf000025_0007
do not follow exactly. This can also be due to the fact that
Figure imgf000025_0008
is a synthetic trajectory obtained from a trained model. For example, minimal intervention LQG control may be used by controller 308 to generate such a sequence of states of Gaussian components. Such control methods typically have both an optimization goal that is to avoid / punish a position error (here the distance between and the
Figure imgf000025_0009
Mittelwert entsprechend als auch eine Beschränkung auf die Möglichkeiten des
Figure imgf000025_0011
Figure imgf000025_0010
physikalischen Systems (wie aufeinanderfolgende gewählt werden können).
Figure imgf000025_0012
Corresponding to the mean as well as a restriction to the possibilities of the
Figure imgf000025_0011
Figure imgf000025_0010
physical system (how consecutive can be chosen).
Figure imgf000025_0012
Insbesondere letzteres ist hier wichtig, um den Unterschied zwischen Vorführinstanz und Roboter zu berücksichtigen. The latter in particular is important here in order to take into account the difference between demonstration instance and robot.
Im Allgemeinen kann
Figure imgf000025_0013
als die gewünschte Zustandsfolge angesehen werden und die Steuereinrichtung 308 steuert den Roboter 101, damit er dieser Referenz so gut wie physikalisch möglich folgt. Bei Manipulationsaufgaben für einen Roboter tritt oft ein nicht-euklidischer Zustandsraum auf. Beispielsweise werden oft Rotationsmatrizen
Figure imgf000025_0001
oder Einheits-
Generally can
Figure imgf000025_0013
can be viewed as the desired sequence of states and the control device 308 controls the robot 101 so that it follows this reference as well as physically possible. A non-Euclidean state space often occurs in manipulation tasks for a robot. For example, rotary dies are often used
Figure imgf000025_0001
or unit
Quaterionen verwendet, um die Orientierung von Objekten oder des
Figure imgf000025_0014
Roboter-Endeffektors zu beschreiben. Eine direkte Herangehensweise, die die Lösung einer euklidischen Berechnung zurück auf eine Mannigfaltigkeit projiziert, leidet typischerweise an geringer Genauigkeit und kann aufgrund von Vorzeichenwechseln manchmal zu gravierenden Konsequenzen führen. Deshalb wird gemäß verschiedenen Ausführungsformen der beschriebene TP-HSMM-Formalismus an Riemannsche Mannigfaltigkeiten angepasst.
Quaterions used to determine the orientation of objects or des
Figure imgf000025_0014
To describe robotic end effector. A straightforward approach that projects the solution of a Euclidean computation back onto a manifold suffers typically of poor accuracy and can sometimes lead to serious consequences due to a change in sign. Therefore, according to various embodiments, the described TP-HSMM formalism is adapted to Riemannian manifolds.
Zusammenfassend wird gemäß verschiedenen Ausführungsbeispielen ein Verfahren zum Steuern einer Robotervorrichtung bereitgestellt, wie es in Figur 5 dargestellt ist. In summary, according to various exemplary embodiments, a method for controlling a robot device is provided, as is shown in FIG.
Figur 5 zeigt ein Ablaufdiagramm 500, das ein Verfahren zum Steuern einer Robotervorrichtung gemäß einer Ausführungsform veranschaulicht. FIG. 5 shows a flow chart 500 which illustrates a method for controlling a robot device according to an embodiment.
In 501 wird eine Tätigkeit durch eine Vorführinstanz durchgeführt. In 501, an activity is performed by a demonstration entity.
In 502 wird einer Abfolge von Stellungen eines Teils der Vorführinstanz, mittels dem die Vorführinstanz die Tätigkeit durchführt, aufgezeichnet. In 502 a sequence of positions of a part of the presentation entity by means of which the presentation entity performs the activity is recorded.
In 503 werden Trainingsdaten basierend auf der aufgezeichneten Abfolge von Stellungen des Teils der Vorführinstanz erzeugt. In 503, training data is generated based on the recorded sequence of poses of the part of the demonstration instance.
In 504 wird ein Roboter-Steuerungsmodell durch Verwenden der Abfolge von Stellungen des Teils der Vorführinstanz als Trainingsabfolge von Stellungen für einen Teil des Roboters trainiert. In 504, a robot control model is trained by using the sequence of poses of the part of the demonstrator as the training sequence of poses for a part of the robot.
In 505 wird die Robotervorrichtung basierend auf dem trainierten Roboter- Steuerungsmodell gesteuert. In 505, the robot device is controlled based on the trained robot control model.
In anderen Worten wird gemäß verschiedenen Ausführungsformen eine Tätigkeit (entsprechend einer Fertigkeit) von einer Vorführinstanz (z.B. einem menschlichen Benutzer) ein oder mehrmals demonstriert. Dabei ist die Vorführinstanz nicht die Robotervorrichtung selbst, sondern ist beispielsweise unabhängig von der Robotervorrichtung, also z.B. eine von dem Roboter gesonderte Vorführinstanz. Die Demonstrationen werden aufgezeichnet und als Grundlage für das Training eines Modells zum Steuern der Robotervorrichtung verwendet. Dies bedeutet, dass ein Modell trainiert wird, dass die Robotervorrichtung in die Lage versetzt, die Tätigkeit (ggf. auch in anderen Szenarien) selbst durchzuführen (d.h. die Fertigkeit zu erlangen), d.h. in anderen Worten die Tätigkeit (ggf. auch in anderen Szenarien) zu reproduzieren. Der Teil der Vorführinstanz (z.B. eine Hand) wird dabei als Vorbild für den Teil der Robotervorrichtung (z.B. einem Endeffektor) verwendet. In anderen Worten wird das Modell derart trainiert, dass der Teil der Robotervorrichtung das demonstrierte Verhalten (z.B. die demonstrierten Bewegungsabläufe) des Teils der Vorführinstanz nachahmt bzw. kopiert (ggf. angepasst an ein neues Szenario). In other words, according to various embodiments, an activity (corresponding to a skill) is demonstrated one or more times by a demonstration entity (eg a human user). The demonstration instance is not the robot device itself, but is, for example, independent of the robot device, that is to say, for example, a demonstration instance separate from the robot. The demonstrations are recorded and used as the basis for training a model to control the robotic device. This means that a model is training is that the robot device is enabled to carry out the activity (possibly also in other scenarios) itself (ie to acquire the skill), ie to reproduce the activity (possibly also in other scenarios) in other words. The part of the demonstration instance (eg a hand) is used as a model for the part of the robot device (eg an end effector). In other words, the model is trained in such a way that the part of the robot device imitates or copies (if necessary, adapted to a new scenario) the demonstrated behavior (for example the demonstrated movement sequences) of the part of the demonstration instance.
Die Abfolge von Stellungen ist beispielsweise eine Abfolge (oder Folge) von Positionen und/oder Orientierungen und/oder weiteren Zuständen (z.B. „Hand geöffnet“ oder „Hand geschlossen“). Die Abfolge von Stellungen kann als Bewegungsablauf angesehen werden. Das Aufzeichnen der Abfolge von Stellungen kann als Aufzeichnen von Informationen, die die Abfolge von Stellungen repräsentieren (z.B. eine Repräsentation jeder Stellung, z.B. in Form eines Vektors oder einer Matrix, enthalten), verstanden werden. The sequence of positions is, for example, a sequence (or sequence) of positions and / or orientations and / or other states (e.g. "hand open" or "hand closed"). The sequence of positions can be viewed as a sequence of movements. The recording of the sequence of poses can be understood as recording information representing the sequence of poses (e.g. containing a representation of each position, e.g. in the form of a vector or a matrix).
Die Tätigkeit (z.B. ein Objekt aufnehmen und platzieren, ein Objekt (z.B. einen Hebel) drehen, ein Objekt öffnen etc.) kann auf verschiedene Arten durchgeführt werden, die insbesondere von dem jeweiligen Szenario, in dem die Tätigkeit durchgeführt wird, abhängen, z.B. Startposition und Startorientierung eines Objekts oder des Roboter- Endeffektors und gewünschte Endposition und gewünschte Endorientierung eines Objekts. The activity (e.g. picking up and placing an object, turning an object (e.g. a lever), opening an object, etc.) can be carried out in various ways, which depend in particular on the particular scenario in which the activity is carried out, e.g. starting position and start orientation of an object or the robot end effector and desired end position and desired end orientation of an object.
Die Abfolge von Stellungen des Teils der Vorführinstanz kann basierend auf Sensorsignalen von verschiedenen Sensoren aufgezeichnet werden, beispielsweise Videosensoren, Radarsensoren, LiDAR (Light Detection and Ranging)-Sensoren, Ultraschall sensoren und Bewegungssensoren. Beispielsweise werden ein oder mehrere Sensoren eingesetzt, die eine genaue Verfolgung des Teils der Vorführinstanz (z.B. einer menschlichen Hand) ermöglichen. Beispielsweise können Techniken aus dem maschinellen Sehen eingesetzt werden, die es ermöglichen eine Stellung aus RGB(Rot- Grün-Blau)-Daten oder RGBD (Rot-Grün-Blau-Tiefe)-Daten zu ermitteln. Alternativ (oder zusätzlich) kann ein spezifisches Sensorsystem wie ein Bewegungserfassungssystem (Motion-Capture-System) oder ein Handschuh zur Handverfolgung eingesetzt werden, um eine genaue Verfolgung hinsichtlich Position, Orientierung, Stellung und/oder Zustand des Teils der Vorführinstanz (z.B. einer menschlichen Hand) oder eines Objekts von Interesse (z.B. eines bei der Tätigkeit manipulierten Objekts) zu ermitteln bzw. verfolgen. The sequence of positions of the part of the demonstration instance can be recorded based on sensor signals from various sensors, for example video sensors, radar sensors, LiDAR (light detection and ranging) sensors, ultrasonic sensors and motion sensors. For example, one or more sensors are used which enable the part of the presentation instance (for example a human hand) to be tracked precisely. For example, machine vision techniques can be used that make it possible to determine a position from RGB (red-green-blue) data or RGBD (red-green-blue depth) data. Alternatively (or in addition), a specific sensor system such as a motion capture system or a glove can be used for hand tracking in order to ensure precise tracking with regard to position, orientation, posture and / or status of the To determine or track part of the demonstration instance (eg a human hand) or an object of interest (eg an object manipulated during the activity).
Somit werden gemäß verschiedenen Ausführungsbeispielen ein oder mehrere Sensoren verwendet, um letztendlich ein Steuersignal zum Steuern eines physikalischen Systems zu erzeugen, wie z.B. einer computergesteuerten Maschine, einer Fertigungsmaschine, eines (Elektro-)Werkzeugs, eines Haushaltsgeräts, eines persönlichen Assistenten, einer Zugangskontrollvorrichtung oder einer ähnlichen Vorrichtung, hierin als „Robotervorrichtung“ bezeichnet, die derart gesteuert werden kann, dass sie in der Lage ist, Bewegungen ähnlich der Vorführinstanz, z.B. einer menschlichen Hand, zu erreichen. Thus, according to various exemplary embodiments, one or more sensors are used to ultimately generate a control signal for controlling a physical system, such as a computer-controlled machine, a manufacturing machine, an (electrical) tool, a household appliance, a personal assistant, an access control device or a similar device, referred to herein as a “robot device”, which can be controlled in such a way that it is able to achieve movements similar to the demonstration entity, for example a human hand.
Die Trainingsdaten für das Roboter-Steuerungsmodell werden aus dem von der Vorführinstanz demonstrierten (vorgeführten) Bewegungsablauf (z.B. einer vorgeführten Trajektorie) und gegebenenfalls Trajektorien von ein oder mehreren Objekten, die bei der Tätigkeit manipuliert werden, erzeugt. Dies ermöglicht die Durchführung eines entsprechenden Trainingsverfahrens für das Roboter-Steuerungsmodell. Eine Trajektorie kann dabei derart verstanden werden, dass sie (mindestens) Informationen über Position oder Orientierung oder beides aufweist. The training data for the robot control model are generated from the movement sequence (e.g. a demonstrated trajectory) demonstrated by the demonstration instance and, if necessary, trajectories of one or more objects that are manipulated during the activity. This enables a corresponding training method to be carried out for the robot control model. A trajectory can be understood in such a way that it has (at least) information about position or orientation or both.
Die Berechnung des Steuersignals basiert letztendlich auf einem Satz von aufgezeichneten Demonstrationen, beispielsweise auf Informationen über die bei den Demonstrationen verfolgten Hände und Objekt- Stellungen. Eine daraus resultierende Steuer-Trajektorie für die Robotervorrichtung kann dann der durch die Vorführinstanz demonstrierten Trajektorie, z.B. einer menschlichen Hand, folgen, z.B. so dass sie ihr stark ähnelt. Beispielsweise kann die Steuer-Trajektorie derart ermittelt (oder ausgewählt) werden, dass die Wahrscheinlichkeit, dass die Vorführinstanz als nächstes die ermittelte Steuer- Trajektorie vorführt, maximiert wird. The calculation of the control signal is ultimately based on a set of recorded demonstrations, for example on information about the hands and object positions followed during the demonstrations. A resulting control trajectory for the robot device can then follow the trajectory demonstrated by the demonstration instance, e.g. a human hand, e.g. so that it is very similar to it. For example, the control trajectory can be ascertained (or selected) in such a way that the probability that the demonstration instance will next show the ascertained control trajectory is maximized.
Die mathematische Grundlage verschiedener Ausführungsformen kann darin gesehen werden, dass die Bewegung eines verfolgten Teils der Vorführinstanz (z.B. die Stellung einer Hand) in eine für den Roboter mögliche Trajektorie umgewandelt wird (z.B. des Roboter-Endeffektors). Eine Schwierigkeit besteht dabei typischerweise darin, dass beispielsweise das Bewegungsverhalten einer menschlichen Hand anders ist als das eines Roboter-Endeffektors. Ein TP-HSMM erlaubt es jedoch, beide Alternativen als Aufgaben- Parameter beim Training zu berücksichtigen, um Trajektorien aus der TP-HSMM- Repräsentation zu erzeugen. Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden. The mathematical basis of various embodiments can be seen in the fact that the movement of a tracked part of the demonstration instance (eg the position of a hand) is converted into a trajectory possible for the robot (eg the robot end effector). One difficulty here is typically that, for example, the movement behavior of a human hand is different from that of one Robotic end effector. However, a TP-HSMM allows both alternatives to be taken into account as task parameters during training in order to generate trajectories from the TP-HSMM representation. Although the invention has been shown and described primarily with reference to particular embodiments, it should be understood by those skilled in the art that numerous changes in design and details can be made therein without departing from the spirit and scope of the invention, as defined by the following claims. The scope of the invention is, therefore, determined by the appended claims, and it is intended that all changes which come within the literal meaning or range of equivalency of the claims be embraced.

Claims

Patentansprüche Claims
1. Verfahren zum Steuern einer Robotervorrichtung, aufweisend: 1. A method of controlling a robotic device, comprising:
Durchführen einer Tätigkeit durch eine Vorführinstanz; Carrying out an activity by a demonstration entity;
Aufzeichnen einer Abfolge von Stellungen eines Teils der Vorfuhrinstanz, mittels dem die Vorfuhrinstanz die Tätigkeit durchfuhrt; Recording a sequence of positions of a part of the display authority by means of which the display authority performs the activity;
Erzeugen von Trainingsdaten basierend auf der aufgezeichneten Abfolge von Stellungen des Teils der Vorfuhrinstanz; Generating training data based on the recorded sequence of poses of the portion of the presentation instance;
Trainieren eines Roboter-Steuerungsmodells durch Verwenden der Abfolge von Stellungen des Teils der Vorfuhrinstanz als Trainingsabfolge von Stellungen für einen Teil des Roboters; und Training a robot control model by using the sequence of poses of the part of the presenter as a training sequence of poses for a part of the robot; and
Steuern der Robotervorrichtung basierend auf dem trainierten Roboter- Steuerungsmodell, wobei das Aufzeichnen der Abfolge von Stellungen das Aufzeichnen von Sensordaten durch ein oder mehrere Sensoren und das Ermitteln der Abfolge von Stellungen aus den Sensordaten aufweist. und wobei das Aufzeichnen der Abfolge von Stellungen das visuelle Aufzeichnen der Durchführung der Tätigkeit durch die Vorführinstanz aufweist. Controlling the robot device based on the trained robot control model, the recording of the sequence of positions comprising recording sensor data by one or more sensors and determining the sequence of positions from the sensor data. and wherein recording the sequence of poses comprises visually recording the performance of the activity by the presenter.
2. Verfahren gemäß Anspruch 1, wobei das visuelle Aufzeichnen das Aufnehmen mindestens einer Folge von Kamerabildern aufweist. 2. The method of claim 1, wherein the visual recording comprises capturing at least one sequence of camera images.
3. Verfahren gemäß Anspruch 2, wobei das Ermitteln der Stellungen basierend auf einer Bildanalyse der Folge von Kamerabildern erfolgt, bei der die Position und/oder Orientierung des Teils der Vorführinstanz in der mindestens einen Folge von Kamerabildern verfolgt wird. 3. The method according to claim 2, wherein the positions are determined based on an image analysis of the sequence of camera images, in which the position and / or orientation of the part of the presentation instance is tracked in the at least one sequence of camera images.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, wobei das Steuern der Robotervorrichtung basierend auf dem trainierten Roboter-Steuerungsmodell das Erzeugen einer Referenztrajektorie aus dem trainierten Roboter-Steuerungsmodell und das Verfolgen der Referenztrajektorie durch die Robotervorrichtung mittels eines Linear-Quadratisch-Gaußsch(LQG)-Reglers aufweist. 4. The method according to any one of claims 1 to 3, wherein the controlling of the robot device based on the trained robot control model, the generation of a reference trajectory from the trained robot control model and the tracking of the reference trajectory by the robot device by means of a linear square Gaussian (LQG ) Controller.
5. Verfahren gemäß einem der Ansprüche 1 bis 4, aufweisend das Ermitteln einer Abfolge von Stellungen von ein oder mehreren weiteren Elementen, die an der Tätigkeit beteiligt sind, wobei die Trainingsdaten basierend auf der Abfolge von Stellungen der ein oder mehreren weiteren Elemente erzeugt werden. 5. The method according to any one of claims 1 to 4, comprising determining a sequence of positions of one or more further elements that are involved in the activity, the training data being generated based on the sequence of positions of the one or more further elements.
6. Verfahren gemäß Anspruch 5, wobei eine Abfolge von Stellungen eines Objekts, das bei der Ausführung der Tätigkeit manipuliert wird, ermittelt wird und wobei die Trainingsdaten basierend auf der Abfolge von Stellungen des Objekts erzeugt werden. 6. The method according to claim 5, wherein a sequence of postures of an object that is manipulated when performing the activity is determined and wherein the training data are generated based on the sequence of postures of the object.
7. Verfahren gemäß einem der Ansprüche 1 bis 6, aufweisend mehrmaliges Durchführen der Tätigkeit durch die Vorführinstanz; 7. The method according to any one of claims 1 to 6, comprising multiple execution of the activity by the demonstration instance;
Aufzeichnen, für jede Durchführung der Tätigkeit durch die Vorführinstanz, einer Abfolge von Stellungen des Teils der Vorführinstanz; Recording, for each performance of the activity by the demonstration authority, a sequence of positions of the part of the demonstration authority;
Erzeugen von Trainingsdaten basierend auf den aufgezeichneten Abfolgen von Stellungen des Teils der Vorführinstanz und Trainieren des Roboter- Steuerungsmodells durch Verwenden der Abfolgen von Stellungen des Teils der Vorführinstanz als Trainingsabfolgen von Stellungen für den Teil des Roboters. Generating training data based on the recorded sequences of poses of the part of the demonstration entity and training the robot control model by using the sequences of poses of the part of the demonstration entity as training sequences of poses for the part of the robot.
8 Verfahren gemäß einem der Ansprüche 1 bis 7, wobei das Roboter- Steuerungsmodell ein statistisches Modell aufweist. 8. The method according to any one of claims 1 to 7, wherein the robot control model comprises a statistical model.
9. Verfahren gemäß Anspruch 8, wobei eine Abfolge von Stellungen mindestens eines Objekts, das bei der Ausführung der Tätigkeit manipuliert wird, ermittelt wird und wobei das statistische Modell mittels der ermittelten Stellungen parametrisiert ist. 9. The method according to claim 8, wherein a sequence of positions of at least one object that is manipulated during the execution of the activity is determined and wherein the statistical model is parameterized by means of the determined positions.
10. Verfahren gemäß einem der Ansprüche 1 bis 9, wobei das statistische Modell ein Aufgaben-parametrisiertes Gaußsches Mischmodell aufweist. 10. The method according to any one of claims 1 to 9, wherein the statistical model has a task-parameterized Gaussian mixed model.
11. Verfahren gemäß einem der Ansprüche 1 bis 10, wobei das statistische Modell ein Aufgaben-parametrisiertes Hidden-Semi-Markov-Modell aufweist. 11. The method according to any one of claims 1 to 10, wherein the statistical model has a task-parameterized hidden semi-Markov model.
12. Verfahren gemäß einem der Ansprüche 1 bis 11, wobei beim Durchführen der Tätigkeit kein räumlicher Kontakt zwischen der Vorführinstanz und der Robotervorrichtung besteht. 12. The method according to any one of claims 1 to 11, wherein there is no spatial contact between the demonstration entity and the robot device when performing the activity.
13. Verfahren gemäß einem der Ansprüche 1 bis 12, wobei sich die Kinematik der13. The method according to any one of claims 1 to 12, wherein the kinematics of the
Vorführinstanz und der Robotervorrichtung unterscheiden. Differentiate the demonstration entity and the robot device.
14. Robotersteuervorrichtung, eingerichtet ein Verfahren gemäß einem der Ansprüche 1 bis 13 durchzuführen. 14. Robot control device set up to carry out a method according to one of claims 1 to 13.
15. Computerprogramm, aufweisend Programminstruktionen, die, wenn sie von ein oder mehreren Prozessoren ausgeführt werden, die ein oder mehreren Prozessoren dazu bringen, ein Verfahren gemäß einem der Ansprüche 1 bis 14 durchzuführen. 15. Computer program, comprising program instructions which, when executed by one or more processors, cause the one or more processors to carry out a method according to one of claims 1 to 14.
16. Computerlesbares Speichermedium, auf dem Programminstruktionen gespeichert sind, die, wenn sie von ein oder mehreren Prozessoren ausgeführt werden, die ein oder mehreren Prozessoren dazu bringen, ein Verfahren gemäß einem der Ansprüche 1 bis 13 durchzuführen. 16. Computer-readable storage medium on which program instructions are stored which, when executed by one or more processors, cause one or more processors to carry out a method according to any one of claims 1 to 13.
PCT/EP2020/072410 2019-10-07 2020-08-10 Device and method for controlling a robot device WO2021069129A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE102019215349.6 2019-10-07
DE102019215349 2019-10-07
DE102019216229.0 2019-10-22
DE102019216229.0A DE102019216229B4 (en) 2019-10-07 2019-10-22 Apparatus and method for controlling a robotic device

Publications (1)

Publication Number Publication Date
WO2021069129A1 true WO2021069129A1 (en) 2021-04-15

Family

ID=74875885

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/072410 WO2021069129A1 (en) 2019-10-07 2020-08-10 Device and method for controlling a robot device

Country Status (2)

Country Link
DE (1) DE102019216229B4 (en)
WO (1) WO2021069129A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114055463A (en) * 2021-09-26 2022-02-18 曲阜师范大学 Fuzzy sliding mode control method of networked mechanical arm system

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020208169A1 (en) 2020-06-30 2021-12-30 Robert Bosch Gesellschaft mit beschränkter Haftung Method and device for operating a machine
DE102020212658A1 (en) 2020-10-07 2022-04-07 Robert Bosch Gesellschaft mit beschränkter Haftung Apparatus and method for controlling a robotic device
DE102020214231A1 (en) 2020-11-12 2022-05-12 Robert Bosch Gesellschaft mit beschränkter Haftung METHOD OF CONTROLLING A ROBOT DEVICE AND ROBOT CONTROLLER
DE102021204697B4 (en) 2021-05-10 2023-06-01 Robert Bosch Gesellschaft mit beschränkter Haftung Method of controlling a robotic device
DE102021204961B4 (en) 2021-05-17 2023-06-07 Robert Bosch Gesellschaft mit beschränkter Haftung Method of controlling a robotic device
DE102021211185A1 (en) 2021-10-05 2023-04-06 Robert Bosch Gesellschaft mit beschränkter Haftung Device and method for controlling a robot
DE102022201116A1 (en) 2022-02-02 2023-08-03 Robert Bosch Gesellschaft mit beschränkter Haftung Method of controlling a robotic device
DE102022206381A1 (en) 2022-06-24 2024-01-04 Robert Bosch Gesellschaft mit beschränkter Haftung Method for controlling a robotic device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040036437A1 (en) * 2001-04-03 2004-02-26 Masato Ito Legged mobile robot and its motion teaching method, and storage medium
US20160243704A1 (en) * 2013-10-25 2016-08-25 Aleksandar Vakanski Image-based trajectory robot programming planning approach
JP2019107704A (en) * 2017-12-15 2019-07-04 川崎重工業株式会社 Robot system and robot control method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997010080A1 (en) * 1995-09-14 1997-03-20 Kabushiki Kaisha Yaskawa Denki Teaching unit for robots
JP3783253B2 (en) * 1995-09-20 2006-06-07 株式会社安川電機 Tuning control method for multiple robots
JP2007523757A (en) * 2003-06-20 2007-08-23 ファナック ロボティクス アメリカ,インコーポレイティド Tracking and mirroring of multiple robot arms
DE102010029745A1 (en) * 2010-06-07 2011-12-08 Kuka Laboratories Gmbh Workpiece handling system and method for manipulating workpieces by means of cooperating manipulators
DE102013110847B3 (en) * 2013-10-01 2015-01-22 gomtec GmbH Control device and method for controlling a robot system by means of gesture control
US9403273B2 (en) * 2014-05-23 2016-08-02 GM Global Technology Operations LLC Rapid robotic imitation learning of force-torque tasks
DE102016221193B3 (en) * 2016-10-27 2018-01-04 Kuka Roboter Gmbh A method of controlling a manipulator based on hand recognition
DE102017007908A1 (en) * 2017-08-21 2019-02-21 Hochschule Bochum Method for controlling the movement of a mobile robot
DE102018201589A1 (en) * 2018-02-01 2019-08-01 KORIS Vision & Force GmbH Method for programming the control of an industrial robot, method for operating an industrial robot, programming device and industrial robot system with such a programming device
JP6781183B2 (en) * 2018-03-26 2020-11-04 ファナック株式会社 Control device and machine learning device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040036437A1 (en) * 2001-04-03 2004-02-26 Masato Ito Legged mobile robot and its motion teaching method, and storage medium
US20160243704A1 (en) * 2013-10-25 2016-08-25 Aleksandar Vakanski Image-based trajectory robot programming planning approach
JP2019107704A (en) * 2017-12-15 2019-07-04 川崎重工業株式会社 Robot system and robot control method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GUPTA ABHISHEK ET AL: "Learning dexterous manipulation for a soft robotic hand from human demonstrations", 2016 IEEE/RSJ INTERNATIONAL CONFERENCE ON INTELLIGENT ROBOTS AND SYSTEMS (IROS), IEEE, 9 October 2016 (2016-10-09), pages 3786 - 3793, XP033011907, DOI: 10.1109/IROS.2016.7759557 *
N. P. PAPANIKOLOPOULOS ET AL: "Real-Time LQG Robotic Visual Tracking", EUROPEAN ROBOTICS AND AND INTELLIGENT SYSTEMS CONFERENCE EURISCON 91, 23 June 1991 (1991-06-23), XP055746117, Retrieved from the Internet <URL:https://www.researchgate.net/publication/240207883_Real-Time_LQG_Robotic_Visual_Tracking> [retrieved on 20201102], DOI: 10.1184/r1/6625517 *
S. CALINON: "A Tutorial on Task-Parameterized Movement Learning and Retrieval", INTELLIGENT SERVICE ROBOTICS, vol. 9, no. 1, 2016, pages 1 - 29, XP035938883, DOI: 10.1007/s11370-015-0187-9

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114055463A (en) * 2021-09-26 2022-02-18 曲阜师范大学 Fuzzy sliding mode control method of networked mechanical arm system
CN114055463B (en) * 2021-09-26 2023-04-18 曲阜师范大学 Fuzzy sliding mode control method of networked mechanical arm system

Also Published As

Publication number Publication date
DE102019216229B4 (en) 2022-11-10
DE102019216229A1 (en) 2021-04-08

Similar Documents

Publication Publication Date Title
DE102019216229B4 (en) Apparatus and method for controlling a robotic device
DE102013203381B4 (en) METHOD AND SYSTEM FOR TRAINING AN ROBOT USING A RESPONSIBLE DEMONSTRATION SUPPORTED BY PEOPLE
DE102014108287B4 (en) Quick learning by imitating power torque tasks by robots
DE102010045529B4 (en) Interactive robot control system and method of use
DE60216411T2 (en) ROBOT DEVICE, FACE DETECTION METHOD AND FACIAL DETECTION DEVICE
Rai et al. Learning feedback terms for reactive planning and control
DE102021204961B4 (en) Method of controlling a robotic device
DE102020214633A1 (en) Apparatus and method for controlling a robotic device
DE102020209685B4 (en) METHODS OF CONTROLLING A ROBOT DEVICE AND ROBOT DEVICE CONTROL
DE102020212658A1 (en) Apparatus and method for controlling a robotic device
DE102020207085A1 (en) METHOD OF CONTROLLING A ROBOT AND ROBOT CONTROL UNIT
DE102020214231A1 (en) METHOD OF CONTROLLING A ROBOT DEVICE AND ROBOT CONTROLLER
DE102012213188B4 (en) A method and system for controlling an execution sequence of a skilled robot using a condition classification
DE102021204697B4 (en) Method of controlling a robotic device
Hersch et al. Learning dynamical system modulation for constrained reaching tasks
DE102020200165B4 (en) Robot controller and method for controlling a robot
DE102022201116A1 (en) Method of controlling a robotic device
Mel Vision-based robot motion planning
DE102020214177A1 (en) Apparatus and method for training a control strategy using reinforcement learning
DE102019105820A1 (en) Process, system and non-volatile storage medium
Steil et al. Learning issues in a multi-modal robot-instruction scenario
DE102022207847A1 (en) Method for controlling a robot for manipulating, in particular picking up, an object
DE102022206273A1 (en) Method for training a machine learning model to implement a control rule
DE102021212494A1 (en) Apparatus and method for controlling a robotic device
DE102022208082B3 (en) Method for controlling a technical system

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: 20754248

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20754248

Country of ref document: EP

Kind code of ref document: A1