Force Control with a Kalman Active Observer Applied ... - ISR-Coimbra
Force Control with a Kalman Active Observer Applied ... - ISR-Coimbra
Force Control with a Kalman Active Observer Applied ... - ISR-Coimbra
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Paper<br />
<strong>Force</strong> <strong>Control</strong> <strong>with</strong> a <strong>Kalman</strong> <strong>Active</strong> <strong>Observer</strong> <strong>Applied</strong> in a Robotic Skill<br />
Transfer System*<br />
Rui Cortesão Ý , Ralf Koeppe Þ , Urbano Nunes Ý and Gerd Hirzinger Þ<br />
Abstract: The article describes the design of a force controller for a position-based manipulator <strong>with</strong> arbitrary<br />
dead-time applying <strong>Kalman</strong> <strong>Active</strong> <strong>Observer</strong>s. The design is based on pole placement using discrete state space<br />
theory. An active state variable is introduced to compensate non linearities and parameter variations during the<br />
control process. Only the output of the plant is measured. All the discrete state space is estimated using <strong>Kalman</strong><br />
based techniques. The robustness of the system is accomplished through optimal noise processing embedded in<br />
the control strategy. The design was tested as a force controller in a skill transfer system at the DLR.<br />
Keywords: <strong>Kalman</strong> <strong>Active</strong> <strong>Observer</strong>s, <strong>Force</strong> <strong>Control</strong>, Stochastic Signals<br />
1. Introduction<br />
NO wadays the robotic technology is highly sophisticated.<br />
Many robotic manipulators are specially designed<br />
for a particular task, <strong>with</strong> software and hardware oriented<br />
tools to accomplish a certain goal. If any of the system<br />
components needs to be changed, serious problems can<br />
result to attain the desired performance indexes for a given<br />
task. Robot upgrades, including new robot specifications<br />
<strong>with</strong> new sensors, often imply non-trivial changes in the<br />
design issues, demanding efforts very Human-Power and<br />
time consuming. To overcome these obvious drawbacks,<br />
different strategies ought to be pursued. Modular and compliant<br />
design, <strong>with</strong> a natural plasticity to accommodate different<br />
specifications and set-ups is a key requirement. In<br />
robotics there is still a lack of systematic methodologies to<br />
develop robust intelligent architectures. The bottom layers<br />
of these architectures deal <strong>with</strong> raw data processing, sensor<br />
fusion, and control. The paper focus attention in a force<br />
control module inserted in an intelligent control architecture.<br />
The procedure here presented can be generalised for<br />
other sensors, creating a solid platform to emerge highlevel<br />
intelligent algorithms.<br />
Any task that requires physical contact between the<br />
robot and the environment needs not only a position control,<br />
but also a control of the force exerted by the robot’s<br />
end effector on an object [19]. Typical tasks that require<br />
force control are the classical peg-in-hole insertion, grasping/handling<br />
objects, and deburring. These tasks, usually<br />
slow, are well controlled by a positional servo system. In<br />
many robotic workstations, force feedback is implemented<br />
as an external loop that modifies the reference input of a<br />
position or a velocity servo system [11]. Thus, the desired<br />
impedance of a manipulator is defined, specifying the commanded<br />
position or velocity as a function of the force. A<br />
£ Received February 5, 2000; accepted April 17, 2000. This work was<br />
partially supported by Fundação Ciência e Tecnologia, project number<br />
MENTOR PRAXIS/P/EEI/13141/1998.<br />
Ý University of <strong>Coimbra</strong>, Institute of Systems and Robotics (<strong>ISR</strong>), 3030<br />
<strong>Coimbra</strong>, Portugal. E-mail: cortesao, urbano@isr.uc.pt<br />
Þ German Aerospace Center (DLR), Institute of Robotics and Mechatronics,<br />
82230 Wessling, Germany. E-mail: Ralf.Koeppe,<br />
Gerd.Hirzinger@dlr.de<br />
key requirement for any force-based task is the ability to<br />
regulate the interaction force between the manipulator and<br />
the environment, i.e., the compliance. Large compliance<br />
imply that a position error causes a small change in the<br />
interaction force. Some manipulators use a compliant mechanical<br />
element placed in the manipulator’s wrist, helping<br />
to control forces exerted in the environment. In the literature,<br />
there are essentially two methods used for force<br />
control: implicit force control and explicit force control<br />
[9]. The former consists in controlling the end-effector<br />
forces through actuator commands. This method can only<br />
be used for lightweight direct-drive manipulator arms, or if<br />
the friction in the gear train of the drives is small. The latter<br />
method also known by active force feedback, is based<br />
on force feedback using a wrist force sensor. The main<br />
problem of the classical force control design is its blindness<br />
to the noises present in the whole system. In fact,<br />
the quantification of the noises never enters in the design<br />
issues. Demanding tasks, like peg-in-hole insertion <strong>with</strong> a<br />
tight clearance, can become instable or suffer from residual<br />
oscillations if the noises are not properly handled. In this<br />
context, noises represent not only system and measurement<br />
noises, but also parameter mismatches, non-linear effects,<br />
discretization errors, etc. Basically they represent the difference<br />
between the “model plant” used in the control design<br />
and the “real plant”. Stochastic techniques should be<br />
applied in order to handle the noises in a robust and optimal<br />
way. The proposed force controller is designed in a systematic<br />
way, <strong>with</strong> potential to perform parallel force/velocity<br />
control, on-line impedance matching and robustness between<br />
contact and non-contact states. System and measurement<br />
noise models are obtained in a straightforward way.<br />
State space theory and <strong>Kalman</strong> filter theory are used to design<br />
the controller. The position response of the robot and<br />
its associated dead-time are handled in the force control<br />
design.<br />
2. State Space Design<br />
Surprisingly, most of the force control design available<br />
in the literature is based on classical output feedback using<br />
root locus, Bode, or Nyquist plots [16]. This design philosophy<br />
is very far from the potentialities of the state space<br />
c2000 Cyber Scientific Paper No. 0xxx–YYYY/99/010020-01
desired<br />
velocity<br />
½<br />
×<br />
desired<br />
position<br />
Fig. 1<br />
<br />
×Ì <br />
½·Ì Ô×<br />
end-effector<br />
position<br />
System Plant.<br />
based control. To point out some advantages of state space<br />
control:<br />
¯ Easy conversion between continuous and discrete state<br />
spaces, keeping the same state space representation.<br />
¯ N-dimensional pole placement control. Any desired<br />
poles in the z-plane can be reached in a straightforward<br />
way, using Ackermann’s formula. Thus, an N-<br />
dimensional state space system can be designed to<br />
have any second order behaviour. The other Æ ¾<br />
poles can be “mapped” in Þ ¼, to represent the delay.<br />
¯ The state-space structure is very suited for state observers,<br />
like the <strong>Kalman</strong> observer. Thus, in many<br />
cases it is possible to have full control of the system<br />
reading only the output of the plant.<br />
¯ Arbitrary system dead-times are handled in a systematic<br />
way. There is no need to re-design the synthesis<br />
procedure if the system dead-time changes.<br />
¯ Disturbances, non-linear effects, and parameter variations<br />
can be merged to an extended state, enabling the<br />
overall system to have always a state space representation.<br />
2. 1 System Plant<br />
The position interface of industrial robots normally provides<br />
a Cartesian decoupled behaviour to the robot’s end<br />
effector. For each degree of freedom, the position response<br />
is of the type [10]:<br />
Ô´×µ <br />
à ×<br />
force<br />
½<br />
½·Ì Ô × ×Ì (1)<br />
where the time delay Ì is due to the signal processing of<br />
the cascade controller and has a key role in the discrete state<br />
dimension. Ì Ô is the position response time constant. A<br />
block diagram of the plant for each Cartesian dimension is<br />
given in Figure 1. Ã × represents the stiffness of the system,<br />
i.e.,<br />
½<br />
à ×<br />
<br />
½<br />
à Û<br />
·<br />
½<br />
à <br />
(2)<br />
<strong>with</strong> Ã Û and à the stiffnesses of the wrist sensor and environment<br />
respectively. For a rigid environment, Ã ½,<br />
giving Ã × Ã Û . Hence, the plant model seen by the controller<br />
has this form:<br />
Ô´×µ <br />
à ×<br />
×´½ · Ì Ô ×µ ×Ì (3)<br />
2. 1. 1 Discretization Procedure Given the plant<br />
½<br />
´×µ <br />
×´× · Ô ×Ø (4)<br />
½ µ<br />
the representation in form of Equation (3) is obtained by<br />
substituting<br />
½ Ã × Ì Ô Ô ½ ½Ì Ô Ò Ø Ì (5)<br />
Its equivalent temporal representation is given by<br />
ĐÝ · Ô ½ Ý ½ Ù´Ø Ø µ (6)<br />
where Ý is the plant output (force), and Ù is the plant input<br />
(velocity). Defining the state variables as Ü ½ Ý and Ü ¾ <br />
Ý, Equation (6) can be written in state space form as<br />
<br />
<br />
<br />
<br />
Ü ½ ¼ ½ ܽ<br />
<br />
Ü ¾ ¼ Ô ½ Ü ¾<br />
which is of the form<br />
<br />
·<br />
<br />
¼<br />
½<br />
<br />
Ù´Ø Ø µ (7)<br />
Ü Ü´Øµ ·Ù´Ø Ø µ (8)<br />
Physically, Ü ½ represents the force at the robot’s end effector,<br />
and Ü ¾ its derivative. Discretizing the system of<br />
Equation (8) <strong>with</strong> sampling time and dead-time Ø <br />
´ ½µ · ¼ , <strong>with</strong> ¼ ¼ , the equivalent discrete<br />
time system of Equation (9) is obtained,<br />
¾ ¿ ¾<br />
¿ ¾ ¿<br />
Ü <br />
¨ ½ ¼ ¡¡¡ ¼ Ü ½<br />
Ù <br />
¼ ¼ ½ ¡¡¡ ¼<br />
Ù ½<br />
.<br />
. . .<br />
.<br />
<br />
.<br />
. . . ..<br />
. .<br />
.<br />
.<br />
<br />
Ù ¾<br />
¼ ¼ ¼ ¡¡¡ ½ Ù ¿<br />
<br />
Ù ½ ¼ ¼ ¼ ¡¡¡ ¼ Ù ¾<br />
¾ ¿<br />
·<br />
<br />
<br />
¼<br />
¼<br />
.<br />
¼<br />
½<br />
Ù<br />
½ (9)<br />
<br />
where ¨, ¼ and ½ are given by Equations (10) to (12)<br />
respectively [1].<br />
¼ <br />
¨ ´µ (10)<br />
<br />
¼<br />
¼<br />
½ ´ ¼ µ<br />
´µ Ò (11)<br />
<br />
¼<br />
¼<br />
´µ (12)<br />
From Equation (8), the Laplace Transform of the state transition<br />
matrix ¨´×µ is<br />
¨´×µ ´×Á µ ½ (13)<br />
¿<br />
Using Equation (7),<br />
¾<br />
¼ × · Ô ½<br />
¨´×µ ½ <br />
Computing the matrix inverse,<br />
¾<br />
¨´×µ ½ ×<br />
¼<br />
where its temporal equivalent is<br />
¾<br />
´Øµ <br />
½<br />
¿<br />
½<br />
×´×·Ô ½µ<br />
½<br />
×·Ô ½<br />
½ ½ Ô ½ Ø<br />
Ô ½<br />
¼ Ô ½Ø<br />
(14)<br />
(15)<br />
¿<br />
(16)<br />
Knowing ´Øµ from Equation (16), the computation of the<br />
matrices ¨, ¼ and ½ is straightforward.<br />
c2000 Cyber Scientific Machine Intelligence & Robotic <strong>Control</strong>, 2(2), 19–27 (2000)
2. 2 Pole Placement<br />
Equation (9) is of the form Ü ¨Ü ½ · Ù ½ . The<br />
control design is based on pole placement using feedback<br />
of the state variables. To accomplish a second order system<br />
<strong>with</strong> desired damping and natural frequency Û Ò , the<br />
characteristic polynomial of the closed loop system should<br />
be of form<br />
× ¾ ·¾Û Ò × · ÛÒ ¾ (17)<br />
in the continuous domain. Its discrete representation is<br />
given by<br />
Þ ´Þ ¾ · ½ Þ · ¾ µ (18)<br />
where Þ represents the delay due to the dead-time. The<br />
parameters ½ and ¾ are computed from:<br />
Ô<br />
½ ¾ ÛÒ Ó×´ ½ ¾ Û Ò µ (19)<br />
¾ ¾ÛÒ (20)<br />
Since the system is controllable, the pole placement design<br />
can be easily achieved using Ackermann’s formula. Hence,<br />
the feedback gains Ä are given by<br />
¢<br />
£<br />
Ä ¼ ¡¡¡ ¼ ½ Ï <br />
½<br />
È ´¨µ (21)<br />
where Ï is the reachability matrix,<br />
¢<br />
Ï ¨ ¡¡¡ ¨Ò ½ £ (22)<br />
Ò is the number of states, that is Ò ·¾, and È ´¨µ is<br />
the characteristic polynomial in ¨,<br />
È ´¨µ ¨·¾ · ½¨·½ · ¾¨<br />
(23)<br />
In a real physical system it is impossible to measure all<br />
the states. Furthermore, there is always noise present in<br />
the system due to modeling and quantization, as well as<br />
measurement noises present in the sensors. To minimise<br />
these problems, a <strong>Kalman</strong> <strong>Active</strong> <strong>Observer</strong> was developed<br />
that estimates the state based on the output of the plant. The<br />
concept of <strong>Active</strong> <strong>Observer</strong>s is introduced in [5].<br />
2. 3 <strong>Kalman</strong> Algorithm<br />
There are many textbooks covering the <strong>Kalman</strong> filter<br />
subject. Some well known textbooks include Gelb [8],<br />
Jazwinski [12], Sorenson [18], and Maybeck [14]. In this<br />
paper it is used the Bosic [2] notation for the <strong>Kalman</strong> algorithm,<br />
in which Ü denotes the estimate of the state vector<br />
Ü based on information up to and including time .<br />
A generic system is represented in a state-space form by<br />
Ü ¨ Ü ½ · Ö ½ · (24)<br />
where the state Ü , corrupted by the system noise ,is<br />
extracted from a noisy measurement vector Ý given by<br />
Ý Ü · (25)<br />
The best estimate of the state Ü , Ü , is computed from<br />
Equations (26) to (29), which constitute the Linear <strong>Kalman</strong><br />
Filter for that system [6], [2].<br />
Estimator:<br />
Ü ¨ Ü ½ · Ö ½<br />
·Ã Ý ´¨ Ü ½ · Ö ½ µ℄ (26)<br />
Filter Gain:<br />
Ã È ½ Ì È ½ Ì · Ê ℄<br />
½<br />
(27)<br />
where<br />
È ½ ¨È ½ ¨Ì · É (28)<br />
Error Covariance Matrix:<br />
È È ½ Ã È ½ (29)<br />
É is the system noise matrix. Its values are function of<br />
the properties of the system noise , É Ì .<br />
Ê is the measurement noise matrix and is function of the<br />
measurement noise , Ê Ì . The open loop<br />
and the closed loop system matrices are given by ¨ and<br />
¨ ´¨ ĵ respectively. The vector Ö is the reference<br />
signal. The inclusion of ¨ in the observer Equation (26) is<br />
of capital importance, permitting the reference signal Ö ½<br />
to be the input to the observer as explained in [5].<br />
2. 3. 1 Extended System Following the procedure of [5],<br />
the discrete model given by Equation (9) is represented in<br />
extended form as<br />
¾ ¾<br />
¿ ¾<br />
Ü <br />
¨ ½ ¼ ¡¡¡ ¼ ¼ Ü ½<br />
<br />
<br />
<br />
<br />
¿<br />
Ù <br />
.<br />
.<br />
<br />
Ù ¾<br />
<br />
Ù ½<br />
<br />
Ô <br />
<br />
<br />
·<br />
¼ ¼ ½ ¡¡¡ ¼ ¼<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
. ..<br />
.<br />
.<br />
.<br />
.<br />
¼ ¼ ¼ ¡¡¡ ½ ¼<br />
¼ ¼ ¼ ¡¡¡ ¼ ½<br />
¼ ¼ ¼ ¡¡¡ ¼ ½<br />
¾<br />
¼<br />
½<br />
¼<br />
¿<br />
in which Ù ¼ ½<br />
is given by<br />
<br />
<br />
¿<br />
Ù ½<br />
.<br />
.<br />
Ù ¿<br />
<br />
Ù ¾<br />
<br />
Ô ½<br />
¼<br />
.<br />
Ù <br />
¼<br />
¼ ½ · (30)<br />
<br />
<br />
Ù ¼ ½ Ö ½<br />
¢ Ä Ä<br />
£ Ü ½<br />
Ô ½<br />
<br />
(31)<br />
and the active state Ô was created to perform a feedforward<br />
compensation of unmodeled non-linear terms and unpredicted<br />
disturbances. Its dynamics is:<br />
Ô Ô ½ Û (32)<br />
The stochastic signal Û of Equation (32) gives statistical<br />
information of the Ô evolution in adjacent time transitions.<br />
Qualitatively, the equation only says that the derivative of<br />
Ô is randomly distributed. It gives no explicit information<br />
about the Ô characteristics. Thus, Ô is capable of following<br />
arbitrary variables. Equation (30) can be written as<br />
Ü ¨Ü ½ · Ù ¼ ½ · (33)<br />
This extended discrete time system is not controllable,<br />
since the control input cannot reach the augmented state.<br />
However it is observable, because all states influence the<br />
measured output. The implemented <strong>Kalman</strong> <strong>Active</strong> <strong>Observer</strong><br />
estimates the state of Equation (33), <strong>with</strong> stochastic<br />
c2000 Cyber Scientific Machine Intelligence & Robotic <strong>Control</strong>, 2(2), 19–27 (2000)
noise associated to each of the system variables due to discretization<br />
procedures, matrices truncation, and unknown<br />
disturbances. The full mathematical model seen by the observer<br />
is<br />
and the measured quantity<br />
Ü ¨ Ü ½ · Ö ½ · (34)<br />
Table 1<br />
Dimension Measurement Noise (R)<br />
Ü ¾½ ¢ ½¼ ¾<br />
Ý ¢ ½¼ <br />
Þ ¢ ½¼ ½<br />
Å Ü ¾ ¢ ½¼ <br />
Å Ý ¢ ½¼ <br />
Å Þ ¢ ½¼ <br />
Noise power of the force/torque sensor for all six dimensions.<br />
<strong>with</strong><br />
<br />
Ý Ü · (35)<br />
¢<br />
½ ¼ ¡¡¡ ¼<br />
£ (36)<br />
¨ and ¨ are the augmented open loop and closed loop<br />
matrices respectively, given by<br />
¾<br />
¿<br />
¨ ½ ¼ ¡¡¡ ¼ ¼<br />
¼ ¼ ½ ¡¡¡ ¼ ¼<br />
.<br />
¨ <br />
. . . .. . .<br />
(37)<br />
<br />
¼ ¼ ¼ ¡¡¡ ½ ¼<br />
<br />
<br />
<br />
and<br />
¨ <br />
¾<br />
<br />
<br />
¼ ¼ ¼ ¡¡¡ ¼ ½<br />
¼ ¼ ¼ ¡¡¡ ¼ ½<br />
¨ ½ ¼ ¡¡¡ ¼ ¼<br />
¼ ¼ ½ ¡¡¡ ¼ ¼<br />
.<br />
.<br />
.<br />
. .. .<br />
¼ ¼ ¼ ¡¡¡ ½ ¼<br />
Ä ½ Ä ¾ Ä ¿ ¡¡¡ Ä Ò ½ ¼<br />
¼ ¼ ¼ ¡¡¡ ¼ ½<br />
.<br />
¿<br />
<br />
<br />
<br />
(38)<br />
The Ä components are obtained by Ackermman’s formula<br />
for the non-augmented system of Equation (9), given a desired<br />
closed loop behaviour.<br />
2. 4 <strong>Active</strong> <strong>Observer</strong> vs. Disturbance <strong>Observer</strong><br />
In the <strong>Active</strong> <strong>Observer</strong> context, Equation (32) can track<br />
arbitrary disturbances, coming from parasitic inputs, model<br />
mismatches, noises, etc. The disturbance at time ½ can<br />
go to any value at time <strong>with</strong> a certain probability of occurrence.<br />
The stochastic signal Û is seen by the <strong>Kalman</strong><br />
<strong>Active</strong> <strong>Observer</strong> as white noise, even though it has nothing<br />
to do <strong>with</strong> noise. If the random variable Û results from<br />
the sum of a large number of independent variables acting<br />
together, the central limit theorem states that under fairly<br />
common conditions, Û is normally distributed. Thus, the<br />
assumption of Û as Gaussian white noise makes sense.<br />
The estimation of the active state Ô , i.e. the equivalent<br />
disturbance, is very different from the approach used in<br />
the Disturbance <strong>Observer</strong> (DOB) [7], [17]. In the <strong>Active</strong><br />
<strong>Observer</strong> (AOB) architecture, the observer poles are designed<br />
in an optimal way <strong>with</strong> respect to the system and<br />
measurement noises. A stochastic equation is used to define<br />
the equivalent disturbance. Dynamic assignment of the<br />
observer poles can be done based on the statistical properties<br />
of the disturbance evolution Û . Characterizing the<br />
stochastic variable Û for a certain application is an interesting<br />
problem (in the context of AOB, only the variance<br />
of Û is needed). One example is given in [4]. It is<br />
shown in [4], why Equation (32) has that particular form,<br />
and not another one. The AOB structure imposes a desired<br />
closed-loop behaviour to the overall system, making a<br />
closed-loop active observation of the system. Any detected<br />
mismatches are lumped in a variable referred to the system<br />
input (active state), performing then a global feedforward<br />
compensation. In the DOB, the quantification of the noises<br />
never enters in the design. The disturbance estimation is<br />
based on the inverse model of the system plant [7]. This<br />
approach cannot be generalised for arbitrary plants, since<br />
a dead-time in a system plant cannot be compensated <strong>with</strong><br />
a causal filter. Moreover, zero-pole cancellation may be<br />
needed if the plant inverse is not stable. Also, for Multiple<br />
Input Multiple Output systems (MIMO), matrix inverses<br />
can be numerically unreliable, or even prohibitive. Finally,<br />
the DOB only estimates the equivalent disturbance, while<br />
the AOB estimates the full state, including the equivalent<br />
disturbance.<br />
2. 5 <strong>Kalman</strong> Matrices<br />
The robustness, convergence and performance of the<br />
<strong>Kalman</strong> algorithm is function of the noise covariance matrices<br />
design. The system matrix ¨ and the measurement<br />
matrix are easily obtained from the plant model. However,<br />
critical matrices that influence the behaviour of the<br />
<strong>Kalman</strong> observer, as the mean square error È ¼ , the system<br />
noise É and the measurement noise Ê , are sometimes<br />
difficult to quantify for a given experimental setup. The dynamics<br />
of the observer error is strongly dependent on the<br />
proper assignment of these matrices. Often, poor <strong>Kalman</strong><br />
filter performance is due to bad design of these matrices.<br />
2. 5. 1 Measurement Noise Matrix The measurement<br />
noise is a disturbance referred to the output of the plant that<br />
corrupts the measured quantities. For the <strong>Kalman</strong> design, it<br />
is assumed additive white noise at the output. In this case,<br />
since the system is completely observable, only the output<br />
is read to reconstruct the full state. Thus, Ê is a scalar.<br />
Assuming that the noise variance at the output is not function<br />
of the task, its value can be experimentally calculated.<br />
For a stationary situation, the variance of the measures represents<br />
the noise variance. In our experimental setup, the<br />
noise power for the six-dimensional force components is<br />
given in Table 1.<br />
2. 5. 2 System Noise Matrix Tuning the system noise matrix<br />
É is by far the most interesting challenge that a designer<br />
has to face. In a real system it is very difficult to<br />
quantify the noises inside the system plant, due to mismatches<br />
between real and model plants. Fortunately, <strong>with</strong><br />
the approach used in this paper, this drawback can be overcame.<br />
Since an active state variable was created to compensate<br />
all unmodeled disturbances, only the system noise<br />
of this active state variable must be tuned. Moreover, the<br />
c2000 Cyber Scientific Machine Intelligence & Robotic <strong>Control</strong>, 2(2), 19–27 (2000)
Table 2<br />
à <br />
à <br />
´É ´ÆƵ ½¼ µ ´É ´Æ Ƶ ½¼ ½¾ µ<br />
¼¼<br />
¼¼¿<br />
¼<br />
¼¼¼<br />
¼¼¾ ¾ ¢ ½¼ <br />
.<br />
.<br />
¼¼¾ ¾ ¢ ½¼ <br />
The Steady-State <strong>Kalman</strong> Gains for different É ´Æ Ƶ values.<br />
The <strong>Kalman</strong> gains à have a key role in the estimate update.<br />
Equation (26) shows that the state update, is function of<br />
the output error weighted by the <strong>Kalman</strong> gains. Thus, the bigger<br />
they are, the fastest is the state update. A trade-off should<br />
be achieved to prevent noise amplification.<br />
interpretation of this ”escape equation” is different in the<br />
<strong>Active</strong> <strong>Observer</strong> context, as explained in Section 2. 3. The<br />
steady state poles of the <strong>Kalman</strong> observer are balanced by<br />
É and Ê . For the Ü dimension, a resolution of six decimal<br />
cases in the system state entails a system noise value<br />
of É ´ µ ½¼ ½¾ <strong>with</strong> ½ Æ ½, where Æ is<br />
the number of states. The error in this case is only due<br />
to truncation. To keep the same behaviour for the other<br />
five force dimensions, the relation between É and Ê <br />
should remain constant. Finally, the active state should<br />
be fast enough to track abrupt and non-linear effects that<br />
may occur during the task execution. Table 2 shows the<br />
error gains for different É ´ÆƵ values. Considering<br />
too that É ´ÆƵ ½¼<br />
½¾ , the error gain for the active<br />
state is ¾ ¢ ½¼<br />
. To increase this gain by a factor<br />
of one thousand, É ´ÆƵ must increase by a factor<br />
of one million. A trade-off should be achieved between<br />
the É ´ÆƵ value, and the sensitivity to noise. The bigger<br />
É ´ÆƵ is, the faster the <strong>Kalman</strong> observer is, but the<br />
sensitivity to noise also increases. On-line adaptation of the<br />
É matrix could be done, using the algorithm described in<br />
[4].<br />
In our experimental setup, the É matrix for the first<br />
(nominal) dimension Ü is given by<br />
¾<br />
½¼ ½¾ ¡¡¡ ¼ ¼<br />
¼ ¡¡¡ ¼ ¼<br />
É<br />
.<br />
´ Ü µ<br />
.<br />
. ..<br />
. .<br />
. .<br />
(39)<br />
<br />
¼ ¡¡¡ ½¼ ½¾ ¼ <br />
¼ ¡¡¡ ¼ ½¼ ¿<br />
For the second dimension Ý , the É matrix is<br />
É ´ Ý µÉ ´ Ü µÊ ´ Ý µÊ ´ Ü µ (40)<br />
Analogous equations are obtained for the other<br />
force/torque dimensions.<br />
2. 5. 3 Mean Square Error Matrix The mean square error<br />
matrix È is very important in the transient response of the<br />
<strong>Kalman</strong> Filter. Its initial value should reflect as accurate<br />
as possible the mean square error of the first estimate. If<br />
the first state estimate is Ü ¼ ¼, and assuming that the<br />
robot starts <strong>with</strong> no contact, the estimation error is small<br />
for all the state variables, except for the active state. The<br />
higher É ¼ is, the higher È ¼ should be. È ¼ should be greater<br />
than É ¼ , to prevent ”valleys” in the convergence of È .<br />
An adequate value is È ¼ ½¼ É ¼ . Equation (39) shows<br />
that for the first dimension Ü , É ¼´ Ü µ ÑÜ ½¼<br />
. In<br />
Parameter<br />
Ì Ô<br />
Ì <br />
Value<br />
¼¼¿¾ [s]<br />
¼¼¼ [s]<br />
<br />
¼¼¼ [s]<br />
Ã Û ¿ [N/mm] (x lin.)<br />
¿ [N/mm] (y lin.)<br />
¼ [N/mm] (z lin.)<br />
½¼¼ [Nm/rad] (x rot.)<br />
½¼¼ [Nm/rad] (y rot.)<br />
½¼¼ [Nm/rad] (z rot.)<br />
Table 3 Technology parameters of the Manutec robot, and the<br />
force/torque sensor stiffness.<br />
our experiments, it was used È ¼ ½¼ É ¼´ Ü µ ÑÜ , i.e.,<br />
È ¼´ Ü µ ½¼<br />
. The È ¼ matrix for the Ü dimension is<br />
thus given by<br />
¾<br />
¿<br />
½¼ ¼ ¡¡¡ ¼ ¼<br />
¼ ½¼ ¡¡¡ ¼ ¼<br />
È ¼´ Ü µ<br />
.<br />
. . .. . .<br />
(41)<br />
<br />
¼ ¼ ¡¡¡ ½¼ ¼ <br />
¼ ¼ ¡¡¡ ¼ ½¼ <br />
For the Ý dimension, È ¼ is<br />
È ¼´ Ý µÈ ¼´ Ü µÊ ´ Ý µÊ ´ Ü µ (42)<br />
Analogous equations are obtained for the other force dimensions.<br />
The global control scheme can be seen in Figure<br />
2. The disturbance reference is a virtual input, representing<br />
all plant mismatches referred to the system input.<br />
The active state of the <strong>Kalman</strong> observer enables on-line estimation<br />
of the disturbance, providing a feedforward compensation<br />
action.<br />
3. Experimental Setup<br />
Experimental tests were done in a robotics testbed at the<br />
DLR. The main components of this workstation are:<br />
¯ A Manutec R2 industrial robot <strong>with</strong> a Cartesian position<br />
interface running at Ñ×, <strong>with</strong> an input dead-time<br />
of samples equivalent to ¼ Ñ×.<br />
¯ A multi-processor host computer running UNIX, enabling<br />
to compute the controller in each time step.<br />
¯ A DLR lab end-effector which consists of a compliant<br />
force/torque sensor providing force/torque measurements<br />
every Ñ×. The technology data of the robot<br />
and the stiffness of the DLR force sensor are summarized<br />
in Table 3. The manipulator compliance is<br />
lumped in the force sensor.<br />
¯ Two cameras for stereo vision mounted on the endeffector<br />
and a pneumatic gripper holding a steel peg of<br />
¿¼ ÑÑ length. The peg is used to exert forces on the<br />
top and side of a heavy steel block. The environment<br />
is very stiff (Ã × Ã Û ). The vision cameras and the<br />
pose sense are used for data fusion in a skill transfer<br />
system [13]. A picture of the experimental setup is<br />
depicted in Figure 3.<br />
3. 1 Simulation Results<br />
In this section some simulation results for the Ý force<br />
component are presented. The goal of these simulations is<br />
to observe the Ý force data for a step input. The contact<br />
c2000 Cyber Scientific Machine Intelligence & Robotic <strong>Control</strong>, 2(2), 19–27 (2000)
<strong>Force</strong><br />
Reference<br />
Ä ½<br />
È<br />
· ·<br />
Velocity<br />
Reference<br />
System Noise<br />
Statistics<br />
Measurement<br />
Noise Statistics<br />
Virtual<br />
Disturbance<br />
Reference<br />
Ä ½<br />
·<br />
È<br />
·<br />
D<br />
A<br />
Velocity<br />
Plant<br />
à ×<br />
×´½·Ì Ô×µ ×Ì <strong>Force</strong><br />
A<br />
D<br />
KALMAN<br />
ACTIVE<br />
OBSERVER<br />
h<br />
Pole Placement<br />
Ä Ü<br />
h<br />
State Estimation<br />
´Üµ<br />
Disturbance Estimation (<strong>Active</strong> State)<br />
Fig. 2<br />
Global <strong>Control</strong> Scheme for each force dimension.<br />
object is a heavy steel block. The end-effector is initially in<br />
free space. A damping factor Ò ½was put in the design<br />
guaranteeing the quickest response <strong>with</strong>out overshoot. The<br />
system time constant was chosen to be ½¼ Ì Ô where<br />
Ì Ô ¼¼¿¾ × is the plant time constant (see Equation (3)),<br />
and the nominal stiffness Ã × ¿ ÆÑÑ for the Ý direction.<br />
It should be pointed out that can be specified to<br />
have another value, enabling the system to have a faster or<br />
slower response. The control algorithm and the dynamic<br />
behaviour of the output force remain the same. The fastest<br />
response is only limited by the maximum input velocity<br />
that the robot can handle.<br />
During the first seconds no desired force is given. The<br />
robot is not moving ( ¼ Æ). Then, a desired force<br />
of Ý ½¼ Æ is applied. The end-effector starts to move<br />
along the Ý direction <strong>with</strong> a constant velocity till it reaches<br />
contact. The contact appears at seconds. After contact,<br />
the force response should have the desired second-order<br />
behaviour. Finally a desired force of Æ is put at ½<br />
seconds. Figure 4 shows the results for underestimated (a)<br />
and overestimated (b) stiffness. Equations (5) establish the<br />
relation between the design parameter ½ and the model<br />
stiffness Ã × . It can be inferred that underestimated stiffness<br />
originates a step response <strong>with</strong> undershoot, and overestimated<br />
stiffness a step <strong>with</strong> overshoot.<br />
Fig. 3<br />
Experimental Setup<br />
3. 2 Experimental Results<br />
In the first experiment (Figure 5.a) the design stiffness<br />
was considered as Ã × ¾, i.e., ½´Öе <br />
½¾ ½´ÑÓе. In the second experiment (Figure 5.b)<br />
Ã × ¿¼. Hence, theoretically there is a match (see Table<br />
3) between the designed and real ½ parameter. The<br />
simulation results of Section 3. 1 are consistent <strong>with</strong> the<br />
experimental results. A detailed look of the force curve for<br />
the matched situation reveals that the curve suffers from<br />
the same pathology as the one obtained in the first experiment.<br />
The real Ã × stiffness for the Ý direction is a bit<br />
bigger than the nominal value referred in Table 3. Experiments<br />
<strong>with</strong> this force control setup can be used to obtain<br />
better values for the stiffness.<br />
4. Noise-Based Switch <strong>Control</strong><br />
An important topic related <strong>with</strong> force control is the analysis<br />
of the contact transition for a manipulator <strong>with</strong> a contact<br />
sensor [15]. Generally, when establishing contact, the<br />
manipulator and the target object have different velocities.<br />
Thus, despite the force feedback, a force overshoot<br />
in the transient process is unavoidable, and may be high.<br />
To accomplish robustness between contact and non-contact<br />
states, a noise-based control strategy was followed. If the<br />
signal to noise ratio at the plant output ´ËÆ µ «, where<br />
« is an acceptable threshold, it is assumed that the robot<br />
is in free space for that dimension. In this case, it makes<br />
no sense to perform any force control. The state feedback<br />
is switched off, that is, the system is running in open loop.<br />
The transfer function is given by Equation (3). A constant<br />
velocity is reached for a step reference. It should be highlighted<br />
that the cruise velocity is function of the expected<br />
stiffness for the free-contact direction. In Figure 6, Ä ½ has<br />
a key role in the approach phase. The bigger the stiffness<br />
is for one force dimension, the smaller Ä ½ is, giving a robust<br />
velocity approach before contact. Once in contact, the<br />
state feedback is switched on, and Ä ½ prevents steady state<br />
error to a step input. In the simulations as well as in the<br />
experiments « ¾. Hence, a signal to noise ratio less than<br />
c2000 Cyber Scientific Machine Intelligence & Robotic <strong>Control</strong>, 2(2), 19–27 (2000)
2<br />
½ ½¿ ½<br />
2<br />
½ ¾<br />
0<br />
Reference<br />
0<br />
Reference<br />
-2<br />
-2<br />
Newton<br />
-4<br />
Newton<br />
-4<br />
-6<br />
-6<br />
-8<br />
-8<br />
-10<br />
-10<br />
-12<br />
0 5 10 15 20<br />
time (s)<br />
-12<br />
0 5 10 15 20<br />
time (s)<br />
(a)<br />
(a)<br />
2<br />
½ ½ ½¿<br />
2<br />
½ ¿¼<br />
0<br />
Reference<br />
0<br />
Reference<br />
-2<br />
-2<br />
Newton<br />
-4<br />
Newton<br />
-4<br />
-6<br />
-6<br />
-8<br />
-8<br />
-10<br />
-10<br />
-12<br />
0 5 10 15 20<br />
Fig. 4<br />
time (s)<br />
(b)<br />
Simulation results for (a) underestimated stiffness, ½´Öе <br />
½¿ ½´ÑÓе, and (b) overestimated stiffness ½´Öе <br />
½´ÑÓе½¿.<br />
¾ means that the end-effector is in free space.<br />
5. Skill Transfer System<br />
The force controller was applied for all 6 DOF in a skill<br />
transfer system to perform the peg-in-hole task. Figure 6<br />
gives an overview of the skill transfer system. The main<br />
goal is the Human-Robot skill transfer of the peg-in-hole<br />
task [13]. The task was previously performed by a human<br />
where the forces, torques and velocities of the peg were<br />
recorded function of its pose. The robot should be able<br />
to perform the same task in a robust way after the skill<br />
transfer. The force module is an important part of the system,<br />
since it tries to output the desired force/velocity to<br />
the peg, given a certain geometric information (pose and<br />
vision data). This force controller can easily handle two<br />
reference inputs (force), and Ú (velocity). The natural<br />
constraints imply complementarity of the reference signals,<br />
i.e., when is different than zero, Ú is almost zero, and<br />
vice-versa. When Ú it means that the robot is in free<br />
space. Thus, its behaviour is to follow the reference velocity<br />
(open loop control), as was already explained. On the<br />
contrary, when Ú the robot is in contact. The sum<br />
of the reference signals corresponds in this case to a natural<br />
switch between force and velocity control. Composing<br />
-12<br />
0 5 10 15 20<br />
Fig. 5<br />
time (s)<br />
(b)<br />
Experimental data of the force controller <strong>with</strong>: (a) underestimated<br />
stiffness, Ã × ¾ and (b) nominal matching, Ã × ¿¼. These<br />
data were obtained directly from the force sensor <strong>with</strong>out any filtering.<br />
The filtering and estimation is done in the <strong>Kalman</strong> <strong>Active</strong><br />
<strong>Observer</strong>.<br />
velocity and force references can be seen in [3].<br />
6. Conclusions<br />
A systematic procedure was developed to design an explicit<br />
force controller for manipulators <strong>with</strong> arbitrary deadtime.<br />
The discrete closed loop system has always a secondorder<br />
behaviour defined by the the desired damping factor<br />
and natural frequency Û Ò . Guidelines to quantify the<br />
<strong>Kalman</strong> matrices were referred. The introduction of an<br />
active state enables the separation between truncation errors<br />
and unknown errors in a natural way. Hence, the noise<br />
analysis can be decoupled and easily handled. The active<br />
state is a random variable that ”tracks” the disturbances due<br />
to mismatches between real and model plants, providing a<br />
global feedforward compensation action. Simulation results<br />
showed good performance of the force controller for<br />
the Ý dimension. The controller was successfully tested in<br />
a Skill Transfer System at the DLR.<br />
References<br />
[1] K. J. Åström and B. Wittenmark. Computer <strong>Control</strong>led Systems:<br />
Theory and Design. Prentice Hall, 1997.<br />
[2] S. M. Bosic. Digital and <strong>Kalman</strong> Filtering. Edward Arnold, 1979.<br />
c2000 Cyber Scientific Machine Intelligence & Robotic <strong>Control</strong>, 2(2), 19–27 (2000)
Skill Transfer<br />
Module<br />
Ú <br />
Vision 1<br />
ANN<br />
Ó<br />
Ú Ó<br />
Fusion<br />
Module<br />
Ú <br />
Ú <br />
ANN<br />
ANN<br />
Vision 2<br />
Pose<br />
Desired<br />
Compliant<br />
Motion<br />
·<br />
È<br />
Robot<br />
Ü<br />
DLR<br />
<strong>Force</strong> Sensor<br />
<br />
·<br />
Ä ½<br />
State Feedback<br />
<strong>Kalman</strong><br />
<strong>Active</strong><br />
<strong>Observer</strong><br />
Ó<br />
Ú Ó<br />
<strong>Force</strong>/Velocity <strong>Control</strong>ler<br />
Fig. 6<br />
Skill Transfer System giving emphasis in the <strong>Force</strong>/Velocity <strong>Control</strong>ler.<br />
[3] S. Chiaverini and L. Sciavicco. The parallel approach to<br />
force/position control of robotic manipulators. In IEEE Trans. on<br />
Robotics and Automation, volume 9, pages 361–373, 1993.<br />
[4] R. Cortesão and R. Koeppe. Sensor fusion for human-robot skill<br />
transfer systems. In RSJ Int. J. on Advanced Robotics. Special Issue<br />
on ”Selected Papers From IROS’99”, October 2000. (to appear).<br />
[5] R. Cortesão, R. Koeppe, U. Nunes, and G. Hirzinger. Explicit force<br />
control for manipulators <strong>with</strong> active observers. In IEEE Int. Conf.<br />
on Intelligent Robots and Systems, (IROS’2000), Japan, 2000. (to<br />
appear).<br />
[6] R. Cortesão, F. Millela, and U. Nunes. Joints robust position control<br />
using linear kalman filters. In Int. Workshop on Advanced Motion<br />
<strong>Control</strong> (AMC’98), pages 417–422, Portugal, 1998.<br />
[7] K. Fujiyama, M. Tomizuka, and R. Katayama. Digital tracking controller<br />
design for cd player using disturbance observer. In Int. Workshop<br />
on Advanced Motion <strong>Control</strong> (AMC’98), pages 598–603, Portugal,<br />
1998.<br />
[8] A. C. Gelb. <strong>Applied</strong> Optimal Estimation. The MIT Press, 1973.<br />
[9] D. Gorinevsky, A. Formalsky, and A. Schneider. <strong>Force</strong> <strong>Control</strong> of<br />
Robotic Systems. CRC Press, 1997.<br />
[10] G. Hirzinger. Robot-teaching via force-torque-sensors. In Proc. of<br />
the Sixth European Meeting on Cybernetics and Systems Research,<br />
1982.<br />
[11] G. Hirzinger. Sensory feedback in robotics state-of-the-art in research<br />
and industry. In Preprints of the 10th World IFAC Congress<br />
on Automatic <strong>Control</strong>, volume 4, pages 204–210, 1987.<br />
[12] A. Jazwinski. Stochastic Processes and Filtering Theory. Academic<br />
Press, 1970.<br />
[13] R. Koeppe and G. Hirzinger. Sensorimotor compliant motion from<br />
geometric perception. In Proc. of the IEEE Int. Conf. on Intelligent<br />
Robots and Systems, (IROS’99), volume 2, pages 805–811, Korea,<br />
1999.<br />
[14] P. Maybeck. Stochastic Models, Estimation, and <strong>Control</strong>, volume 1.<br />
Academic Press, 1979.<br />
[15] J. Mills and D. Lokhorst. Stability and control of robotic manipulators<br />
during contact/noncontact task transition. In IEEE Trans. on<br />
Robotics and Automation, volume 9, pages 148–163, 1993.<br />
[16] C. Natale, R. Koeppe, and G. Hirzinger. A systematic design procedure<br />
of force controllers for industrial robots. In IEEE Trans. on<br />
Mechatronics, June 2000. (to appear).<br />
[17] Y. Oh, W. K. Chung, and I. H. Suh. Disturbance observer based<br />
robust impedance control of redundant manipulators. In Proc. of<br />
the IEEE Int. Conf. on Intelligent Robots and Systems, (IROS’99),<br />
volume 2, pages 647–652, Korea, 1999.<br />
[18] H. Sorenson. <strong>Kalman</strong> filtering techniques. In Advances in <strong>Control</strong><br />
Systems. Academic Press, 1966.<br />
[19] S. Yoshikawa. Foundations of Robotics: Analysis and <strong>Control</strong>. MIT<br />
Press, 1990.<br />
Biographies<br />
Rui Cortesão was born in <strong>Coimbra</strong>, Portugal, in 1971. He received<br />
the B.Sc. degree in Electrical Engineering, and the M.Sc.<br />
degree in Systems and Automation from the University of <strong>Coimbra</strong><br />
in 1994 and 1997 respectively. He is currently pursuing the<br />
Ph.D. degree in Electrical Engineering at the University of <strong>Coimbra</strong>,<br />
<strong>with</strong> the DLR (German Aerospace Center) collaboration. He<br />
joined the Electrical Engineering Department of the University<br />
of <strong>Coimbra</strong> in 1998, where he is currently a Teaching Assistant.<br />
He is a researcher of the Institute of Systems and Robotics (<strong>ISR</strong>).<br />
His research interests include data fusion, control, fuzzy systems,<br />
neural networks, and in general, intelligent architectures applied<br />
to robots.<br />
Ralf Koeppe received the ”Master of Science” degree in Mechanical<br />
Engineering from Portland State University, Oregon in<br />
1989, and the ”Diplom-Ingenieur” in Mechanical Engineering<br />
c2000 Cyber Scientific Machine Intelligence & Robotic <strong>Control</strong>, 2(2), 19–27 (2000)
form University of Stuttgart, Germany in 1992. Since 1992 he is<br />
<strong>with</strong> the DLR (German Aerospace Center) Institute of Robotics<br />
and Mechatronics, Germany. He has been leading research<br />
projects in Neuro-<strong>Control</strong> since 1994, and directing research in<br />
High-Fidelity Telepresence and Teleaction <strong>with</strong>in the DFG Collaborative<br />
Research Center (SFB) 453 since 1999. In 1996 he<br />
was visiting researcher at Yoshikawa’s Robot Laboratory at Kyoto<br />
University, Japan. He is currently completing his Ph.D. in<br />
Mechanical Engineering as an external candidate of the Institute<br />
of Robotics at ETH Zürich in Switzerland <strong>with</strong> the dissertation<br />
‘Sensorimotor Skill Transfer of Compliant Motion’.<br />
Urbano Nunes received the B.Sc. and Ph.D. degrees both in<br />
Electrical Engineering from the University of <strong>Coimbra</strong>, in 1983<br />
and 1995, respectively. He joined the Electrical Engineering Department<br />
of the University of <strong>Coimbra</strong> in 1983, where he is currently<br />
an Assistant Professor. He is a researcher of the Institute<br />
of Systems and Robotics (<strong>ISR</strong>), where in the <strong>Coimbra</strong> site<br />
is the coordinator of the Intelligent <strong>Control</strong> & Robotics Laboratory<br />
(IC&R). He is a member of the editorial board of the Journal<br />
on Machine Intelligence & Robotic <strong>Control</strong>, and a member of the<br />
IFAC Technical Committee TC/MIL on Low Cost Automation<br />
(1999 to 2002), IEEE, SIRES, and AAATE. His research interests<br />
include control theory & application, intelligent control, robotics,<br />
human-oriented robotics, and industrial automation.<br />
Gerd Hirzinger received the ”Dipl.-Ing.” degree and the doctor’s<br />
degree from the Technical University of Munich, in 1969<br />
and 1974, respectively. In 1969 he joined DLR (the German<br />
Aerospace Center) where he first worked on fast digital control<br />
systems. In 1976 he became head of the automation and robotics<br />
laboratory of the DLR. Since 1991 he has been Director of the<br />
DLR Institute of Robotics and Mechatronics. He is IEEE fellow,<br />
vice program chairman of the IEEE Conference on Robotics<br />
and Automation 1994, and program chairman of IROS (Intelligent<br />
Robot Systems Conference) 1994. For more than seven years<br />
he has been chairman of the German Council on Robot <strong>Control</strong>.<br />
c2000 Cyber Scientific Machine Intelligence & Robotic <strong>Control</strong>, 2(2), 19–27 (2000)