You are on page 1of 14

DYNAMIC MODELING OF ROBOTS USING

RECURSIVE NEWTON-EULER TECHNIQUES


Wisama Khalil

To cite this version:


Wisama Khalil. DYNAMIC MODELING OF ROBOTS USING RECURSIVE NEWTON-EULER
TECHNIQUES. ICINCO2010, Jun 2010, Portugal. �hal-00488037�

HAL Id: hal-00488037


https://hal.archives-ouvertes.fr/hal-00488037
Submitted on 1 Jun 2011

HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est


archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents
entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non,
lished or not. The documents may come from émanant des établissements d’enseignement et de
teaching and research institutions in France or recherche français ou étrangers, des laboratoires
abroad, or from public or private research centers. publics ou privés.
DYNAMIC MODELING OF ROBOTS USING RECURSIVE
NEWTON-EULER TECHNIQUES

Wisama KHALIL
Ecole Centrale de Nantes, IRCCyN UMR CNRS 6597, 1 Rue de la Noë, 44321 Nantes, France
Wisama.khalil@irccyn.ec-nantes.fr

Keywords: Dynamic modelling, Newton-Euler, recursive calculation, tree structure, parallel robots, flexible joints,
mobile robots.

Abstract: This paper present the use of recursive Newton-Euler to model different robotics systems. The main
advantages of this technique are the facility of implementation by numerical or symbolical programming
and providing models with reduced number of operations. In this paper the inverse and direct dynamic
models of different robotics systems will be presented. At first we start by rigid tree structure robots, then
these algorithms will be generalized for closed loop robots, parallel robots, and robots with lumped
elasticity. At the end the case of robots with moving base will be treated.

1 INTRODUCTION closed loop robots. Its use facilitates the calculation


of the base inertial parameters of robots (Gautier and
The dynamic modelling of robots is an important Khalil, 1988, Khalil W., Bennis F., 1994, Khalil and
topic for the design, simulation, and control of Bennis, 1995).
robots. Different techniques have been proposed and
used by the robotics community. In this paper we 2.1 Geometric description of tree
show that the use of Newton-Euler recursive structure robots
technique for different robotics systems is easy to
develop and programme. The proposed algorithm A tree structure robot is composed of n+1 links
can be extended to many types of structures; serial, and n joints. Link 0 is the base and link n is a
tree structure, closed, parallel, with a fixed base or terminal link. The joints are either revolute or
with moving platform. The same technique can be prismatic, rigid or elastic. The links are numbered
used for robots with lumped elasticity or flexible consecutively from the base, link 0, to the terminal
links. links. Joint j connects link j to link a(j), where a(j)
In section 2 we will recall the method used to denotes the link antecedent to link j. A frame Ri is
attached to each link i such that (Figure 1):
describe the kinematics of the structure, and then in
section 3 we present the inverse and the direct • zi is along the axis of joint i;
dynamic modeling of tree structure rigid robots • xi is taken along the common normal between
which are considered as the base methods. The zi and one of the succeeding joint axes, which
following sections present the generalization to the are fixed on link i.
other systems. zj zi

j
xj
j dj bj
rj k zk
2 DESCRIPTION OF THE Link j
j

KINEMATICS OF ROBOTS uj

Link i Link k

The geometry of the structures will be described xi

using the Modified Denavit and Hartenberg method


as proposed in (Khalil and Kleinfinger, 1986). This
method can take into account tree structures and Figure 1: Geometric parameters for a link i.
Assuming that a cut joint is numbered k (where
In general the homogeneous transformation k=n+1,…, L) and that the links connected by joint k
matrix iTj, which defines the frame Rj relative to are numbered i and j (where i and j <n) the frames
frame Ri is obtained as a function of six geometric will be defined as follows (Figure 2):
parameters (j, bj, j, dj, j, rj). Thus iTj is obtained - frame Rk is defined fixed on link j such that
as: a(k)=i, the axis zk is along the axis of joint k, and xk
is along the common normal between zk and zj. The
iT
j = Rot(z, j) Tran(z, bj) Rot(x, j) Tran(x, dj) matrix iTk will be determined using the general
Rot(z, j) Tran(z, rj) parameters k, bk, k, dk, k, rk.
- frame Rk+B is aligned with Rk that is to say it is
fixed on link j, but a(k+B)= j. The geometric
After developing, this matrix can be partitioned
parameters defining Rk+B are constant, we note that
as follows:
rk+B and k+B are zero since xk+B is normal to zj.
iRj Pj 
i
i
Tj    (1)
zk zk+B
 01x3 0 
Where R defines the (3×3) rotation matrix and P xk+B
defines the (3×1) vector defining the position of the xi zj
origin of frame j with respect to frame i. zi xk
If xi is along the common normal between zi and
zj , the parameters jand bj will be equal to zero. Link i Link j
The joint variable of joint j is denoted by:

q j   j j   j rj
a(k+B)=j
where j = 0 if joint j is revolute, j = 1 if joint j a(k)=i
is prismatic, and   = 1 – . We set  = 2 to define a
j j
frame Rj fixed with respect to frame a(j). In this
case, qj and   are not defined.
j
The serial structure is a special case of a tree
structure where a(j)=j-1, j=0, and bj =0 for all
j=1,..,n. Figure 2: Frames of a cut joint k.

2.2 Description of closed loop structure The joint variables are denotes as:

