SYSTEM AND METHOD FOR CONTROLLING ACTUATORS OF AN ARTICULATED ROBOT

20200086480 · 2020-03-19

    Inventors

    Cpc classification

    International classification

    Abstract

    The invention relates to a system for controlling actuators of an articulated robot and for enabling the robot executing a given task, including a first unit providing a specification of robot skills s selectable from a skill space depending on the task, a second unit, wherein the second unit is connected to the first unit and further to a learning unit and to an adaptive controller, wherein the adaptive controller receives skill commands .sub.cmd, wherein the skill commands .sub.cmd include the skill parameters P.sub.l, wherein based on the skill commands .sub.cmd the controller controls the actuators of the robot, wherein the actual status of the robot is sensed by respective sensors and/or estimated by respective estimators and fed back to the controller and to the second unit, wherein based on the actual status, the second unit determines the performance Q(t) of the skill carried out by the robot, and wherein the learning unit receives P.sub.D, and Q(t) from the second unit, determines updated skill parameters P.sub.l(t) and provides P.sub.l(t) to the second unit to replace hitherto existing skill parameters P.sub.l.

    Claims

    1. A system to control actuators of an articulated robot and enabling the robot executing a given task, the system comprising: a first unit to provide a specification of robot skills s selectable from a skill space depending on the task, with a robot skill s being defined as a tuple (S, O, C.sub.pre, C.sub.err, C.sub.suc, R, .sub.cmd, X, P, Q) with S: a Cartesian product of I subspaces .sub.i: S=.sub.i=1.sub.i=2 . . . .sub.i=I with i={1, 2, . . . , I} and I2, O: a set of physical objects, C.sub.pre: a precondition, C.sub.err: an error condition, C.sub.suc: a success condition, R: nominal result of ideal skill execution, .sub.cmd: skill commands, X: physical coordinates, P: skill parameters, with P consisting of three subsets P.sub.t, P.sub.l, P.sub.D, with P.sub.t being skill parameters resulting from a priori knowledge of the task, P.sub.l being skill parameters not known initially and need to be learned and/or estimated during execution of the task, and P.sub.D being constraints of the skill parameter P.sub.l, Q: a performance metric, wherein Q(t) denotes actual performance of the skill carried out by the robot; and a second unit connected to the first unit, and further connected to a learning unit and to an adaptive controller, wherein the adaptive controller receives the skill commands .sub.cmd, wherein the skill commands .sub.cmd comprise the skill parameters P.sub.l, wherein based on the skill commands .sub.cmd the controller controls the actuators of the robot, wherein actual status of the robot is sensed by respective sensors and/or estimated by respective estimators and fed back to the controller and to the second unit, wherein based on the actual status, the second unit determines the performance value Q(t) of the skill carried out by the robot, and wherein the learning unit receives P.sub.D, and Q(t) from the second unit, determines updated skill parameters P.sub.l(t) and provides P.sub.l(t) to the second unit to replace hitherto existing skill parameters P.sub.l.

    2. The system according to claim 1, wherein the adaptive controller adapts feed forward wrench and stiffness via F.sub.ff=F.sub.ff(t)F.sub.ff(tT).

    3. The system according to claim 1, wherein the learning unit carries out a Bayesian and/or a HiREPS optimization or learning.

    4. The system according to claim 1, wherein the system comprises a data interface with a data network, and wherein the system is designed and set up to download system-programs for setting up and controlling the system from the data network.

    5. The system according to claim 4, wherein the system is designed and set up to download parameters for the system-programs from the data network.

    6. The system according to claim 1, wherein the system is designed and set up to enter parameters for the system-programs via a local input-interface and/or via a teach-in-process, with the robot being manually guided.

    7. The system according to claim 4, wherein the system is designed and set up such that downloading system-programs and/or respective parameters from the data network is controlled by a remote station, and wherein the remote station being part of the data network.

    8. The system according to claim 4, wherein the system is designed and set up such that system-programs and/or respective parameters locally available at the system are sent to one or more participants of the data network based on a respective request received from the data network.

    9. The system according to claim 4, wherein the system is designed and set up such that system-programs with respective parameters available locally at the system can be started from a remote station, and wherein the remote station is part of the data network.

    10. The system according to claim 6, wherein the system is designed and set up such that the remote station and/or the local input-interface comprises a human-machine-interface HMI designed and setup for entry of system-programs and respective parameters and/or for selecting system-programs and respective parameters from a multitude system-programs and respective parameters.

    11. The system according to claim 10, wherein the human-machine-interface HMI is designed and setup such that entries are possible via drag-and-drop-entry on a touchscreen, a guided dialogue, a keyboard, a computer-mouse, a haptic interface, a virtual-reality-interface, an augmented reality interface, an acoustic interface, via a body tracking interface, based on electromyographic data, based on elektroenzephalographic data, via a neuronal interface, or a combination thereof.

    12. The system according to claim 10, wherein the human-machine-interface HMI is designed and setup to deliver auditive, visual, haptic, olfactoric, tactile, or electrical feedback, or a combination thereof.

    13. An articulated robot to control actuators enabling the robot to execute a given task, the robot comprising: a first unit to provide a specification of robot skills s selectable from a skill space depending on the task, with a robot skill s being defined as a tuple (S, O, C.sub.pre, C.sub.err, C.sub.suc, R, .sub.cmd, X, P, Q) with S: a Cartesian product of I subspaces .sub.i: S=.sub.i=1.sub.i=2 . . . .sub.i=I with i={1, 2, . . . , I} and I2, O: a set of physical objects, C.sub.pre: a precondition, C.sub.err: an error condition, C.sub.suc: a success condition, R: nominal result of ideal skill execution, .sub.cmd: skill commands, X: physical coordinates, P: skill parameters, with P consisting of three subsets P.sub.t, P.sub.l, P.sub.D, with P.sub.t being the parameters resulting from a priori knowledge of the task, P.sub.l being the parameters not known initially and need to be learned and/or estimated during execution of the task, and P.sub.D being constraints of parameters P.sub.l, Q: a performance metric, wherein Q(t) is denoting the actual performance of the skill carried out by the robot; and a second unit connected to the first unit and further to a learning unit and to an adaptive controller; wherein the adaptive controller receives skill commands .sub.cmd, wherein the skill commands .sub.cmd comprise the skill parameters P.sub.l, wherein based on the skill commands .sub.cmd the controller controls the actuators of the robot, wherein the actual status of the robot is sensed by respective sensors and/or estimated by respective estimators and fed back to the controller and to the second unit, wherein based on the actual status, the second unit determines the performance value Q(t) of the skill carried out by the robot, and wherein the learning unit receives P.sub.D, and Q(t) from the second unit, determines updated skill parameters P.sub.l(t) and provides P.sub.l(t) to the second unit to replace hitherto existing skill parameters P.sub.l.

    14. A method of controlling actuators of an articulated robot and enabling the robot to execute a given task, the robot comprising a first unit, a second unit, a learning unit, and an adaptive controller, the second unit being connected to the first unit and further to the learning unit and to the adaptive controller, the method comprising: providing a specification of robot skills s selectable from a skill space depending on the task by a first unit, with a robot skill s being defined as a tuple (S, O, C.sub.pre, C.sub.err, C.sub.suc, R, .sub.cmd, X, P, Q) with S: a Cartesian product of I subspaces .sub.i: S=.sub.i=1.sub.i=2 . . . .sub.i=I with i={1, 2, . . . , I} and I2, O: a set of physical objects, C.sub.pre: a precondition, C.sub.err: an error condition, C.sub.suc: a success condition, R: nominal result of ideal skill execution, .sub.cmd: skill commands, X: physical coordinates, P: skill parameters, with P consisting of three subsets P.sub.t, P.sub.l, P.sub.D, with P.sub.t being the parameters resulting from a prion knowledge of the task, P.sub.l being the parameters not known initially and need to be learned and/or estimated during execution of the task, and P.sub.D being constraints of parameters P.sub.l, Q: a performance metric, while Q(t) is denoting the actual performance of the skill carried out by the robot, the adaptive controller receiving skill commands .sub.cmd from the second unit, wherein the skill commands .sub.cmd comprise the skill parameters P.sub.l, controlling the actuators of the robot by the controller and based on the skill commands .sub.cmd, wherein the actual status of the robot is sensed by respective sensors and/or estimated by respective estimators and fed back to the controller and to the second unit, determining by the second unit and based on the actual status, the performance value Q(t) of the skill carried out by the robot, the learning unit receiving (S5) P.sub.D and Q(t) from the second unit, and determining updated skill parameters P.sub.l(t) and providing P.sub.l(t) to the second unit and replacing hitherto existing skill parameters P.sub.l.

    15. (canceled)

    16. A system to control actuators of an articulated robot and enable the robot to execute a given task, the robot comprising a first unit, a second unit, a learning unit, and an adaptive controller, the second unit being connected to the first unit and further to the learning unit and to the adaptive controller, the system comprising: a data processing unit; and a storage medium storing instructions that, when executed by the data processing unit, enables the data processing unit to perform operations comprising: providing a specification of robot skills s selectable from a skill space depending on the task by a first unit, with a robot skill s being defined as a tuple (S, O, C.sub.pre, C.sub.err, C.sub.suc, R, .sub.cmd, X, P, Q) with S: a Cartesian product of I subspaces .sub.i: S=.sub.i=1.sub.i=2 . . . .sub.i=I with i={1, 2, . . . , I} and I2, O: a set of physical objects, C.sub.pre: a precondition, C.sub.err: an error condition, C.sub.suc: a success condition, R: nominal result of ideal skill execution, .sub.cmd: skill commands, X: physical coordinates, P: skill parameters, with P consisting of three subsets P.sub.t, P.sub.l, P.sub.D, with P.sub.t being the parameters resulting from a prion knowledge of the task, P.sub.l being the parameters not known initially and need to be learned and/or estimated during execution of the task, and P.sub.D being constraints of parameters P.sub.l, Q: a performance metric, while Q(t) is denoting the actual performance of the skill carried out by the robot, the adaptive controller receiving skill commands .sub.cmd from the second unit, wherein the skill commands .sub.cmd comprise the skill parameters P.sub.l; controlling the actuators of the robot by the controller and based on the skill commands .sub.cmd, wherein the actual status of the robot is sensed by respective sensors and/or estimated by respective estimators and fed back to the controller and to the second unit; determining by the second unit and based on the actual status, the performance value Q(t) of the skill carried out by the robot; the learning unit receiving (S5) P.sub.D and Q(t) from the second unit; and determining updated skill parameters P.sub.l(t) and providing P.sub.l(t) to the second unit and replacing hitherto existing skill parameters P.sub.l.

    17. A non-transitory storage medium storing instructions that, when executed by the data processing unit, enables the data processing unit to perform operations to control actuators of an articulated robot and enable the robot to execute a given task, the robot comprising a first unit, a second unit, a learning unit, and an adaptive controller, the second unit being connected to the first unit and further to the learning unit and to the adaptive controller, the operations comprising: providing a specification of robot skills s selectable from a skill space depending on the task by a first unit, with a robot skill s being defined as a tuple (S, O, C.sub.pre, C.sub.err, C.sub.suc, R, .sub.cmd, X, P, Q) with S: a Cartesian product of I subspaces .sub.i: S=.sub.i=1.sub.i=2 . . . .sub.i=I with i={1, 2, . . . , I} and I2, O: a set of physical objects, C.sub.pre: a precondition, C.sub.err: an error condition, C.sub.suc: a success condition, R: nominal result of ideal skill execution, .sub.cmd: skill commands, X: physical coordinates, P: skill parameters, with P consisting of three subsets P.sub.t, P.sub.l, P.sub.D, with P.sub.t being the parameters resulting from a prion knowledge of the task, P.sub.l being the parameters not known initially and need to be learned and/or estimated during execution of the task, and P.sub.D being constraints of parameters P.sub.l, Q: a performance metric, while Q(t) is denoting the actual performance of the skill carried out by the robot, the adaptive controller receiving skill commands .sub.cmd from the second unit, wherein the skill commands .sub.cmd comprise the skill parameters P.sub.l; controlling the actuators of the robot by the controller and based on the skill commands .sub.cmd, wherein the actual status of the robot is sensed by respective sensors and/or estimated by respective estimators and fed back to the controller and to the second unit; determining by the second unit and based on the actual status, the performance value Q(t) of the skill carried out by the robot; the learning unit receiving (S5) P.sub.D and Q(t) from the second unit; and determining updated skill parameters P.sub.l(t) and providing P.sub.l(t) to the second unit and replacing hitherto existing skill parameters P.sub.l.

    18. (canceled)

    19. (canceled)

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0145] In the drawings:

    [0146] FIG. 1 shows a peg-in-hole skill according to a first embodiment of the invention;

    [0147] FIG. 2 shows a conceptual sketch of skill dynamics according to another embodiment of the invention;

    [0148] FIG. 3 shows a method for controlling actuators of an articulated robot according to a third embodiment of the invention;

    [0149] FIG. 4 shows a system for controlling actuators of an articulated robot and enabling the robot executing a given task according to another embodiment of the invention;

    [0150] FIG. 5 shows the system of FIG. 4 in a different level of detail; and

    [0151] FIG. 6 shows a system for controlling actuators of an articulated robot and enabling the robot executing a given task according to another embodiment of the invention.

    DETAILED DESCRIPTION

    [0152] In FIG. 1, the application of the skill framework for the standard manipulation problem, i.e., the skill peg-in-hole, is shown. On the left half of the picture, the robot 80 is located in a suitable region of interest ROI 1, with the grasped peg 3 being in contact with the surface of an object with a hole 5. The skill commands velocities resulting from a velocity based search algorithm, aiming at finding the hole 5 with according alignment and subsequently inserting the peg 3 into the hole 5. In the alignment phase a feed forward force is applied downwards-vertical (downwards in FIG. 1) and to the left. Simultaneously, the alignment movement consists of basic rotations around two horizontal axes (from left to right and into the paper plane in FIG. 1). During the insertion phase, the skill commands {dot over (x)}.sub.d,z until x.sub.d reached a desired depth. At the same time, perpendicular Lissajous velocities {dot over (x)}.sub.d,x, {dot over (x)}.sub.d,y are overlaid. If the peg 3 reaches the desired depth the skill was successful. The skill is defined as follows:

    [0153] S={x, R, F.sub.ext, .sub.ext}, where xcustom-character.sup.3 is the position in Cartesian space, Rcustom-character.sup.33 is the orientation, F.sub.ext=[f.sub.ext, m.sub.ext].sup.Tcustom-character.sup.6 is the wrench of the external forces and torques and .sub.extcustom-character.sup.n is the vector of external torques where n denotes the number of joints. Objects O=[r, p, h], where r is the robot 80, p the object or peg 3 grasped with the robot 80 and h the hole 5. C.sub.pre={XS|f.sub.ext,z>f.sub.contact, xU(x), g(r, p)=1} states that the robot 80 shall sense a specified contact force f.sub.contact and the peg 3 has to be within the region of interest ROI 1, which is defined by U(). The function g(r,p) simplifies the condition of the robot r 80 having grasped the peg p 3 to a binary mapping. C.sub.suc={XS|x.sub.z>x.sub.z,0+d} which states that the peg 3 has to be partially inserted by at least d into the hole 5 for the skill to terminate successfully. Ideally d is the depth of the hole 5.

    [0154] C.sub.err={XS|x.Math.U(x), .sub.ext>.sub.max} states that the skill fails if the robot 80 leaves the ROI 1 or the external torques exceed some specified safety limit component wise. P={P.sub.t, P.sub.l} with P.sub.t={a, d, {tilde over (T)}, r} and P.sub.l={.sub.t, .sub.r, .sub.t, .sub.r, F.sub.ff,0, v.sub.t, v.sub.r}. a is the amplitude of the Lissajous curves, d is the desired depth, {tilde over (T)} is the pose estimation of the hole 5 and r is the radius of the region of interest ROI 1. The controller parameters , and F.sub.ff,0 are applied as in the above shown general description. v is a velocity and the indices t, r refer to translational and rotational directions, respectively. Q.sub.time={t.sub.et.sub.s, f.sub.z,max=max.sub.t f.sub.ext,z}, where t.sub.e and t.sub.s are the start and end time of the skill execution and f.sub.ext,z is the external force in z-direction. This metric aims to minimize execution time and comply to a maximum level of contact forces in the direction of insertion simultaneously.

    [0155] FIG. 2 shows a conceptual sketch of skill dynamics. At execution start, all coordinates, i.e., all physical objects O, reside in C.sub.pre of S for which the preconditions hold. The skill dynamics then drive the system through skills space towards the success condition C.sub.suc and ultimately to the nominal result R. The valid skill space is surrounded by C.sub.err. The abbreviation D.<Number> refers to the following definitions, such that, e.g., D.4 refers to Definition 4 from the upcoming description. The skill provides desired commands and trajectories to the adaptive controller 104 together with meta parameters and other relevant quantities for executing the task. In addition, a skill contains a quality metric and parameter domain to the learning algorithm of the learning unit 103, while receiving the learned set of parameters used in execution. The adaptive controller 104 commands the robot hardware via desired joint torques and receives sensor feedback. Finally, the skill formalism makes it possible to easily connect to a high-level task planning module. The following preferred skill formalism is applied:

    [0156] Definition 1 (Skill): A skill s is an element of the skill-space. It is defined as a tuple (S, O, C.sub.pre, C.sub.err, C.sub.suc, R, .sub.cmd, X, P, Q).

    [0157] Definition 2 (Space): Let S be the Cartesian product of I subspaces .sub.i=custom-character.sup.m.sup.i.sup.n.sup.i relevant to the skill s, i.e.: S=.sub.i=1.sub.i=2 . . . .sub.i=I with i={1, 2, . . . , I} and I2, wherein the subspaces .sub.i include a control variable and an external wrench including an external force and an external moment.

    [0158] Definition 3 (Object): Let o represent a physical object with coordinates .sup.oX(t)S associated with it. O denotes the set of all objects oO relevant to a skill s with n.sub.o=|O| and n.sub.o>0. Moreover, X(t) is defined as X(t)=(.sup.o.sup.1X(t), . . . , .sup.o.sup.nX(t)).sup.T. In these considerations the set O is not changed during skill execution, i.e., n.sub.o=const.

    [0159] Definition 4 (Task Frame): The task frame .sup.oR.sub.TF(t) denotes the rotation from frame TF to the base frame O. It is assumed that .sup.oR.sub.TF(t)=const.

    [0160] Definition 5 (Parameters): P denotes the set of all skill parameters consisting of three subsets P.sub.t, P.sub.l and P.sub.D. The set P.sub.tP contains all parameters resulting from a priori task knowledge, experience and the intention under which the skill is executed. It is referred to P.sub.t also as task specification. The set P.sub.lP contains all other parameters that are not necessarily known beforehand and need to be learned or estimated. In particular, it contains the meta parameters (, , .sub., .sub.) for the adaptive controller 104. The third subset P.sub.DP defines the valid domain for P.sub.l, i.e., it consists of intervals of values for continuous parameters or sets of values for discrete ones. Thus, P.sub.D determines the boundaries when learning P.sub.l.

    [0161] Conditions: There are three condition types involved in the execution of a skill: preconditions, failure conditions and success conditions. They all share the same basic definition, yet their application is substantially different. Their purpose is to define the borders and limits of the skill from start to end:

    [0162] Definition 6 (Condition): Let CS be a closed set and c(X(t)) a function c: S.fwdarw.B where B={0, 1}. A condition holds iff c(X(t))=1. The mapping itself depends on the specific type of condition.

    [0163] Definition 7 (Precondition): C.sub.pre denotes the chosen set for which the precondition defined by c.sub.pre(X(t)) holds. The condition holds, i.e., c.sub.pre(X(t.sub.0))=1, iff xX: x(t.sub.0)C.sub.pre. to denotes the time at start of the skill execution. This means that at the beginning of skill execution the coordinates of every involved object must lie in C.sub.pre.

    [0164] Definition 8 (Error Condition): C.sub.err denotes the chosen set for which the error condition c.sub.err(X(t)) holds, i.e., c.sub.err(X(t))=1. This follows from xX: x(t)C.sub.err. If the error condition is fulfilled at time t, skill execution is interrupted. No assumptions are made about how this error state is resolved since this depends on the actual skill implementation and the capabilities of high-level control and planning agency.

    [0165] Definition 9 (Success Condition): C.sub.suc denotes the chosen set for which the success condition defined by c.sub.suc(X(t)) holds, i.e., c.sub.suc(X(t))=1 iff xX: x(t)C.sub.suc. If the coordinates of all involved objects are within C.sub.suc the skill execution can terminate successfully.

    [0166] Definition 10 (Nominal Result): The nominal result RS is the ideal endpoint of skill execution, i.e., the convergence point.

    [0167] Although the nominal result R is the ideal goal of the skill, its execution is nonetheless considered successful if the success conditions C.sub.suc. holds. Nonetheless X(t) converges to this point.

    [0168] Definition 11 (Skill Dynamics): Let X:[t.sub.0,].fwdarw.P be a general dynamic process, where t.sub.0 denotes the start of the skill execution. The process terminates if ( c.sub.sucC.sub.suc: c.sub.suc(X(t))=1)(c.sub.errC.sub.err: c.sub.err(X(t))=1).

    [0169] It converges to the nominal result R. This dynamic process encodes what the skill actually does depending on the input, i.e., the concrete implementation. This is a trajectory generator, a DMP, or some other algorithm calculating sensor based velocity or force commands. The finish time t.sub.e is not necessarily known a priori. For a search skill it cannot be determined when it terminates because of the very nature of the search problem.

    [0170] Definition 12 (Commands): Let .sub.cmdX(t) be the skill commands, i.e., a desired trajectory consisting of velocities and forces defined in TF sent to the controller.

    [0171] Definition 13 (Quality Metric): Q denotes the set of all 2-tuples (w,f.sub.q(X(t)) with 0<w<1 and constraints f.sub.c,i(X(t)). Furthermore let q=.sub.iw.sub.if.sub.q,i(X(t))(w.sub.i,f.sub.q,i(X(t)))Q.

    [0172] The quality metric is a means of evaluating the performance of the skill and to impose quality constraints on it. This evaluation aims at comparing two different implementations of the same skill or two different sets of parameters P. The constraints are used to provide a measure of quality limits for a specific task (e.g., a specific time limit). The quality metric reflects some criterion that is derived from the overall process in which the skill is executed or given by a human supervisor.

    [0173] FIG. 3 shows a method for controlling actuators of an articulated robot 80 and enabling the robot 80 executing a given task, the robot 80 including a first unit 101, a second unit 102, a learning unit 103, and an adaptive controller 104, the second unit 102 being connected to the first unit 101 and further to a learning unit 103 and to an adaptive controller 104, including the following steps: [0174] providing S1 a specification of robot skills s selectable from a skill space depending on the task by a first unit 101, with a robot skill s being defined as a 2-tuple out of (S, O, C.sub.pre, C.sub.err, C.sub.suc, R, .sub.cmd, X, P, Q) with

    [0175] S: a Cartesian product of I subspaces .sub.i: S=.sub.i=1.sub.i=2 . . . .sub.i=I

    [0176] with i={1, 2, . . . , I} and I2,

    [0177] O: a set of all objects,

    [0178] C.sub.pre: a precondition,

    [0179] C.sub.err: an error condition,

    [0180] C.sub.suc: a success condition,

    [0181] R: a nominal result of ideal skill execution,

    [0182] .sub.cmd: skill commands,

    [0183] X: physical coordinates,

    [0184] P: skill parameters, with P consisting of three subsets P.sub.t, P.sub.l, P.sub.D, with P.sub.t being the parameters resulting from a priori knowledge of the task, P.sub.l being the parameters not known initially and need to be learned and/or estimated during execution of the task, and P.sub.D being constraints of parameters P.sub.l,

    [0185] Q: a performance metric, while Q(t) is denoting the actual performance of the skill carried out by the robot 80, [0186] an adaptive controller 104 receiving S2 skill commands .sub.cmd from a second unit 102, wherein the second unit 102 is connected to the first unit 101 and further to a learning unit 103 and to the adaptive controller 104 and wherein the skill commands .sub.cmd include the skill parameters P.sub.l, [0187] controlling S3 the actuators of the robot 80 by the adaptive controller 104 and based on the skill commands .sub.cmd, wherein the actual status of the robot 80 is sensed by respective sensors and/or estimated by respective estimators and fed back to the controller 104 and to the second unit 102, [0188] determining S4 by the second unit 102 and based on the actual status, the performance Q(t) of the skill carried out by the robot 80, [0189] the learning unit 103 receiving S5 P.sub.D and Q(t) from the second unit 102, and [0190] determining S6 updated skill parameters P.sub.l(t) and providing P.sub.l(t) to the second unit 102 and replacing hitherto existing skill parameters P.sub.l, wherein the subspaces .sub.i include a control variable and an external wrench including, in particular, an external force and an external moment.

    [0191] Each of FIGS. 4 and 5 shows a system for controlling actuators of an articulated robot 80 and enabling the robot 80 executing a given task in different levels of detail. Each system including: [0192] a first unit 101 providing a specification of robot skills s selectable from a skill space depending on the task, with a robot skill s being defined as a tuple out of (S, O, C.sub.pre, C.sub.err, C.sub.suc, R, .sub.cmd, X, p, Q) with

    [0193] S: a Cartesian product of I subspaces .sub.i: S=.sub.i=1.sub.i=2 . . . .sub.i=I

    [0194] with i{1, 2, . . . , I} and I2,

    [0195] O: a set of all physical objects,

    [0196] C.sub.pre: a precondition,

    [0197] C.sub.err: an error condition,

    [0198] C.sub.suc: a success condition,

    [0199] R: nominal result of ideal skill execution,

    [0200] .sub.cmd: skill commands,

    [0201] X: physical coordinates,

    [0202] P: skill parameters, with P consisting of three subsets P.sub.t, P.sub.l, P.sub.D, with P.sub.t being the parameters resulting from a priori knowledge of the task, P.sub.l being the parameters not known initially and need to be learned and/or estimated during execution of the task, and P.sub.D being constraints of parameters P.sub.l,

    [0203] Q: a performance metric, while Q(t) is denoting the actual performance of the skill carried out by the robot 80, [0204] a second unit 102, wherein the second unit 102 is connected to the first unit 101 and further to a learning unit 103 and to an adaptive controller 104, wherein the adaptive controller 104 receives skill commands .sub.cmd, wherein the skill commands .sub.cmd include the skill parameters P.sub.l, wherein based on the skill commands .sub.cmd the controller 104 controls the actuators of the robot 80, wherein the actual status X(t) of the robot 80 is sensed by respective sensors and/or estimated by respective estimators and fed back to the controller 104 and to the second unit 102, wherein based on the actual status X(t), the second unit 102 determines the performance Q(t) of the skill carried out by the robot 80, and wherein the learning unit 103 receives P.sub.D, and Q(t) from the second unit 102, determines updated skill parameters P.sub.l(t) and provides P.sub.l(t) to the second unit 102 to replace hitherto existing skill parameters P.sub.l, wherein the subspaces .sub.i include a control variable and an external wrench including an external force and an external moment. The skill commands .sub.cmd include the skill parameters P within the desired force F.sub.d, and F.sub.d, which is dependent on P via F.sub.d=f.sub.F(X, P), wherein P.sub.l is one of the three subsets of P. Likewise the desired velocity {dot over (x)}.sub.d is dependent on P and therefore also on P.sub.l with {dot over (x)}.sub.d=f.sub.x(X, P). The parameter P.sub.t is herein received from a database of a planning and skill surveillance unit, symbolized by a stacked cylinder.

    [0205] FIG. 6 shows a system for controlling actuators of an articulated robot 80 and enabling the robot 80 executing a given task, including: [0206] a first unit 101 providing a specification of robot skills s selectable from a skill space depending on the task, with a robot skill s being defined as a tuple from (S, O, C.sub.pre, C.sub.err, C.sub.suc, R, .sub.cmd, X, p, Q). The expressions of this tuple are defined as follows:

    [0207] S: a Cartesian product of I subspaces .sub.i: S=.sub.i=1.sub.i=2 . . . .sub.i=I

    [0208] with i={1, 2, . . . , I} and I2,

    [0209] O: a set of all physical objects,

    [0210] C.sub.pre: a precondition,

    [0211] C.sub.err: an error condition,

    [0212] C.sub.suc: a success condition,

    [0213] R: a nominal result of ideal skill execution,

    [0214] .sub.cmd: skill commands,

    [0215] X: physical coordinates,

    [0216] P: skill parameters, with P consisting of three subsets P.sub.t, P.sub.l, P.sub.D, with P.sub.t being the parameters resulting from a priori knowledge of the task, P.sub.l being the parameters not known initially and need to be learned and/or estimated during execution of the task, and P.sub.D being constraints of parameters P.sub.l,

    [0217] Q: a performance metric, wherein Q(t) is denoting the actual performance of the skill carried out by the robot 80, [0218] a second unit 102, wherein the second unit 102 is connected to the first unit 101 and further to a learning unit 103 and to an adaptive controller 104,

    [0219] wherein the adaptive controller 104 receives skill commands .sub.cmd,

    [0220] wherein the skill commands .sub.cmd include the skill parameters P.sub.l,

    [0221] wherein based on the skill commands .sub.cmd the controller 104 controls the actuators of the robot 80 via a control signal .sub.d, wherein the actual status X(t) of the robot 80 is sensed by respective sensors and/or estimated by respective estimators and fed back to the controller 104 and to the second unit 102, wherein based on the actual status X(t), the second unit 102 determines the performance Q(t) of the skill carried out by the robot 80, and wherein the learning unit 103 receives P.sub.D, and Q(t) from the second unit 102, determines updated skill parameters P.sub.l(t) and provides P.sub.l(t) to the second unit 102 to replace hitherto existing skill parameters P.sub.l.

    LIST OF REFERENCE NUMERALS

    [0222] 1 Region of interest ROI [0223] 3 Peg [0224] 5 Hole [0225] 80 Robot [0226] 101 First unit [0227] 102 Second unit [0228] 103 Learning unit [0229] 104 Adaptive controller [0230] S1 Providing [0231] S2 Receiving [0232] S3 Controlling [0233] S4 Determining [0234] S5 Receiving [0235] S6 Determining