Abstract The paper compares various approaches to imple- menting a compliant Cartesian behavior for robotic manipulators: impedance, admittance and stiffness control. A new controller structure is proposed, which consists of an impedance controller enhanced by lo- cal stiffness control. This structure consistently takes into account the two time scale property of the joint and Cartesian control loops. The DLR light-weight robot, with its position, torque and impedance inter- faces on joint level, is an adequate platform for the implementation of the presented methods. 63444
The experi- mental results are discussed and a critical comparison of the performance with different controllers is made. As an application for the new control structure, the fast and intuitive teaching of an insertion task (piston into a motor block) is described. 1 Introduction Applications in which a robot’s end-effector inter- acts with the environment require a suitable compliant behavior to be implemented in Cartesian space. A well established framework to manage this task is given by impedance control [8]. The aim of an impedance controller is to establish a mass-damper-spring rela- tionship between the Cartesian position Ax and the Cartesian force f: f = MAX + DkAh + Kkh, (1) where M, Dk and Kk are positive definite matrices representing the virtual inertia, damping and stiff- ness of the system. If the focus is on the stiffness and damping properties, there exist various control strategies to implement this behavior on a real robot system. In this paper we will focus on admittance control, impedance control and stiffness control. The first method is widely used, since a position control interface is available on every robotic system. In con- trast, the last two methods require a joint torque or joint impedance interface. The usefulness of direct current command as a torque interface is limited for most robots by the disturbing influence of the fric- tion. The joints of the DLR light-weight robots are equipped with torque sensors, enabling joint position, torque and stiffness control. Thus, they are an ade- quate platform for the implementation and compari- son of the aforementioned Cartesian control methods [7]. An overview of the controller architecture of the DLR robots is given in section 2. The paper first considers the classical structures of admittance, impedance and stiffness control, with a special focus on the last method, which is quite common for robotic hands but rarely used for arms. It turns out that stiffness control leads to substan- tial geometrical errors for high displacements. The use of a conservative congruence transformation does not improve the results considerably. In this paper we propose a new control strategy, which consists in impedance control augmented by local stiffness con- trol. This approach combines the benefits of both control methods in terms of geometric accuracy and attainable stiffness range. 2 Overview of the LWR controller ar- chit ect ure Fig. 1 gives an overview of the controller structure implemented on DLR’s light-weight robots. The joint control is computed in a decentralized manner, on a signal processor in each joint, with a sampling rate of 3kHz. A flexible joint model is assumed for the robots [3]. The motor position q1 and joint torque T are available from measurements. Their derivatives are computed numerically. With these four signals it is possible to implement joint controllers with full state feedback. Conditions for the passivity of the controllers were derived in [2]. The joint controller is actually an impedance controller, which, depending on the com- manded joint stiffness, can be parameterized as a po-sition controller (kdes = kma) or a torque controller (kdes ---* 0). Every lms the joints receive the desired Values {&d, qld, +d, ~d}, the variable parameters for the joint controllers as well as a feed-forward motor torque command term from the central robot controller. The measured values are transmitted with the same sam- pling rate from the joints to the Cartesian level. The robot dynamics, the kinematics and the in- verse kinematics are computed in the central robot controller. In every Cartesian cycle the gains for the joint controllers are also computed as a function of the desired stiffness and the current value of the iner- tia matrix. This structure is well suited for the implementation and testing of various Cartesian control strategies. For example, the Cartesian force controller can be imple- mented either by using the transposed Jacobian and accessing the joint torque interface, or by using the inverse kinematics and accessing the joint position in- terface. In a similar way, the structure can be used to implement admittance, impedance and stiffness con- trol. 3 Impedance control methods In this section we summarize the three aforemen- tioned control methods, which can be used to ob- tain the desired compliant robot behavior in Carte- sian space. Therefore it is useful to keep in mind that regardless of the control method, the motor torque is eventually the value commanded to the robot. 3.1 Admittance Control The Cartesian force at the end-effector is measured in the case of admittance control by a 6DOF force- torque sensor. The force vector is used to generate a desired Cartesian position Xd. Using the inverse kine- matics K-l, this displacement is converted to desired joint positions. The joint position controller Pn then generates the motor torques: where 42 is the link side position of the joints. This method is the most commonly used one, since most robots have only a position interface. The advan- tages are that the high gain position controllers can compensate for the friction in the joints and that, for the implementation of high stiffness, low gains are needed in the Cartesian control loop. Hence it is clear that stability problems will appear for low desired stiffness and damping, for which the band- width of the Cartesian control loop approaches the joint bandwidth. This problem is even more notice- able for flexible joint robots, since in that case the bandwidth of joint control is more critical. Further problems arise in the vicinity of singularities, where Cartesian position control can typically lead to fast, destabilizing movements. 3.2 Impedance Control The impedance control uses directly the equation (l), in which the actual Cartesian position x = K(q2) is computed from the position 42 using direct kinemat- ics. Using the transposed Jacobian JT(q2), the Carte- sian force is transformed into desired joint torques. The joint torque controller 7~ then generates the mo- tor torque command: f = KkAX f DkAi 4 Td = JT(q2)f 4 -+ Tm = TR{Td) (3) To obtain good results with this method, a joint torque controller which can overcome the joint friction dis- turbance is very useful. The impedance controller is, in principle, complementary to the admittance con- troller. It is well suited for low stiffness and damping, which now require low gains in the Cartesian loop, while the bandwidth of the torque controller is opti- mally exploited. The stability problems will appear correspondingly for high Cartesian stiffness. The behavior at singularities is also different from that of the admittance controller. Components of f, which act in singular directions, are not mapped to the joint space. The movement in the vicinity of sin- gularities will be stable and smooth, but the stiffness matrix will be distorted. 3.3 Stiffness control From the previous two methods one can see that appropriate performance can be achieved if the gains in the Cartesian control loop axe substantially lower than those in the joint controllers. This leads to the idea of converting the desired Cartesian stiffness and damping to corresponding matrices for the joint stiff- ness Kj and damping Dj. Assuming that the desired Cartesian matrices are changing rather slowly, there is no need for very high Cartesian sampling rates. The joint impedance controller SR can then be used to generate the desired motor torque. 3.4 Limitations of the stiffness controller The mapping 7 as well as the matrices {Kj, Dj} have only a local meaning. Kj and Dj give a local relationship between the joint torque and the joint po- sition or the joint velocities, respectively. ' In the early work of [14], only the first term of (5) is mentioned. The importance of the second term, which reflects the position dependent change of the Jacobian is pointed out in 19, 5, 6, 11. The idea of mapping the Cartesian stiffness to the joint stiffness is biologically motivated. The human arm is able to change its stiffness by contracting antagonistic muscle pairs [9, 121. In case of robotic manipulators, this can be accomplished only by means of control, the input for the robot is always the motor torque. The direct implementation of a Cartesian stiffness with the control law: rd = K~(IC-'{XO} - q2) - DjQz (6) leads, at least for higher displacements Ax from the desired position, to substantial errors in the stiffness matrix. The reason for these errors is the local char- acter of (5). The last term in (5) does not completely eliminate this error, because = KkJ(q2) is also valid only locally. Here, the Jacobian is implicitly 'For sake of simplicity, we used here the somewhat sloppy expression from [9] of the derivative of a matrix by a vector .w. Writing the expression for every row of Kji with i = 1,. . , , N eliminates the ambiguity. The resulting matrix is of course equivalent also to the formulation of the conservative congruence transformation in [5, 61. assumed to be constant, despite of being multiplied by a big displacement Aqz. 4 Impedance controller enhanced by local stiffness control In this section, a new controller structure for the implementation of Cartesian stiffness is presented. Based on the remarks in the previous section, the new controller structure is designed with the following con- siderations in mind: (Al) J(q2) and x = K(qz) may be computed in a slower (A2) The robot has a fast joint control loop, for which the time delay is negligible, so that 42 x q2j. (A3) (6) is valid only locally. Cartesian control loop. Notations: The signals, which are measured or computed in the Cartesian loop are denoted by the index []k. The index uj refers to signals determined in the joint control loop, while the real (instantaneous) values have no index. Furthermore, for the difference signals, the notations Aqk = qo - qk and Aqj = Qk - qj are used. Considering (Al), it follows that : AX XO-XXXO-~~-- (q2j - q2k) = = Axk -k J(q2k)bj (7) This leads to the following expression for the stiffness induced component of the desired joint torque: 7dK = JT(q2)KkAx = JT(qzk)KkAXk 4- The first term corresponds to the impedance controller on Cartesian level. The second term corresponds to the stiffness controller, as described in [14]. Here, in contrast to (6), the stiffness controller acts only locally, in the vicinity of the last Cartesian position. This helps overcoming the slower Cartesian sampling rate by the faster joint controller. The third term corresponds to the correction term in (5), which ensures the conservativeness of the map- ping. Since the term contains the Cartesian elastic force for the complete displacement Kkhxk, it can not always be ignored, although the variation' of the Jacobian within a Cartesian cycle is small. Finally, the fourth term depends on the square of the small displacement Aq2j and consequently has no practical significance. In a similar way one obtains for the damping term: The second term in this expression may again be ig- nored. manded to the torque controller. To exploit the perfor- mance of the joint controller optimally, it is more ad- vantageous to use the joint stiffness controller instead. The term JT(q2k)KkAsk is computed in the Cartesian loop and is sent as a commanded torque value to the stiffness controller. The terms JT(q2k)KkJ(q2k) and KkAx are also computed in every Carte- sian cycle and represent a constant desired stiffness, which is commanded to the joint controllers for the duration of this step. Remark: In the current, decentralized joint con- troller structure, only the diagonal terms of the stiff- ness and damping matrices can be implemented using the joint impedance controller. The torques produced by the off-diagonal elements are computed on the cen- tral computer in a joint level task (at the bus sampling rate of lms) and are added to the desired torques. The desired torque rd = TdK -I- TdD can be com- qZ=qZk 5 Experimental results The controller structures, which were described in sec. 3 and sec. 4, have been implemented on the DLR light-weight robots. In this section an experiment is described, which compares the performance of the var- ious controllers. During the experiment, the desired position is kept constant. A very low stiffness is com- manded in one translational direction (y), while the desired stiffness in the other Cartesian directions is high. Regardless of the forces applied by the user hand at the end-effector, the robot should consequently be able to move only in the y-direction. The controllers are compared in terms of the minimal and maximal stiffness that can be achieved, as well as in terms of the geometric accuracy for high displacements. The commanded values for the stiffness are summarized in table 1. 2Since the focus of this work is on the structures of the impedance controller, the values for the rotational stiffness were deliberately chosen high, so that the particular representation of orientations has no significant effects on the results, as pointed out in [4, IS]. Table 1: Commanded values for the diagonal Carte- sian stiffness matrix X IYI z I roll I pitch I yaw 3000 I 100 I 3000 I 200 I 200 I 200 U N/m I N/m I N/m I "/rad I "/rad I "/rad 11 The pure impedance controller showed up the poor- est performance in terms of achievable stiffness range. As expected, it was not possible to implement high stiffness with this controller. The stiffness for which stability was preserved, was by a factor of 10 lower than for the other controllers. Reasons for this are the high gains needed in the Cartesian control loop and the limited bandwidth of the joint torque con- troller. Closing the impedance control loop on Carte- sian level leads to a cascaded structure. For high stiff- ness, the separation principle for the time constants of the two stages of the cascade is violated. A com- parison between the impedance controller and other structures from the point of view of geometric accu- racy was therefore not possible. The stiffness controller implemented with (6),(5) shows up very good stiffness and damping range per- formances. Since the stiffness and the damping are implemented inside the fast joint controllers, it was possible to vary the stiffness from zero (torque control) to high values in the range of the position controller. Moreover, typical stability problems encountered by force controlled robots at contacts with hard surfaces were absent here, even for high velocity impacts. An important drawback of the method is, however, the poor performance in terms of geometric accuracy for high displacements. As it can be seen in fig. 2 and fig. 3, the trajectory described by the robot corre- sponds to the desired straight line only in a vicinity of the desired position, but becomes curved for higher displacements. In these positions, the Cartesian stiff- ness matrix is very distorted, for reasons presented in section 3.4. This effect was not substantially influ- enced by the use of a conservative or nonconservative congruence transformation. This fact severely limits the practical applicability of the method. The other two curves in fig. 2 and fig. 3 present the results for the impedance controller enhanced by lo- cal stiffness control (section 4), with conservative and nonconservative congruence transformation. Due to the use of the impedance controller, the geometric ac- curacy is considerably improved, while the stability problems with the impedance controller are eliminated by the fast joint stiffness control. The advantages of a high stiffness range and a high bandwidth are pre- served. Fig. 4 and fig. 5 show the measurements for the same controller together with the field of forces applied by the user and measured by a 6DOF force- torque sensor. (Notice that in this case, the force sen- sor is used only for displaying the forces, the controller itself needs only joint position and joint torque mea- surements.) Fig. 4 also shows the robot in the initial configuration (20). Finally, fig. 6 and fig. 7 compare the performance of the admittance controller with that of the controller from section 4. It can be seen that from respect to ge- ometric accuracy, the admittance controller still has the best performance. This can be explained by the fact that the method explicitly uses inverse kinemat- ics and that the high gains of the position controller compensate for the effects of friction. Nevertheless, the admittance controller also has some drawbacks compared to the controller from sec- tion 4. An important one is related to the behavior in the vicinity of singularities. Since in this situation inverse kinematics may lead to high joint velocity, the admittance controller tends to become unstable. In contrast, the other controller decreases its sensitivity, since forces at the end-effector can not be measured by the joint torque sensors. The controller remains sta- ble, only the Cartesian stiffness matrix is distorted. Another drawback is related to the bandwidth of the admittance controller. Low stiffness can be achieved only if damping is considerably increased, still leading to a low bandwidth of the force controller implemented on the Cartesian level. This leads to stability prob- lems at contact or impact with hard surfaces, unless the velocity of the robot is considerably reduced. As a conclusion it can be stated that admittance control is a good choice for applications where geo- metric accuracy is relevant and the contacted envi- ronment does not have a very high stiffness. This is, for example, the case for force-feedback applications [13]. In applications where a high bandwidth is more important, while geometric accuracy is required only in a fairly large vicinity of the desired position, the impedance controller enhanced by local stiffness con- trol is a better choice. 5.1 The behavior in the null-space The DLR light-weight robots are 7DOF redun- dant manipulators [7]. The control methods presented above are influencing only the TCP behavior of the robot [ll]. The explicit control of the robot motion in the null-space is not addressed in this paper. Results obtained with the DLR light-weight robot, which are related to these topics are reported in [15]. Never- theless, it is worth mentioning the implicit behavior in the null-space, resulting from the presented control methods. Both the impedance and the stiffness con- troller lead to zero stiffness in the null-space. Forces applied in null space direction can move the joints, while keeping the TCP at the same position. The ad- mittance controller is, by contrast, implicitly stiff in the null space. In both cases, the behavior can be changed by explicitly projecting some forces or move- 6 An application: Automatic piston insertion via teaching by demonstra- t ion As an application for the controller structure pro- posed in section 4, the task "teaching and automatic insertion of a piston into a motor block" is presented (fig. 8). Teaching is realized by guiding the robot with the human hand, just using the internal torque sens- ing. It was initially known that the axes of the holes in the motor block were vertically oriented. In the teach- ing phase, high stiffness components for the orienta- tions were commanded, while the translational stiff- ness was set to zero. This allowed only translational movements to be demonstrated by the human opera- tor. In the second phase, the taught trajectory has au- tomatically been reproduced by the robot. In this phase, high values were assigned for the translational stiffness, while the stiffness for the rotations was low. This enabled the robot to compensate for the remain- ing position errors. In this experiment, the assembly was fulfilled automatically four times faster than by the human operator in the teaching phase. For two pistons, the total time for the assembly was 6s.