The system is composed of L joints and n + 1 q  qa 


links, where link 0 is the fixed base and L > n. The q   tr  , q tr    (2)
number of independent closed loops is equal to:  qc  q p 

B= L–n • qtr vector containing the tree structure joint


variables;
The joints are either active (motorized) or . qa vector containing the N active joint
passive. The number of active joints is denoted N. variables;
The position and orientation of all the links can be
• qp vector containing the p =n–N passive joint
determined as a function of the active joint variables.
To determine the geometric parameters of a variables of the equivalent tree structure;
mechanism with closed chains, we proceed as • qc vector containing the B variables of the cut
follows: joints.
a) Construct an equivalent tree structure having
n joints by virtually cutting each closed chain at one Only the N active variables qa are independent.
of its passive joints. Define the geometric Since Rk and Rk+B are aligned, the geometric
parameters of the tree structure as given in section constraint equations for each loop, which can be
2.1. used to calculate the passive joint variables in terms
b) For each cut joint define two supplementary of the active joint variables, can be written as:
frames on one of the links connected by this joint.
k+BT ... iTk = I4 (3)
j
    A  Γ - H
1
q (8)
The kinematic constraint equations are obtained
by using the fact that the screw of frame k is equal to The calculation of the Lagrange equations for
that of frame k+B: systems with big number of degrees of freedom
0
k  0 k+B using developed symbolic methods is time
(4) consuming, and the obtained model will need (4) more
J k q b1  J k+Bq b2
time to execute with respect to that of recursive
methods. The recursive Newton-Euler algorithms
j 6 1 kinematic screw vector of frame j, have been shown to be an excellent tool to model
given by: rigid robots (Khalil and Kleinfinger, 1987, Khalil
T and Creusot, 1987, Khosla, 1987). In (Hollerbach,
j   VjT ω jT  (5)
1980) an efficient recursive Lagrange algorithm is
Vj linear velocity of the origin of frame Rj, presented but without achieving better performances
ω j angular velocity of frame j, than that of Newton-Euler.
q b1 joint velocities from the base to frame k, The Newton-Euler equations giving the external
through branch 1, forces and moments on a link j about the origin of
frame j are written as:
q b2 joint velocities from the base to frame k
through branch 2.   j
 
 j ω  j ω j  j MS j 

j
j  j  j j  (9)

 jω  j J jω  
j

 j j j 
where
3 DYNAMIC MODELING OF TREE  jF 
STRUCTURE ROBOTS j
j   j j  (10)
 M j 
ω j the angular velocity of link j;
 the linear acceleration of the origin of
V
3.1 Introduction j
frame j;
The most common in use methods to calculate j total external wrench on link j;
the dynamic models are the Lagrange equations and Fj total external forces on link j;
the Newton Euler Equations (Craig 1986, Khalil and M j total external moments on link j about Oj;
Dombre 2002, Angeles 2006).  j 6  6 inertia matrix of link j:
The Lagrange equation is given as:  M jI 3  j MSˆ j 
j
j   j  (11)
T T  MSˆ j j
J j 
d  L   L  (6)
  
dt  q   q  Where Mj, MSj and Jj are the standard inertial
parameters of link j. They are respectively, the mass,
where  is the joint torques and forces, L is the
the first moments, and the inertia matrix about the
Lagrangian of the robot defined as the difference
origin.
between the kinetic energy E and the potential
energy U of the system : L = E – U. After
developing we obtain: 3.2 Calculation of the Inverse dynamics
using recursive NE algorithm
  = A(q)q
 + H (q,q ) (7)
The algorithm consists of two recursive
computations (Luh, Walker and Paul, 1980):
where A is the inertia matrix of the robot and H forward recursion and backward recursion. The
is the Coriolis, Centrifuge and gravity torques. forward equations, from link 1 to link n, compute the
Solving the previous equation to find in terms link velocities and accelerations and consequently
of (q,q , q ) is known as the inverse dynamic
the dynamic wrench on each link. The backward
problem, and solving it to obtain q  in terms
equations, from link n to the base, provide the
of (q,q , Γ) is known as the direct dynamic model. reaction wrenches on the links and consequently the
The inverse dynamic model is obtained by joint torques.
substituting (q,q , q) into (7), whereas the direct
This method gives the joint torques in terms of
model needs to inverse the inertia matrix. the joint positions, velocities and accelerations
without explicitly computing the matrices A and H. . .
That is to say the algorithm will be denoted by: These equations are initialized by 0 = 0, 0 = 0, V0
= –g, 0U0 = 0, with g is the acceleration of gravity.
 = NE(q,q , q
, fe , m e ) (12) .
Where fe and me are the external forces and Initialising the linear acceleration V0 by –g will take
moments of the links of the robot on the automatically the effect of gravity forces on all the
environment. links of the structure.
The forward recursive equations are based on the fj–fej
following equations (Khalil and Dombre 2002): –mk3 Link
k3
Link j
j
j  j i i i  q j j a j (13) Lk3
–fk3
Link i Oj
Ok3 –mk2
Lk2
j   j i 
   j   
q j ja j (14) Sj
j i i j –fk2
Lk1 Gj
Ok2
mj–mej Link

 
k2
 j R  i ω  i ω  i P   2 ( j ω  q j a )  Ok1
j
γj  
i  i i j  j i j j
 (15) –mk1
  j
