Mechanism and Machine Theory 45 (2010) 627–640
Contents lists available at ScienceDirect
Mechanism and Machine Theory journal homepage: www.elsevier.com/locate/mechmt
Inverse and direct dynamic models of hybrid robots Ouarda Ibrahim, Wisama Khalil * IRCCyN, CNRS, UMR 6597, Ecole Centrale de Nantes, 1 Rue de la Noë, BP 92101, 44321 Nantes Cedex 03, France
a r t i c l e
i n f o
Article history: Received 27 September 2007 Received in revised form 19 November 2009 Accepted 24 November 2009 Available online 8 January 2010 Keywords: Hybrid robots Redundant robots Complex structures Parallel robots Dynamic modeling
a b s t r a c t This paper presents recursive solutions for obtaining the inverse and direct dynamic models of hybrid robots that are constructed by serially connected non-redundant parallel modules. The proposed methods generalize the recursive Newton–Euler algorithms developed for serial robots, and use the compact form of the inverse dynamic model of parallel robots that was developed recently by the authors. The algorithms can be programmed easily whatever the number of parallel modules. Ó 2009 Elsevier Ltd. All rights reserved.
1. Introduction Parallel manipulators have limited workspace with respect to their serial counterparts. However, they have inherent advantages in terms of rigidity, high payload capacity, high velocity and high precision. Considering their dynamic performances and the new opportunities introduced by that kind of manipulators in industrial applications, several methods were proposed for their dynamic modeling [1–14]. Recently we proposed a new method to develop the explicit solution of the dynamic models of parallel robots [15]. To obtain the inverse and direct dynamic models of these robots we make use of the Newton–Euler equation of the platform, the dynamic models of the legs and some Jacobian matrices. In this paper we propose the exploitation of this method for the dynamic modeling of hybrid structures. The hybrid robots treated in this paper are composed of serially connected non-redundant parallel modules like the Logabex LX4 robot (Fig. 1) [16] and biomimetic robots snakes robots [17,18]. The serial form of these hybrid manipulators overcomes the limited workspace of parallel manipulators and improves overall stiffness and response characteristics. The proposed methodology can be easily applied to hybrid robots that are constructed of different parallel modules (Fig. 2) [19], or by combination of serial and parallel modules (Figs. 3 and 4) [20]. Among the very few work approached the dynamic modeling of hybrid robots, we can find Freeman and Tesar [21], Sklar and Tesar [22] who used the principle of D’Alembert with the equivalent tree structure of the closed structure, and Chung et al. [23] who calculate at first the local dynamics of each module with respect to the independent joint coordinates and then the dynamics of the hybrid robot is calculated by using the concept of the virtual joints that are attached to the base of each module. These methods are difficult to apply for robots having a big number of modules. The methods proposed in this paper for the calculation of the inverse and direct dynamic models use recursive Newton– Euler formalism. This technique has been seen as efficient for serial rigid manipulators [24–26] and for flexible manipulators [27,28].
* Corresponding author. E-mail address:
[email protected] (W. Khalil). 0094-114X/$ - see front matter Ó 2009 Elsevier Ltd. All rights reserved. doi:10.1016/j.mechmachtheory.2009.11.007
628
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
Fig. 1. Logabex LX4 robot.
Fig. 2. A 6 d.o.f hybrid robot composed of two different parallel modules.
This paper is organized as follows. Section 2 describes the dynamic modeling of one module of the system. Section 3 describes the dynamic Modeling of the hybrid structure. Finally, Section 4 presents the conclusions.
2. Dynamic modeling of a non-redundant parallel module 2.1. Description of one module The hybrid structure is made up of n parallel modules, which are serially connected to a fixed base. To facilitate the presentation of this paper we suppose that the modules are similar. The structure of a module k is described in Fig. 5, the number of degrees of freedom of the platform with respect to its base is denoted by N k , and the number of branches is denoted mk . We define a frame Rk attached to the platform of each module k, and frame Rbk fixed to its base. Since the base of module k is fixed to the platform of module k-1, thus the transformation matrix between Rk1 and Rbk is constant. Finally frame R0 is fixed to the base of module 1. The following kinematic models for module k will be used in the dynamic models:
The kinematic model, which gives the velocity of the platform of module k as a function of the motorized joint velocities, this model is given by the relation [29]:
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
Fig. 3. A hybrid robot composed of a platform of Gough–Stewart and a serial robot.
Fig. 4. The SCARA/DELTA hybrid robot.
Platform k
Σk P
Pi Lk
Base Platform k-1
Σbk
Fig. 5. Description of one parallel module of the hybrid structure.
629
630
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
vk ¼ Jk q_ ak
ð1Þ
where ð6 N k Þ kinematic Jacobian matrix of module k. ð6 1Þ kinematic screw vector of the mobile platform k. It is composed of the linear velocity components of the origin of frame Rk p_ k and the angular velocity xk with respect to its base:
Jk
vk
vk ¼ q_ ak
p_ Tk
xTk
T
ðN k 1Þ vector of motorized joint velocities of module k.
For N k < 6; v k can be obtained in terms of a vector of N k independent components denoted,
vk ¼ ak vrk
v rk , such that: ð2Þ
where ak
vrk vrk
ð6 N k Þ matrix giving v k in terms of the reduced velocity vector v rk . In the common case where the components of are a subset of those of v k , the elements of the matrix ak are constant and composed of ‘‘1” and ‘‘0”. ðN k 1Þ independent Cartesian velocity vector of the platform k.
The kinematic model of the module k can be also written in the following reduced form:
vrk ¼ Jrk q_ ak
ð3Þ
where Jrk is the ðN k N k Þ reduced Jacobian matrix of module k. From (1)–(3) we can deduce that:
Jk ¼ ak Jrk
ð4Þ
We note that the matrix ak permits to handle parallel modules whose platform have reduced number of freedom, N k < 6. For a robot with 6 d.o.f where v rk ¼ v k we have ak ¼ Id6 , with Id6 the identity matrix of dimension ð6 6Þ. The second order kinematic model, which gives the acceleration of the platform, it is obtained by differentiating (1):
v_ k ¼ Jk q€ ak þ J_k q_ ak
ð5Þ
Using (2), v_ k can be obtained as:
v_ k ¼ ak v_ rk þ a_ k v rk
ð6Þ
The reduced second order direct kinematic model is obtained by differentiating (3) as:
v_ rk ¼ Jrk q€ ak þ J_rk q_ ak
ð7Þ
The kinematic model of a leg i of module k that gives the terminal velocity of leg i as a function of the joint velocities of leg i, this model is given by the relation:
vi;k ¼ Ji;k q_ i;k
ð8Þ
with kinematic Jacobian matrix of leg i, joint velocities of leg i, (without considering the passive joints between the platform and the leg), vi;k the velocity components transmitted from the leg i to the platform k, it can be calculated in terms of the platform velocity v k by the relation: Ji;k q_ i;k
vi;k ¼ Jv i;k v k
The second order kinematic model of leg i is obtained by differentiating (8) as:
v_ i;k ¼ Ji;k q€ i;k þ J_i;k q_ i;k v_ i;k
ð9Þ
ð10Þ
can be obtained in terms of the Cartesian variables of the platform using (6) and (9) as:
v_ i;k ¼ Jv i;k ak v_ rk þ ðJv i;k a_ k þ J_v i;k ak Þvrk
ð11Þ
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
631
2.2. Inverse dynamic model of one module The inverse dynamic model of a parallel module gives the motorized torques/forces as a function of the desired trajectory of the mobile platform with respect to the base, which is supposed fixed in this case. This model is calculated for module k as [15]:
Ck ¼ JTk ðFpk þ F ek Þ þ
T mk X @ q_ i;k i¼1
@ q_ ak
Hi;k
ð12Þ
with Ck vector of the actuator torques/forces of module k, Fek external wrench (forces and moments) exerted by the platform of module k on the environment, Hi;k the inverse dynamic model of leg i of module k, mk the number of legs of module k, Fpk the total forces, f pk , and moments, mpk , on the platform of module k, given by:
h Fpk ¼ f Tpk
Fpk
mTpk
iT
is calculated by the following Newton–Euler equation:
Fpk ¼ Ik
€k g ^ k MSk Þ ^ k ðx x p þ ^ k ðUk xk Þ x x_ k
ð13Þ
with Ik
the ð6 6Þ spatial inertia matrix of the platform of module k, given by:
2 Ik ¼
4 M k Id3 ^
MSk
3 ^ MSk 5 Uk
MSk vector of first moments of the platform of module k around the origin of its frame Rk , the upper ‘‘ˆ” means the associated ð3 3Þ skew matrix of the vector product, Uk ð3 3Þ inertia matrix of the platform around the origin of the platform frame Rk , M k mass of the platform, v_ k ð6 1Þ acceleration vector of frame Rk with respect to Rk1 . It is composed of linear and angular accelerations:
v_ k ¼ g
€ Tk p
x_ Tk
T
acceleration of gravity,
The calculation of
@ q_ i;k @ q_ ak
, used in (12), can be obtained by the following relation [15]:
@ q_ i;k @ q_ i;k @ v i;k @ v k @ v rk ¼ @ q_ ak @ v i;k @ v k @ v rk @ q_ ak
ð14Þ
Eq. (14) can be rewritten as:
@ q_ i;k ¼ J1 i;k Jv i;k ak Jrk @ q_ ak
ð15Þ
where Ji;k ; Jv i;k ; ak and Jrk are defined in (8), (9), (2) and (3) respectively. The inverse dynamic model (12) can be rewritten by the following compact form:
Ck ¼ JTk ðFpk þ Fek þ Hbk Þ
ð16Þ
632
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
Hbk denotes the resultant of the wrenches applied by the legs of module k on its platform:
Hbk ¼
m X
JTv i;k JT i;k Hi;k
ð17Þ
i¼1
with 1 T JT i;k ¼ ðJi;k Þ
ð18Þ
3. Dynamic modeling of the hybrid structure Before developing the dynamic models of the hybrid structure we present the recursive calculation of the velocity and acceleration of the platforms with respect to the fixed base of the structure. 3.1. Calculation of the velocities and accelerations of the platforms Velocities of the platforms of the modules can be obtained in terms of the relative velocities of the platforms with respect to their bases p_ k and xk by using the following recursive intrinsic equations for k = 1,. . .,n:
Xk ¼ Xk1 þ xk P_ k ¼ P_ k1 þ Xk1 Lk þ p_ k
ð19Þ ð20Þ
with P_ k Xk Lk
linear velocity of the origin of the platform k, angular velocity of the platform k, position vector between the origins of frame Rk1 and frame Rk , respectively.
Differentiating (19) and (20) with respect to time, we obtain the accelerations of the platform as:
_k¼X _ k1 þ x_ k þ Xk1 xk X €k ¼ P € k1 þ X _ k1 Lk þ Xk1 ðXk1 Lk þ p_ k Þ þ p € k þ Xk1 p_ k P
ð21Þ
€ k1 þ X _ k1 Lk þ p € k þ Xk1 Xk1 Lk þ 2Xk1 p_ k ¼P
ð22Þ
Eqs. (19) and (20) can be grouped as follows:
"
#
P_ k
" ¼
Xk
Id3
b Lk
03
Id3
#"
P_ k1
#
þ
Xk1
p_ k xk
ð23Þ
These equations are expressed in the frame Rk as follows:
"
k
P_ k
k
Xk
#
" ¼
k
Rk1
03 k
03
Rk1
#"
Id3
Lk k1 b
03
Id3
#"
k1
P_ k1
k1
Xk1
#
" þ
k
p_ k
k
xk
# ð24Þ
we can rewrite (24) as: k
Vk ¼ k Tk1 k1 Vk1 þ k v k
ð25Þ
where k Tk1 is the ð6 6Þ screw transformation matrix:
" k
k
Tk1 ¼
Rk1 k1 b Lk k
k
Rk1
033
Lk k Rk1 k1 b k
#
Rk1
ð26Þ
the ð3 3Þ rotation matrix, which defines the orientation of frame Rk1 with respect to frame Rk , the ð3 3Þ vector product skew matrix associated with k1 Lk .
Tk1 is calculated as: k
Tk1 ¼ k Tbk bk Tk1
ð27Þ
633
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
where bk Tk1 is the constant ð6 6Þ screw transformation matrix between the base frame of module k and the platform frame of module k 1. Similarly, the recursive acceleration relations can be obtained using (21) and (22) as: k
V_ k ¼ k Tk1 k1 V_ k1 þ k v_ k þ k nk
ð28Þ
where
" k
nk ¼
b k1 ðk1 X b k1 k1 Lk ÞÞ þ 2k Xk1 k p_ k Rk1 ðk1 X Xk1 xk k
# ð29Þ
_ 0 ¼ 0; P_ 0 ¼ 0, we can consider the gravity forces automatically in For a fixed base, we initialize the calculation by X0 ¼ 0; X € 0 ¼ g. the dynamic equilibrium equations by taking P 3.2. Inverse dynamic model of the hybrid robot The inverse dynamic model of the hybrid robot gives the motorized torques/forces as a function of the desired trajectory of the mobile platforms (location bk Tk , velocity v k , and acceleration v_ k of the modules). The algorithm of the inverse dynamic model consists of two-recursive equations: (i) Forward recursive equations for k = 1, . . . , n, we calculate: – the matrix ak defined in (2), – the Jacobian matrices Jrk ; Ji;k and Jv i;k defined in (3), (8) and (9) respectively, – the screw transformation matrix k Tk1 using (26), € i;k by using the kinematic models of the legs – the joint positions, velocities and accelerations of the legs qi;k ; q_ i;k ; q described in Section 2, – the velocity and acceleration vectors k Vk ; k V_ k using (25) and (28), – the total external wrench on the platform of module k, denoted Fpk , using the Newton–Euler Eq. (13) after replacing xk by Xk and v_ k by V_ k :
" k
Fpk
¼ Ik V_ k þ k
k
b k ðk X b k k MSk Þ X kb k X k ð Uk k Xk Þ k
# ð30Þ
We calculate also the resultant of the wrenches applied by the legs of module k on its platform, given by (17). In this case Hi;k , representing the inverse dynamic model of leg i, is calculated using Newton–Euler algorithm of serial robots [24,30] taking into account that the initial conditions of velocities and accelerations of the base are those of the platform of module k 1, which are different than zero for k > 1. (ii) Backward recursive equations for k = n, . . . , 1. We calculate Fk representing the wrench exerted on the module k by module k 1 and then the motor torques of module k. This step is based on the following equilibrium equation of the module k (Fig. 6):
Fpk þ Fbk ¼ Fk Fkþ1 Fek k1
where Fbk represents the resultant of the total forces and moments of all the branches of module k, where Fk ¼ We note that k1 Fbk will be calculated by the Newton–Euler algorithm giving Hi;k (see Appendix A). Consequently, the wrench exerted by module k 1 on module k is given as: k
h
Fk ¼ k Fpk þ kþ1 TTk kþ1 Fkþ1 þ k Fek þ k1 TTk k1 Fbk
ð31Þ T fk
mTk
iT
ð32Þ
k
Using (16), and taking into account Fkþ1 as an external force, the motor torques of module k are obtained as:
Ck ¼ JTk ðk Fpk þ k Fkþ1 þ k Fek þ Hbk Þ
ð33Þ
These equations will be initialized by the terminal wrench Fnþ1 ¼ 0. 3.3. Direct dynamic model of the hybrid robot The direct dynamic model of the robot gives the platform acceleration of each module as a function of the state variables of the robot (platform positions and velocities) and the input torques/forces of the motorized joints. To develop this model we need to express Hi;k and Fbk , representing the dynamic models of the legs of module k and the resultant of the total forces and moments of all the branches of module k respectively in terms of the accelerations V_ k1 and
634
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
Module k+1
Lk+1
Σbk+1 Σk
-mk+1-mek
-fk+1-fek Module k Lk Σbk Σk-1 fk
mk
Base of module k + Platform of module k-1
Module k-1 Σbk-1
Fig. 6. Forces and moments on module k.
v_ rk . In fact, since the base of module k is not fixed (except for module 1), the dynamic model of a leg i is a function also of the acceleration and velocity of module k 1, thus it can be decomposed as follows [30]:
€ i;k þ hi;k ðXk1 ; qi;k ; q_ i;k Þ Hi;k ¼ Di;k k1 V_ k1 þ Ai;k q
ð34Þ
where – Ai;k is the inertia matrix of leg i, it can be computed by the Newton–Euler [30–32] or by the Lagrange method [30,33]. – hi;k is the matrix of Coriolis, centrifugal and gravity forces and moments of leg i, it can be computed using the Newton– € i;k and V_ k1 equal to zero. Euler inverse dynamic model of leg i by setting q To calculate Di;k we use the Newton–Euler equations for the legs (see Appendix B when assuming that the legs are of serial structure). By substituting (10) and (11) in (34), we obtain: k k_ _ Hi;k ¼ Di;k k1 V_ k1 þ Ai;k J1 i;k ðJv i;k ak v rk þ ci;k Þ þ hi;k ðqi;k ; qi;k ; Xk1 Þ
ð35Þ
ci;k ¼ ðJv i;k a_ k þ J_ v i;k ak Þv rk J_i;k q_ i;k
ð36Þ
where
Similarly F bk can be expressed in terms of the accelerations V_ k1 and v_ rk as follows (see details in Appendix C): k1
Fbk ¼ S1;k k1 V_ k1 þ S2;k k ak k v_ rk þ S3;k
The direct dynamic model computation of the hybrid robot consists of three recursive calculations: (i) Forward recursive equations for k = 1, . . . , n, where we calculate: – the matrix ak defined in (2), – the Jacobian matrices Jrk ; Ji;k and Jv i;k defined in (3), (8) and (9) respectively, – the screw transformation matrix between modules k Tk1 using (26), – the joint positions, and velocities by using the kinematic models of the modules as described in Section 2. – the velocity vector k Vk using (25), – the matrix Di;k defined in (34),
ð37Þ
635
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
– the term ci;k using (36), – the matrices S1;k ; S2;k and S3;k defined in (37), as given in Appendix C, – k nk and using (29) – k bk ; representing the elements of the wrench on module k which do not depend on the acceleration of the module k. Using (30) and (32) we obtain:
"
k
b k ðk X b k k MSk Þ X bk ¼ Fek þ kb k X k ð Uk k Xk Þ k
k
# ð38Þ
The equilibrium Eq. (32) is rewritten in terms of k bk as: k
Fk ¼ k Ik k V_ k þ k Fkþ1 þ k bk þ k1 TTk k1 Fbk
ð39Þ
(ii) Backward recursive equations for k = n, . . . , 1: in this step we calculate the elements needed to obtain the accelerations k_ v rk and the wrench k Fk in terms of k1 V_ k1 . Since 0 V_ 0 is known, we can use these relations to obtain 1 v_ r1 and 1 F1 . Thus, during the third forward recursive calculation, we obtain the accelerations of the other modules. In fact we can write (see Appendix D): k
k T k k1 _ Vk1 Htk Þ v_ rk ¼ A1 tk ð Jrk Ck Ek Tk1
k
Fk ¼ k Kk k Tk1 k1 V_ k1 þ k ak
ð40Þ
and:
ð41Þ
The recursive equations of this step are initialized by
Ek ¼ k aTk
k Ik
þ
m X
!
k Ik
þ
m X
k k Ik nk
In ; n bn
n
¼ bn and consist of calculating for k = n, . . . , 1:
ð42Þ
! JTv i;k AXi;k Jv i;k
k
ak
ð43Þ
i¼1
Htk ¼ k aTk
¼
n
k1 JTv i;k JT Tk i;k Di;k
i¼1
Atk ¼ k aTk
n ast In
þ k bk þ
m X i¼1
JTv i;k AXi;k ci;k þ hXi;k
!
Kk ¼ k Ik þ k1 TTk S1;k k1 Tk k Ik þ k1 TTk S2;k k ak A1 tk Ek
1 k T k k k1 T k k k ak ¼ Ik þ Tk S2;k ak Atk Jrk Ck Htk þ Ik nk þ k bk þ k1 TTk S3;k k
ð44Þ ð45Þ ð46Þ
If k–1, we calculate also: k1 Ik1 k1 bk1
¼ k1 Ik1 þ k TTk1 k Kk k Tk1 ¼
k1
bk1 þ
ð47Þ
k T k Tk1 ak
ð48Þ
where AXi;k is the Cartesian inertia matrix of leg i with respect to the terminal frame of leg i, and hXi;k is the Cartesian vector of Coriolis, centrifuge and gravity forces of leg i. They are calculated respectively by: 1 AXi;k ¼ JT i;k Ai;k Ji;k
hXi;k ¼
ð49Þ
JT i;k hi;k
ð50Þ
(iii) Forward recursive equations for k = 1, . . . , n: € 0 ¼ g; X _ 0 ¼ 0: We calculate the accelerations k v_ rk and k V_ k using the following equations, which are initialized by P
Ek k Tk1 k1 V_ k1 Htk
k
v_ rk ¼ A1 tk
k
Fk ¼ k Kk k Tk1 k1 V_ k1 þ k ak V_ k ¼ k Tk1 k1 V_ k1 þ k ak k v_ rk þ k n
k
k T Jrk Ck
k
ð51Þ ð52Þ ð53Þ
4. Conclusion In this paper we presented a novel methodology for the dynamic modeling of hybrid robots. The proposed methods give the inverse and dynamic models using recursive Newton–Euler algorithms. The inverse dynamic model generalizes, for the
636
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
hybrid robots, the recursive Newton–Euler formulation of serial robots of Luh, Walker and Paul, whereas the direct dynamic model generalizes the serial robot algorithm of Featherstone. To reduce the number of operations of the obtained models the proposed algorithms can be programmed using costumized symbolic calculation and using the base inertial parameters [25,34]. To facilitate the presentation we supposed hybrid robots with similar parallel modules, however the method is easily applicable to hybrid robots that are composed of different structures of parallel modules or even by a combination of serial and parallel modules. Acknowledgment This work has been carried out through the European IPProject No. 011815(NEXT – next generation production systems). Appendix A. Calculation of Fbk and Hik for the inverse dynamic model The vector Fbk is deduced from the Newton–Euler algorithm of serial robots [30] as given in the following. To facilitate the writing the index jik indicating the joint j of leg i of module k will be denoted by j, By supposing that each leg is a serial structure with ni joints, the calculation is done in two-recursive equations: (i) Forward recursive calculation for j ¼ 1; . . . ; ni : in this step we calculate Fj , vector of the total forces and moments on each link, using the following equations:
" j
Tj1 ¼
j
Rj1
03x3
b j Rj1 j1 L j
#
j
Rj1 j j j1 Vj ¼ Tj1 Vj1 þ q_ j j bj j _ €j j bj þ j cj Vj ¼ j Tj1 j1 V_ j1 þ q " # j j1 Rj1 ð xj1 ðj1 xj1 j1 Lj ÞÞ þ 2rj ðj xj1 q_ j j zj Þ j cj ¼ r j j xj1 q_ j j zj " # j xj ðj xj j MSj Þ j j _ Fj ¼ Ij Vj þ j x j ð j Uj j x j Þ
ð54Þ ð55Þ ð56Þ ð57Þ ð58Þ
with j
bj
(6 1) joint axis vector defined as:
"
j
rj j zj bj ¼ r j j zj
#
with: rj ¼ 1 if joint j is prismatic, and rj ¼ 0 if joint j is revolute, j zj unit vector along the zj axis, j zj ¼ ½0 0 1T These equations are initialized by the velocity, and accelerations of the platform of module k 1. ii) Backward recursive calculation for j ¼ ni ; . . . ; 1: this step is based on the following equilibrium equations of links: j
f j ¼ j Fj þ jþ1 TTj jþ1 f jþ1
ð59Þ
withj f j wrench exerted on link j by link j 1. This equation is initialized by ni þ1 f ni þ1 ¼ 0 At the last iteration we obtain 1 f 1 . Thus for the m branches of module k, we obtain: k1
Fbk ¼
m X
1;ik T 1;ik Tk1 f 1;ik
ð60Þ
i¼1
where f 1;ik represents the wrench exerted by the base of the module k on link 1 of leg i. We note that the calculation of Hi;k , representing the inverse dynamic model of leg i, is obtained using (54)–(59), where th the j component Hjik of Hi;k is obtained by: T
Hj ¼ j bj j f j
ð61Þ
637
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
Finally, we obtain:
Hi;k ¼ ½H1ik H2ik Hnik T
ð62Þ
Appendix B. Calculation of Dik The matrix Dik used in (34) is a ðni 6Þ matrix which represents the coefficient of the acceleration of the platform of module k 1 in the expression of Hi;k (inverse dynamic model of leg i of module k), such that:
€ i;k þ hi;k ðqi;k ; q_ i;k ; Xk1 Þ Hi;k ¼ Di;k k1 V_ k1 þ Ai;k q
ð63Þ
Dik , can be deduced from the Newton–Euler algorithm of serial structures, presented in Appendix A, after setting € i;k ; Xk1 equal to 0, (to simplify the writing the index jik indicating the joint j of leg i of module k will be denoted q_ i;k ; q by j). Under these conditions Hj is given by: T
Hj ¼ j bj j Fcj j c Fj
ð64Þ
total external wrench on the composite link j, which consists of the links j, j + 1, . . . , ni , given by: j c Fj
¼ j Icj j Tk1 k1 V_ k1
ð65Þ
with j c Ij
ð6 6Þ inertia matrix of the composite link j.
Thus the joint torque j is given as: T
Hj ¼ j bj j Icj j Tk1 k1 V_ k1
ð66Þ th
Using (63), we deduce that the j element of Hi;k is given as:
row of Dik , denoted as Dik ðj; :Þ, is composed of the coefficient of
T
Dik ðj; :Þ ¼ j bj j Icj j Tk1
k1
th V_ k1 giving the j
ð67Þ
The inertia matrices of the composite links j for j = ni , . . . , 1, are calculated by: j c Ij
¼ j Ij þ jþ1 TTj jþ1 Icjþ1 jþ1 Tj
ð68Þ
with Ini þ1 ¼ 0 Appendix C. Calculation of Fbk in terms of
k1
_ k1 and k_rk for the direct dynamic model V
The vector Fbk , used in (60), is calculated in terms of the accelerations k1 V_ k1 and k v_ rk using the two-recursive Newton– Euler calculations of Appendix 1 as follows: – we express f 1;ik (60) in terms of the joint accelerations by substituting (56)–(58) into (59) for j ¼ ni , . . . , 1, thus for j = 1 we obtain: 1;ik
€ ik þ 1;ik bc1;ik f 1;ik ¼ 1;ik Ic1;ik 1;ik Tk1 k1 V_ k1 þ G1;ik q
ð69Þ
th
with the j column of the matrix G1;ik is obtained as:
Gj ð:; jÞ ¼ j TT1 j Icj j bj
ð70Þ
and: j c bj
¼ j bj þ jþ1 TTj jþ1 bcjþ1 þ j Jcj j cj þ jþ1 TTj jþ1 Icjþ1 jþ1 cjþ1
ð71Þ
with
" j
bj ¼
j
xj ðj xj j MSj Þ j
x j ð j Uj j x j Þ
# ð72Þ
638
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
where the backward recursive calculation is initialized by ni Icni ¼ ni Ini and ni bcni ¼ ni bni . Thus by substituting (69) into (60), we obtain: k1
Fbk ¼
m X
1;ik T Tk1 ð1;ik Ic1;ik 1;ik Tk1 k1 V_ k1
€ ik þ 1;ik bc1;ik Þ þ G1;ik q
ð73Þ
i¼1
Finally, we rewrite (73) in terms of k1
k1
V_ k1 and k v_ rk using (10), (11) and (36) as:
Fbk ¼ S1;k k1 V_ k1 þ S2;k k ak k v_ rk þ S3;k
ð74Þ
with
S1;k ¼ S2;k ¼ S3;k ¼
m X i¼1 m X i¼1 m X
1;ik T 1;ik c 1;ik Tk1 I1;ik Tk1
ð75Þ
1;ik T Tk1 G1;ik J1 ik Jv ik
ð76Þ
1;ik T Tk1 ðG1;ik J1 ik cik
þ 1;ik bc1;ik Þ
ð77Þ
i¼1
Appendix D. Calculation of the backward recursive equations for the direct dynamic model Since Fnþ1 ¼ 0, thus using (30), (28) and (38) in (33) for k = n, we obtain:
Cn ¼ n JTrn n aTn ðn In ðn Tn1 n1 V_ n1 þ n an n v_ rn þ n nn Þ þ n bn þ Hbn Þ
ð78Þ
By using (17), (35) and (78), we obtain the acceleration n v_ rn as: n
T n n1 _ Vn1 Htn Þ v_ rn ¼ A1 tn ðJrn Cn En Tn1
ð79Þ
with
En ¼ n aTn
n
Atn ¼ n aTn
Xm
JT JT D n1 Tn i¼1 v i;n i;n i;n ! m X T n In þ Jv in Axin Jv in n an
In þ
ð80Þ ð81Þ
i¼1
Htn ¼ n aTn
n
In n nn þ n bn þ
m X
! JTv i;n ðAxi;n ci;n þ hxi;n Þ
ð82Þ
i¼1
Eq. (39) is written for k = n as: n
Fn ¼ n In n V_ n þ n bn þ n1 TTn n1 Fbn
ð83Þ
By substituting (28), (74) and (79) into (83) we obtain n Fn in terms of n
Fn ¼ n Kn n Tn1 n1 V_ n1 þ n an
n
Kn ¼ n In þ n1 TTn S1;n n1 Tn ðn In þ n1 TTn S2;n Þn an A1 tn En
n1
V_ n1 as:
ð84Þ
with
n
n
an ¼ ð In þ
T n1 T Tn S2;n Þn an A1 tn ðJrn Cn
n
n
n
Htn Þ þ In nn þ bn þ
ð85Þ n1 T Tn S3;n
ð86Þ
n
We continue the calculation by substituting Fn in (33) for k = n 1, and we obtain using (30), (28) and (38):
Cn1 ¼ n1 JTrn1 n1 aTn1 ðn1 In1 ðn1 Tn2 n2 V_ n2 þ n1 an1 n1 v_ rn1 þ n1 nn1 Þ þ n1 bn1 þ Hbn1 Þ
ð87Þ
with n1 In1 n1 bn1
¼ n1 In1 þ n TTn1 n Kn n Tn1 ¼
n1
bn1 þ
Using (17) and (35) for k = n1 in (87) we deduce the acceleration n1
with
v_ rn1 ¼
ð88Þ
n T n Tn1 an
T A1 tn1 ðJrn1 Cn1
En1 n1 Tn2 n2 V_ n2 Htn1 Þ
ð89Þ n1
v_ rn1 : ð90Þ
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
En1 ¼ n1 aTn1
n1 In1
þ
m X
! n2 JTv i;n1 JT Tn1 i;n1 Di;n1
i¼1
Atn1 ¼
n1 T an1
n1 In1
þ
m X
ð91Þ
! T
Jv i;n1 Axi;n1 Jv i;n1
n1
an1
i¼1
Htn1 ¼ n1 aTn1
639
n1 In1 n1 nn1
þ n1 bn1 þ
m X
ð92Þ !
JTv in1 ðAxi;n1 ci;n1 þ hxi;n1 Þ
ð93Þ
i¼1
for k = n 1 and by using (84) we can rewrite Eq. (39) as: n1
Fn1 ¼ n1 In1 n1 V_ n1 þ n1 bn1 þ n2 TTn1 n2 Fbn1
ð94Þ
By using (28), (74), (90) and (94), we obtain: n1
Fn1 ¼ n1 Kn1 n1 Tn2 n2 V_ n2 þ n1 an1
ð95Þ
with
Kn1 ¼ n1 In1 þ n2 TTn1 S1;n1 n2 Tn1 n1 In1 þ n2 TTn1 S2;n1 n1 an1 A1 tn1 En1
1 T n1 n1 n2 T n1 n1 n1 an1 ¼ In1 þ Tn1 S2;n1 an1 Atn1 Jrn1 Cn1 Htn1 þ In1 nn1 n1
þ n1 bn1 þ n2 TTn1 S3;n1 of
ð96Þ
ð97Þ
Since In ¼ In , we deduce that (90) and (94) have the same form as (79) and (83). We can thus express k v_ rk and k Fk in terms V_ k1 as given in (51) and (52)
k1
References [1] K.M. Lee, D.K. Shah, Dynamic analysis of a three-degrees-of-freedom in-parallel actuated manipulator, IEEE Journal of Robotics and Automation 4 (1988) 361–368. [2] Z. Geng, S. Haynes, J.D. Lee, R.L. Carrol, On the dynamic model and kinematic analysis of a class of Stewart platforms, Robotics and Autonomous Systems 9 (1992) 237–254. [3] G. Lebret, G.K. Liu, F.L. Lewis, Dynamic analysis and control of a Stewart platform manipulator, Journal of Robotic Systems 10 (5) (1993) 629–655. [4] S. Bhattacharya, H. Hatwal, A. Ghosh, An on-line estimation scheme for generalized Stewart platform type parallel manipulators, Mechanism and Machine Theory 32 (1) (1997) 79–89. [5] S. Bhattacharya, D.N. Nenchev, M. Uchiyama, A recursive formula for the inverse of the inertia matrix of a parallel manipulator, Mechanism and Machine Theory 33 (7) (1998) 957–964. [6] M-J. Liu, C-X. Li, C-N. Li, Dynamics analysis of the Gough–Stewart platform manipulator, IEEE Transaction on Robotics and Automation 16 (1) (2000) 94–98. [7] L-W. Tsai, Solving the inverse dynamics of a Stewart–Gough manipulator by the principle of virtual work, Journal of Mechanical Design 122 (2000) 3–9. [8] A. Codourey, E. Burdet, A body oriented method for finding a linear form of the dynamic equations of fully parallel robot, in: IEEE International Conference on Robotics and Automation, Albuquerque, New Mexico, US, 21–28 April, 1997, pp. 1612–1618. [9] K. Sugimoto, Computational scheme for dynamic analysis of parallel manipulators, Journal of mechanisms, Transmissions and Automation in Design 111 (1989) 29–33. [10] Z. Ji, Study of the effect of leg inertia in Stewart platform, in: IEEE International Conference on Robotics and Automation, Atlanta, May 1993, pp. 121– 126. [11] C.M. Gosselin, Parallel computational algorithms for the kinematics and dynamics of parallel manipulators, in: IEEE International Conference on Robotics and Automation , vol. 1, New York 1993, pp. 883–889. [12] B. Dasgupta, T.S. Mruthyunjaya, A Newton–Euler formulation for the inverse dynamics of the Stewart platform manipulator, Mechanism and Machine Theory 33 (8) (1998) 1135–1152. [13] B. Dasgupta, P. Choudhury, A general strategy based on the Newton–Euler approach for the dynamic formulation of parallel manipulators, Mechanism and Machine Theory 34 (6) (1999) 801–824. [14] W. Khalil, S. Guegan, Inverse and direct dynamic modeling of Gough–Stewart robots, IEEE Transactions on Robotics and Automation 20 (4) (2004) 754– 762. August. [15] W. Khalil, O. Ibrahim, General solution for the dynamic modeling of parallel robots, Journal of Intelligent and Robotic Systems 49 (1) (2007) 19–37. May. [16] S. Charentus, M. Renaud, Modeling and control of a modular redundant robot manipulator, in: First International Symposium on Experimental Robotics, Monreal,Canada, June, 1989. [17] D. Mihalachi, F. Munerato, Snake-like mobile micro-robot based on a 3 DOF parallel mechanism, PKM’99 Milan, November 30, 1999, pp. 237–242. [18] G. Gallot, O. Ibrahim W. Khalil, Dynamic modeling and simulation of a 3D hybrid structure eel-like robot, in: IEEE International Conference on Robotics and Automation ICRA’07, Rome, April, 2007. [19] K. Tanio Tanev, Kinematics of a hybrid (parallel-serial) robot manipulator, Mechanism and Machine Theory 35 (2000) 1183–1196. [20] S.-t. Chen, Dynamic model of a hybrid robot manipulator based on Stewart platform, Robotics: Kinematics, Dynamics and Controls, ASME, DE-vol. 72, 1994, pp. 249–253. [21] R.A. Freeman, D. Tesar, Dynamic modeling of serial and parallel mechanisms/robotic systems, in: Proceedings of the ASME Bienniial Mechanism Conference, Kissimmee, FL, DE-vol. 15(2), 1988, pp. 7–21. [22] M. Sklar, D. Tesar, Dynamic analysis of hybrid serial manipulator systems containing parallel modules, ASME Journal of Mechanisms Transmissions and Automations 110 (2) (1988) 109–115. [23] G.B. Chung, B-J. Yi, D.J. Lim, W. Kim, An efficient dynamic modeling methodology for general type of hybrid robotic systems, in: IEEE International Conference on Robotics and Automation, vol. 2, New Orleons 2004, pp. 1795–1802. [24] J.Y.S. Luh, M.W. Walker, R.C.P. Paul, On-line computational scheme for mechanical manipulators, Transactions of ASME Journal of Dynamic Systems, Measurement, and Control 102 (2) (1980) 69–76.
640
O. Ibrahim, W. Khalil / Mechanism and Machine Theory 45 (2010) 627–640
[25] W. Khalil, J.-F. Kleinfinger, Minimum operations and minimum parameters of the dynamic model of tree structure robots, IEEE Journal of Robotics and Automation RA-3 (6) (1987) 517–526. December. [26] R. Featherstone, The calculation of robot dynamics using articulated-body inertias, The Internationl Journal of Robotics Research 2 (3) (1983) 87–101. [27] F. Boyer, W. Khalil, An efficient calculation of flexible manipulator inverse dynamics, International Journal of Robotics Research (17) (1998) 282–293. [28] F. Boyer, N. Glandais, W. Khalil, Flexible multibody dynamics based on non-linear Euler–Bernoulli kinematics, International Journal for Numerical Methods in Engineering 54 (2002) 27–59. [29] J.-P. Merlet, Parallel Robots, second ed., Verlag, 2005. [30] W. Khalil, E. Dombre, Modeling, Identification and Control of Robots, Hermès Penton, London, Paris, 2002. [31] M.W. Walker, DE. Orin, Efficient dynamic computer simulation of robotics mechanism, Transactions of ASME Journaol of Dynamic Systems, Measurement, and Control 104 (1982) 205–211. [32] W. Khalil, D. Creusot, SYMORO+: a system for the symbolic modeling of robots, Robotica 15 (1997) 153–161. [33] S. Megahed, M. Renaud, Minimization of the computation time necessary for the dynamic control, in: Proceedings of the 12th International Symposium on Industrial Robots, Paris, France, June 1982, pp. 469–478. [34] W. Khalil, F. Bennis, Symbolic calculation of the base inertial parameters of closed-loop robots, International Journal of Robotics Research (14) (1995) 112–128. April.