ω  
q j
a  Link
k1
 j i j j 
–fk1

where Figure 3: Forces and moments acting on a link j


j a is the (6x1) column matrix given as :
j
The backward recursive equations are deduced from
j a =[ 0 0  0 0   ]T (16)
j j j the resultant forces and moments on link j around
j
i and the screw transformation matrix is: the origin of link j (Figure 3).
 j R  j R i i Pˆ j 
j
i   i
03x3
j
Ri 
 (17)
j
f j  j j  
k
k
jT k f k  j fej (25)

The forward algorithm is given for j=1,…, n, Where a(k)=j,


with i = a(j), as follows:
j  = jR i 
i i i (18) The backward equations can be calculated for
. j j=n,…,1:
j = j + –
j i  j qj aj (19) jf = jF + jf
j j ej (26)
j. j i. – .. j j . j jm = jM + jm (27)
j = Ri i +  j (qj aj + i × qj aj) (20) j j ej
. . if = iR jf (28)
jV = jR (iV +iU iP )+  (.. j j . j j j j
j i i i j j qj aj + 2 i × qj aj) if = if + if (29)
ei ei j
(21)
imei = imei + iRj jmj + iPj x ifj (30)
.
jF = M jV + jU jMS
j j j j j (22) – .. . .
. j =(j jfj+j jmj)Tjaj + Ia j qj+ Fsj sign(qj)+ Fvj qj
jM = jJ j . j j j j j
j j j + j × ( Jj j) + MSj × Vj (23) (31)
with Where:
^.
jU = j + j ^ j
^ fj and mj are the reaction forces and moments of link
j j j j a(j) on link j respectively, Iaj is the inertia of the
and where aj is the unit vector along the zj axis
rotor and transmission gears of the motor of joint j,
which is the axis of joint j. Fsj and Fvj are the coulomb and viscous friction
The matrix ŵ defines the 3×3 vector product matrix parameters respectively, jfej and jmej are the external
associated to the (3×1) vector W such that:
forces and moments of link j on the environment.
 0 - wz wy  This algorithm is easy to program numerically or
  symbolically. The computational cost is linear with
ˆ =  wz
w 0 -wx 
(24) the number of degrees of freedom of the robot. To
 - wy wx 0  reduce the number of operations of the calculation of

this model the base inertial parameters can be used
wv  w
ˆ v instead of the standard inertial parameters and the
technique of customized symbolic method can be Moreover, we can take advantage of the fact that the
applied (Khosla 1986 , Khalil and Kleinfinger 1987, inertia matrix A is symmetric.
Khalil and Creusot 1997).
3.3.2 Recursive NE computation of the
3.3 Computation of the direct dynamic direct dynamic model
model
This method is based on the recursive Newton-
The computation of the direct dynamic model is Euler equations and does not use explicitly the
employed to carry out simulations for the purpose of inertia matrix of the robot (Armstrong 1979,
testing the robot performances and studying the (Featherstone 1983, (Brandl, Johanni and
control laws. During simulation, the dynamic Otter, 1986).
equations are solved for the joint accelerations given
Using (9) and (25) the equilibrium equations of
the input torques and the state of the robot (joint
link j can be written as:
positions and velocities). Through integration of the
joint accelerations, the robot trajectory is then
determined.
j   j f  jβ 
j jj j j 
k
k
jT k f k (32)

The direct dynamic model can be obtained from


Lagrange equation (8) as follows: where k denote the links articulated on link j
such that a(k)=j, and
.. .
q = A-1 [ – H(q, q)] 
 j ω j  j ω j  j MS j  
j
β j   j fej    (33)
Two methods based on Newton-Euler methods  jω  j J jω
 j j j 
 
can be used to obtain the dynamic model: the first is
based on calculating the A and H matrices using
Newton-Euler inverse dynamic model in order to The joint accelerations are obtained as a result
calculate the joint accelerations by (8); the second of three recursive computations:
method is based on a recursive Newton-Euler
algorithm that does not explicitly calculate the i) first forward computations for j = 1, …, n: in this
matrix A and has a computational cost that varies step, we compute the screw transformation matrices
linearly with the number of degrees of freedom of j T , the link angular velocities j as well as j and
i j j
the robot. For tree structure robots, the second j vectors, which appear in the link accelerations
j
method is more efficient, but the first method can be ..
and the link wrenches equations respectively whenq
used for closed loop robots and other complicated = 0;
systems. That is why we will present both methods.

3.3.1 Using the inverse dynamic model


to calculate the direct dynamic model j
γj  
i  i i  j  
 j R  i ω  i ω  i P   2 ( j ω  q j a ) 
j i j j
 (34)
  j
ω  
q j
a 
.  j i j j 
In this method the matrices H(q,q) and A(q) are
calculated using the inverse model by giving special
values for the joint accelerations, joint velocities, 
 j ω j  j ω j  j MS j 
external forces, friction, gravity (Walker and Orin j
β j   j fej   (35)
1982).  jω  j J jω
 j  j j  

By comparing
. equations (7).. and (12) we deduce
that H(q, q) is equal to ifq = 0, and that the ith
column of A is equal to if: ii) backward recursive computation:
* *
in this step
.. . we calculate the elements Hj, .j Jj , jj , j Kj, jj which
q = ui, q = 0, g = 0, fej = 0, mej = 0 ..
express qj and j fj in terms of i Vi in the third recursive
where ui is the (nx1) unit vector whose ith element is equations. These equations are demonstrated in the
equal to 1, and the other elements are zeros. Iterating following sub-section.
the procedure for i = 1,…, n leads to the construction
of the entire inertia matrix. For j = n ... 1, compute:
To reduce the computational complexity of this
T *
algorithm, we can make use of the base inertial Hj = (j aj j Jj j aj + Iaj) (36)
parameters and the customized symbolic techniques.
..
jK * * -1 T
= j Jj – j Jj j aj Hj j aj j Jj
*
(37) Substituting for qn from (46) and (45), we obtain
j
the dynamic wrench n fn as:
j * -1 T * *
j = j Kj jj + j Jj j aj Hj (j + j aj jj ) – jj (38)  nfn  n n .
nf =   = Kn Tn-1 n-1 Vn-1 + nn (48)
n
If a(j) ≠ 0, calculate also:  n
nm

where:
-1 T
i * * T
= ii – j Ti jj (39)
nK
n = n Jn – n Jn n an Hn n an n Jn (49)
i
i J* * T n = n Kn nn + n J n a H-1 ( + n aT n )
– nn
= i Ji + j Ti j Kj j Ti
i (40) n n n n n n n

These equations are initialized by (50)


j J*= j J and j* .. .
j j j = jj. We now have qn and n fn in terms of n-1 Vn-1.
Iterating the procedure for j = n – 1, we obtain:
iii) second forward recursive computations . . Since
.
the acceleration of the base is known (V0 = –g, 0 = .
n-1 J n-1 V = n-1 f n T n n-1
0 for fixed base), the third recursive computation n-1 n-1 n-1 + Tn-1 fn + n-1 (51)
..
gives qj and j fj (if needed) for j = 1… n. as follows:
.. -1 T * . T *
which can be rewritten as:
qj = Hj [– j aj j Jj (j Ti i Vi + jj) + j + j aj jj ] . .. n-1
n-1 J* (n-1 T n-2 V an-1 + n-1n-1) =
(41) n-1 n-2 n-2 + qn-1
jf n-1 f n-1*
jf = 
 j  j j i. j n-1 + n-1 (52)
j  = Kj Ti Vi + j (42)
 jmj  where:
. . .. j T
jV = jT iV + ja q n-1 J*
j j + j (43) = n-1 J + n Tn-1 n Kn n Tn-1 (53)
j i i n-1 n-1
n-1* = n-1n-1 – n TT n (54)
where n-1 n-1 n
. . Equation (52) has the same form as (45). Thus,
j = j – Fsj sign(qj) – Fvj qj (44) .. .
we can express qn-1 and n-1 fn-1 in terms of n-2 Vn-2.
Calculation of the elements of the backward Iterating
.. this procedure for. j = n – 2, …, 1, we obtain
recursive equations qj and j fj in terms of j-1 Vj-1 for j = n – 1, ..., 1 as
given by equations (41) and (43) which represent the
To simplify the notations, we consider the case of a general case.
serial structure of n joints. Expressing the
acceleration of link n in terms of the acceleration of
link n-1, and since n+1 fn+1 = 0, we obtain: 4 INVERSE DYNAMIC MODELING
n J (n T
.
n-1 V .. n n n n OF CLOSED LOOP ROBOTS
n n-1 n-1 + qn an + n) = fn + n (45)

Since: The computation of the Inverse dynamic model


.. of closed loop robots can be obtained by first
j aT j f= j – Iaj qj
j j calculating the inverse dynamic model of the
. . equivalent tree structure robot, in which the joint
j = j – Fsj sign(qj) – Fvj qj variables satisfy the constraints of the loop. Then the
closed loop torques of the active joints c are
We obtain the joint acceleration of joint n: obtained by projecting the tree structure torques tr
.. -1 on the motorized joints using the transpose of the
qn = H n
Jacobian matrix of the tree structure variables (or
T . T
(– n an n Jn (n Tn-1 n-1 Vn-1 + nn) + n + n an nn) velocities) in terms of the active joint variables (or
velocities).
(46)
where Hn is a scalar given as: c= GTtr (q tr ,q tr , q
 tr )  (55)

Hn = (n anT n Jn n an + Ian) (47) where:


q q (56)
G = tr  tr
qa q a
It can be written also as:
q p (57)
c  a  p To obtain the dynamic models of parallel robots,
q a we exploit their structural characteristics by
Where: decomposing the system into two subsystems: the
a and p are the torque of actuated and passive platform and the legs.
joints of the tree structure. The dynamics of the platform is calculated as a
The kinematics Jacobian matrix can be obtained function of the Cartesian variables (spatial Cartesian
from (4) representing the kinematics closed loop position, velocity and acceleration of the platform),
constraints. whereas the dynamics of the legs are calculated as a
There is no recursive method to obtain the direct function of the joint variables of the legs
dynamic model of closed loop robots. It can be  q i ,q i ,q i  for i=1,…,m. The active joint torques
computed using the inverse dynamic model by a are obtained by the sum of these dynamics and
procedure similar to that given in section (3.3.1) in projecting them on the active joint axes.
order to obtain the matrices Ac and Hc of the To project the dynamics of the platform on the
following relation: active joint space we multiply it by the transpose of
the robot Jacobian matrix, which gives the platform
  c = A c (q tr )q
a + H c (q tr ,q tr ) (58) screw Vp in terms of the motorized joint velocities
q a , and to project the leg dynamics on the active
joint space we use the Jacobian between these two
5. INVERSE DYNAMIC MODELING spaces. Thus the dynamic model of the parallel
OF PARALLEL ROBOTS structure is given by the following equation:
A parallel robot is a complex multi-body system T
m
 q 
having several closed loops. It is composed of a Γ = J TP P +   i   i (59)
moving platform connected to a fixed base by i=1  qa 
parallel legs. The dynamic model can be obtained as
described in the previous section, but in this section where
we present a method that takes into account the P is the total forces and moments on the
parallel structure. To simplify the notations we will platform,
present her the case of parallel robots with six J P is the (6n) kinematics Jacobian matrix of
degrees of freedom. Examples concerning reduced the robot, which gives the platform velocity VP
mobility robots are given in (Khalil and Ibrahim (translational and angular) as a function of the active
2007). joint velocities:
The robot is composed of a fixed base and a
mobile platform. They are connected using m P = J P q a (60)
parallel legs.
Γ i is the inverse dynamic model of leg i, it is a
function of  q i ,q i ,q i  , which can be obtained in
The inverse dynamic model gives the forces and
torques of motorized joints as a function of the
terms of the platform location, velocity and
desired trajectory of the mobile platform.
acceleration, using the inverse kinematic models of
the legs. We note that q i does not include the
passive joint variables connecting the legs to the
Platform platform.
In this section we suppose n=6, thus J P is (6×6)
matrix.
The calculation of J p is obtained by inverting
J -1p , which is easy to obtain for most parallel
structures.
P is calculated by the Newton-Euler equation
(9).
The calculation of q i / q a is carried out by
the following relation, which exploits the parallel
Base structure of the robot:
q i q i v i P
 (61)
Figure 4: Parallel structure after separating the platform q a v i P q a
with: v i is the Cartesian velocity transferred It can be partitioned as follows:
from leg i to the platform.
We can rewrite (61) as:  r   A A12   q r   H r 
 =     11     (68)
  f   A12 A 22  q f   H f 

T
q i (62)
= J -1i J vi J r . ..
q a Where q,q ,q are the (n×1) vectors of positions,
velocities, and accelerations of rigid and elastic
joints;
J i is the kinematic Jacobian matrix of leg i such .
H(q,q ) is the (n×1) vector of Coriolis,
that: centrifugal and gravity forces,
A(q) is the (n×n) inertia matrix of the system,
v i = J i q i (63) ris the vector of rigid joint torques,
ris the vector of elastic joint torques.
J vi gives v i as a function of P :
If joint j is flexible:
v i = J vi P (64)
j = - qj Kj (69)
For the Gough-Stewart platform (where the
mobile platform is connected to the legs using where Kj is the stiffness of the elastic joint,
spherical joints), we obtain:
qj = qj – q0j (70)
v  ^
 (65)
J vi  i = I 3 - Pi 
P   q0j is the joint position corresponding to zero
elasticity force.
Where Pi is the vector between the origin of the
platform frame and the centre of the spherical joint In the case of a system with elasticity, the direct
linking the platform with leg i. dynamic model has the same outputs as in the case
of rigid bodies; it gives the joint accelerations as a
Finally the inverse dynamic model of the robot is function of the joint torques and of the system state
.
given by the following form: variables (q, q ). It can be calculated using (68) by
calculation the inverse of A.
 m

Γ = J pT  P +  J Tvi J -T
i Γi 
(66)
In the case of a system with elasticity, the inverse
 i=1 
dynamic model calculates the input torques and the
We note that the term between the brackets in elastic accelerations as a function of the joint
(66) represents the dynamic model of the robot positions, velocities and rigid joint accelerations. It
expressed in the Cartesian space of the platform is to be noted that the accelerations of the elastic
frame (Khalil and Guegain, 2002). variables cannot be specified independently. Using
(68) to calculate the inverse model, we have first to
calculate the acceleration elastic accelerations from
6. INVERSE DYNAMIC MODELING
OF ROBOTS WITH ELASTIC JOINTS the second row:
 r 
q
In this section we tree structure robots with lumped  f   A12
T
A 22     H f (71)

q
 f
elasticity or flexible joints. The system can be
described using Modified Denavit and Hartenberg then we can calculate the rigid joint torques from
method presented in section 2. Each joint could be
the first row.
either elastic or rigid (Khalil and Gautier, 2000).

6.1 Lagrange dynamic form 6.2 Direct dynamics of systems with


flexible joints using recursive NE
The general form of the dynamic model of a
system with flexible joints has the same form as (7). The direct dynamic model of system with
It can be rewritten as: flexible joints can be calculated using the recursive
.. . direct dynamic model algorithm of rigid joints
 = A(q) q + H(q, q ) (67) presented in section (3.3) after putting j = - qj Kj.
for the elastic joints.
Remark: We note that in case of rigid non - if j is elastic:
motorized joint, the same algorithm can be used .. -1 T * . T *
after putting j = 0. qj = Hj [– j aj j Jj (j Ti i Vi + jj) - Kj qj + j aj jj ]
(80)
6.3 Inverse dynamics of systems with
. .
j V = j T i V + j a ..
flexible joints using recursive NE j i i
j
j q j + j (81)

The recursive inverse dynamic algorithm of rigid - if j is rigid


links cannot be used for system with flexible joints
since the accelerations of the flexible joints are – ..
j = (j jfj +  j jmj)T jaj + Iaj q j (82)
unknown. On the contrary it can be used to obtain
the A and H matrices as explained in section (3.3.1),
then we can proceed as explained in 6.1 for the
 f and Γ r .
calculation of q 7. DYNAMIC MODELING OF
ROBOTS WITH MOVING BASE
We propose here a recursive algorithm to solve
this problem (Khalil and Gautier 2000). This The structure treated in this section includes a big
algorithm consists of three recursive steps. number of systems such as: cars, mobile robots,
mobile manipulators, walking robots, Humanoid
i) The first forward iteration is exactly the same robots, eel like robots (Khalil W., G. Gallot G.,
as that of the direct dynamic model (section 3.3). Boyer F., 2007), snakes like robots, flying robots,
spatial vehicle, etc. The difference between all of
ii) The second backward recursive equations these systems will be in the calculation of the
calculate
.. the matrices giving the. elastic accelerations interaction forces with the environment. In the
q j and j fj as a function of a(j) V a(j). These matrices previous sections the base is fixed thus the
can be defined using a similar procedure as in acceleration of the base is equal to zero, whereas in
section (3.3). They can be calculated for j =n, ...,1, the case of a mobile base system the acceleration of
as follows: the base must be determined in both direct and
inverse dynamic models. The proposed recursive
- If joint j is elastic: dynamic models are easy to implement and calculate
T *
Hj = j aj j Jj j aj (72) using numerical calculation. The inverse dynamic
model, which is used in general in the control
j K = j J* – j J* j a H-1 j aT j J* (73)
j j j j j j j problems, can be used in simulation too when the
j * -1 T * * objective is to study the evolution of the base giving
j = j Kj jj + j Jj j aj Hj (Kj qj + j aj jj ) – jj joint positions, velocities and accelerations of the
(74) other joints. The direct dynamic model can be used
- If joint j is rigid: in simulation when the joint torques are specified.
j K = j J* (75) We use the same notations of section 2 to
j j
describe the structure. The base fixed frame R0 is
j = j K j + j J* j a .. j *
j j j j j q j – j (76) defined wrt the world fixed frame Rw by the
if a(j) ≠ 0, calculate: transformation matrix w T0 . This matrix is supposed
i * * T known at t = 0, it will be updated by integrating the
i = ii – j Ti jj (77)
base acceleration. The velocity and acceleration of
* T the base are represented by the (6x1) vectors 0 and
iJ = i J*
+ j Ti j Kj j Ti (78)
i i  respectively.
 0
The previous equations are initialized by: The Cartesian velocities and accelerations of the
j J* *
= j Jj, and jj = jj. links are calculated using the recursive equations
j
(13)-(17).
The third recursive equations (for j = 1, ..., n)
..
calculate qj for the elastic joints and the joint torques 7.1 General form of the dynamic
for the rigid joints using the following equation:
models

jf =
 j fj  . The dynamic model of a robot with moving base can
j j  = j Kj j Ti i Vi + jj (79)
be represented by the following relation:
 mj 
the position and velocity of the base and the
 06x1    
0 articulated system and the joint input torques. Thus
    A     H
0
(83) using (83), the direct dynamic model is solved as
   q  follows:
 
 1 
H1 
Γ n  1 vector of joint torques,  A  (88)
0

q n  1 vector of joint positions,

q
    H2 

A is the (6  n)  (6  n) inertia matrix of the The calculation of A and H can be done by
robot, it can be partitioned as follows: Lagrange method. They can also be calculated using
the inverse dynamic model of tree structure of
A A12  section (3.2) and using the procedure of section
A   11 (84)
T
 A12 A 22  (3.3.1). The base can be taken into account by either
of the following methods:
- The velocity and acceleration of the base will
A11 is the (6  6) inertia matrix of the composed be the initial conditions  and ω for the forward
link 0, which is composed of the inertia of all the 0 0
recursive calculation. The backward recursive
links referred to frame R0 (the base). calculation must continue to j=0, where this new
A 22 is the (n  n) inertia matrix of the other iteration will obtain the 6 equations of Newton-Euler
links when the head is fixed, equations of the base.
A12 is the (6  n) coupled inertia matrix of the - We can assign link 1 to be the base, and
joints and the base. It reflects the effect of the joint suppose that link 0 is a virtual link whose inertial
accelerations on the base motion, and the dual effect parameters are equal to zero but has the velocity and
of base accelerations on the joint motions. acceleration of the base. This can be done by
H is the (n  6)  1 vector representing the putting 2=2. The six equations of the base will be
Coriolis, centrifugal, gravity and external forces those of f1  0;
effect on the robot. Its elements are functions of the
base and joint velocities and the external forces. This Solving the inverse and direct dynamic problems
vector can be partitioned as follows: using A and H may be very time consuming for
systems with big number of degrees of freedom (as
the eel like robot). Therefore, we propose here to use
H  a recursive method, which is easy to programme,
H   1 (85)
H 2  and its computational complexity is linear wrt the
where: number of degrees of freedom.
H1 the Coriolis, centrifugal, gravity and The recursive Newton-Euler algorithm is based
external forces on the base. on the kinematic equations presented in section 3.
H 2 the Coriolis, centrifugal, gravity and
external forces on the links 1,…,n.
7.2 Recursive NE calculation of the
The inverse dynamic model gives the joint inverse dynamic model of robots
torques and the base acceleration in terms of the with mobile base
desired trajectory (position, velocity and
acceleration) of the articulated system (links 1 to n) The inverse dynamic algorithm in this case consists
and the base position and velocity. Using equation of three recursive equations (a forward, then a
(83) and (84), the inverse dynamic model is solved backward, then a forward).
by using the first row of equation (83) to obtain the
base acceleration: i) Forward recursive calculation:
0    A11   H1 + A12 q
0 
 
1
(86) In this step we calculate the screw
Then the second row of (83), can be used to find the transformation matrices, link velocities, and the
joint torques: elements of the accelerations and external wrenches
T  on the links, which are independent of the
  A12 0  A 22 q
  H 2 (87)  ,ω 0 ). Thus we
acceleration of the robot base ( V 0
calculate for j=1,…,n: j i , j j and j γ j using
The direct dynamic model gives the joint equations (13)-(17). We calculate also j β j
accelerations and the base acceleration in terms of representing the elements of the Newton-Euler

1
equations, which are independent of the base 0  
 0 c 0
β 0c (97)
0 0
acceleration in equations (14) and (15) such that:
To conclude, the recursive equations of this step
j
ζ j  j γ j  
q j ja j (89) consist of initialising n  cn  n  n , n βcn  n β n and then
calculating (95)-(96) for j = n,…, 0. At the end 0   is
0
calculated by (97).
 j ω j  j ω j  j MS j   Comparing (97) with (68) we can deduce that
j
β j   fej  
j
(90) A11 is equal to 0  c0 , whereas 0 βc0 is equal to
 jω  j J jω
 j j j   
  ).
( H1 + A12 q

iii) Forward recursive equations:


ii) Backward recursive equations:
 , the wrench j f and the
After calculating 0 0 j
In this step we obtain the base acceleration using joint torques are obtained using equations (6) and
the inertial parameters of the composite link 0, (22) for j= 1,…, n as:
where the composite link j consists of the links j,
j+1, …, n.
We note that (32), giving the equilibrium j   j i 
   jζ (98)
j i i j
equation of link j, can be rewritten using (90) as:
 jf j  j c j
j
f j  j  j j  j  j β j   k
k
jT k f k (91) j
fj   j
 m
  j 

j
  j βc
j j
(99)

Applying the Newton-Euler equations on the The joint torque is calculated by projecting j f j on the
composite link j, we obtain:
joint axis, and by taking into account the friction and
j
f j  j  j j  j  j β j   s( j)
jT  s(j)   s( j) β
 s(k) s(j) s(j) s( j)  the actuators inertia:
s( j)

(92)
 
 j  j f jT j a j  Fsj sign q j  Fvj q j  Iaj 
qj (100)

Where s(k) means all the links succeeding joint j, It is to be noted that the inverse dynamic model
that is to say joining j to any terminal link. algorithm can be used in the dynamic simulation of

Substituting for s(j)  j 
j using the mobile robot when the objective is to study the
s(j) in terms of
(14), we obtain: effect of the joint motions on the base. In this case
the joint positions, velocities and accelerations
   
 trajectories are given. At each sampling time the
s( j)
s(j)
s(j)
s( j)
j j j r r ζ r (93)
r acceleration of the base will be integrated to provide
the angular and linear velocities for the next
Where r denotes all links between j and s(j). sampling time.
From (92), we obtain:
j
f j  j  cj j  j  j βcj (94) 7.3 Recursive direct Dynamic model
with: The direct dynamic model consists of three recursive
calculations in the same order as those of the inverse
j
 cj  j  cj  k
k
jT k  ck k j (95)
dynamic model (forward, backward and forward):


i) Forward recursive equations:
j
β cj  j β cj  k
jT k β ck  k jT k  ck k ζ k (96)
k
We calculate the link Cartesian velocities using
(13) and the terms of Cartesian accelerations and
 cj is the inertial matrix of the composite link j.
j
equilibrium equations of the links that are
For j = 0, and supposing 0 f0 is equal to zero, we independent of the accelerations of the base and of
obtain using (94): the joints. We calculate the following recursive
equations for j = 1, ..., n:
j   j
  j a  j
 j j-1 jq j  γ j (112)

j
γj  
i  i i  j  j 
 j R  i ω  i ω  i P   2 ( j ω  q j a ) 
i j j
 (101)

  j
j
ω i  
q j
j
a j


8. CONCLUSIONS
This paper presents the inverse and direct

 j ω j  j ω j  j MS j  dynamic modeling of different robotics systems. The
j
β j   fej  
j
(102) dynamic models are developed using the recursive
 jω  j J jω
 j j j   
 Newton-Euler formalism. The inverse model
provides the torque of the joint and the acceleration
of the free degrees of freedom such as the elastic
ii) Backward recursive equations:
joints, or the acceleration of the base in case of
mobile base.
In this second step, we first initialise n *n  n  n ,
n
β  n β n and then we calculate for j = n,…,1 the
* The direct model provides the joint acceleration of
n
following elements, which permit to calculate j f j the joints including those of the free degrees of
 and will be used in the third
and q j in terms of i  freedom.
i
recursive equations (these matrices can be obtained These algorithms constitute the generalization of the
using a similar procedure as for the direct dynamic algorithms of articulated manipulators to the other
model of rigid links): cases.
The proposed methods have been applied on more
H j  j a Tj j *j j a j  Ia j (103) complicated systems such as:
- flexible link robots (Boyer and Khalil, 1998),
j
 j  j *j - j *j j a j H -1j j a Tj j *j (104) - Micro continuous system (Boyer, Porez and
Khalil, 2006),
- hybrid structure, where the robot is composed
i *
i  i  i  j iT j  j j i (105) of parallel modules, which are connected in serie,
(Ibrahim, Khalil 2010).
τ j  Γ j - Fsj sign(q j ) - Fvj q j (106)

j

α j  j  j j  j  j *j j a j H -1j τ j  j a Tj j β*j  j β*j
(107) REFERENCES
i *
βi  i βi  j iT j  j (108) Angeles J. 2002. Fundamentals of Robotic
Mechanical Systems. Second edition,
iii) Forward recursive equations: Springer-Verlag, New York.
Armstrong W.W., 1979. Recursive solution to the
At first, the base acceleration is calculated by the equation of motion of an N-links manipulator.
following relation : In Proc. 5th World Congress on Theory of
Machines and Mechanisms, p. 1343-1346.
Boyer, F., Khalil,W, 1998. An efficient calculation

1
0  
 0 * 0
β*0 (109)
0 0 of flexible manipulator inverse dynamic. In,
Int. Journal of Robotics Research, vol. 17,
We note that 0 β*0 is a function of τ, whereas 0 β c0 No.3, pp.282-293
(used in the inverse model) is a function of q . Boyer, F., Porez M., Khalil, W. 2006. Macro-
continuous torque algorithm for a three-
q j and j f j (if desired) are calculated for j=1,…,n dimensional eel-like robot. In IEEE Robotics
using the following equations: transaction, vol.22, No.4, 2006, pp.763-775.
Brandl H., Johanni R., Otter M., .1986. A very
q j  H -1j  - j a Tj j *j

   j
j-1 
 j  j  τ j  j a Tj j β*j  (110)

efficient algorithm for the simulation of robots
and multibody systems without inversion of
the mass matrix. In Proc. IFAC Symp. on
j
f j  j  j j i i  i  j α j (111) Theory of Robots, Vienne, p. 365-370.
Craig J.J., 1986. Introduction to robotics: mechanics and
where: control. Addison Wesley Publishing Company,
Reading.
Khosla P.K., 1986. Real-time control and
Featherstone R., 1983. The calculation of robot identification of direct drive manipulators. Ph.
dynamics using articulated-body inertias. In D. Thesis, Carnegie Mellon.
the Int. J. of Robotics Research, Vol. 2(3), p. Walker M.W., Orin D.E., 1982. Efficient dynamic
87-101.Gautier Gautier,M., Khalil W. 1990. computer simulation of robotics mechanism.
Direct calculation of minimum set of inertial In Trans. of ASME, J. of Dynamic Systems,
parameters of serial robots. In IEEE Trans. on Measurement, and Control, Vol. 104, p. 205-
Robotics and Automation, Vol. RA-6(3), 211.
p. 368-373.
Ibrahim, O., Khalil, W, 2010. Inverse and direct
dynamic models of Hybride robots. In
Mechanism and machine theory, Volume 45,
Issue 4, p. 627-640.
Luh J.Y.S., Walker M.W., Paul R.C.P.,1980. On-
line computational scheme for mechanical
manipulators. In Trans. of ASME, J. of
Dynamic Systems, Measurement, and Control,
Vol. 102(2) p. 69-76.
Khalil W., Kleinfinger J.-F., 1986. A new geometric
notation for open and closed-loop robots. In
Proc. IEEE Int. Conf. on Robotics and
Automation, San Francisco, p. 1174-1180.
Khalil W., Kleinfinger J.-F., 1987. Minimum
operations and minimum parameters of the
dynamic model of tree structure robots. In
IEEE J. of Robotics and Automation, Vol.
RA-3(6), p. 517-526.
Khalil W., Bennis F., 1994. Comments on Direct
Calculation of Minimum Set of Inertial
Parameters of Serial Robots. In IEEE Trans.
on Rob.& Automation, Vol. RA-10(1), p. 78-
79.
Khalil W., Creusot D., 1997. SYMORO+: a system
for the symbolic modelling of robots. In
Robotica, Vol. 15, p. 153-161.
Khalil W., Gautier M., 2000. Modeling of
mechanical systems with lumped elasticity",
In Proc. IEEE Int. Conf. on Robotics and
Automation, San Francisco, p. 3965-3970.
Khalil, W., Dombre, E. 2002. Modeling
identification and control of robots. Hermes,
Penton-Sciences, London.
Khalil W. and Guegan S.,2004. Inverse and Direct
Dynamic Modeling of Gough-Stewart Robots.
In IEEE Transactions on Robotics and
Automation, 20(4), p. 754-762.
Khalil W., G. Gallot G., Boyer F., 2007. Dynamic
Modeling and Simulation of a 3-D Serial Eel-
Like Robot. In IEEE Transactions on Systems,
Man and Cybernetics, Part C: Application
and reviews, Vol. 37, N° 6.
Khalil W., Ibrahim O., 2007. General solution for
the Dynamic modeling of parallel robots. In
Journal of Intelligent and Robotic Systems,
Vol.49, pp.19-37.

You might also like