Robotics and Autonomous Systems ELSEVIER
Robotics and Autonomous Systems 14 (1995) 29-53
Dextrous manipulation with multifingered robot hands including rolling and slipping of the fingertips Harald H irtl * Institute for Real-Time Computer Control Systems and Robotics, Department for Informatics, University of Karlsruhe, Kaiserstrasse 12, 76128 Karlsruhe, Germany Received 12 August 1993; revised 28 July 1994 Communicated by F.C.A. Groen
Abstract
This paper treats two fundamental problems which occur when manipulating objects with an articulated multifingered robot hand: determination of the joint motions to perform the manipulation according to a given object trajectory and optimization of the joint torques needed to ensure a secure gripping situation. The consideration of roiling and slipping of the fingertip on the object leads to a set of linear differential equations when computing the joint angles and to a partly non-linear optimization problem for the torques. The presented removal of redundant information will decrease computation time significantly. A possible implementation of the developped equations will be given as well as an example demonstrating the need to consider rolling and slipping: rotation of an ordinary egg with the Karlsruhe Dextrous Hand.
Keywords: Multifinge~r robot hand; Dextrous manipulation; Rolling and slipping; Simulation
1. Introduction
Multifingered robot hands offer great advantages compared with traditional tools mounted at the end of a robot arm: like human hands they are capable of handling both parts and tools. With a minimum of three contact points they offer a greater stability and mobility of the grasp. Due to this flexibility, they can handle even misplaced objects by just moving the fingers and exerting certain forces upon the object. The arm, which is generally designed for distant movement and is less accurate in fine positioning, can rest still. These advantages of a robot hand require a great amount of computational power because not only a jaw-gripper, :for example, has to be opened or closed, but for each link of each finger the position and the acting force have to be computed to ensure stable gripping and controlled manipulation of the object.
* Correspondence to: H. Hiirtl, Physikalisch-Technische Bundesanstalt, Laboratorium 1.63, Bundesallee 100, D-38116 Braunschweig, Germany. E-medl:
[email protected]; Fax: 49 531 592-1605. 0921-8890/95/$09.50 © 1995 Elsevier Science B.V. All rights reserved SSDI 0 9 2 1 - 8 8 9 0 ( 9 4 ) 0 0 0 1 6 - 6
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
30
Fig. 1. The Karlsruhe Dextrous Hand. Trying to realize a subset of the capabilities of human hands, a three-fingered robot hand (Fig. 1) has been under development at the University of Karlsruhe since 1988 [9]. Research focusses on mechanical design and tactile sensor integration as the main hardware aspects, and on intelligent planning and controlling of grasps and manipulations.
2. Previous work
This section gives a short overview on work already done in the field of manipulation with robot hands. It is the basis for the introduction of new concepts and for improvements of already existing ways to compute a manipulation.
2.1. Mathematical tools 2.1.1. Transformation of physical values Coordinates An arbitrary point P in space can be described in different frames by different representations. The representation of P in frame 1 is denoted by lr P,I" When describing this point in frame 2, its representation has to be transformed according to 2re,z -- 2r 1,2 + A1,21re,p
(2.1)
The notation is as follows: the upper left index denotes the frame a vector is expressed in, the lower right index describes the end point (first) and the starting point (last) of the vector. So, 2r P,2 is the vector starting at the origin of frame 2, pointing to point P. The coordinates are taken in frame 2. The (3 x 3) matrix A1,2 is rowwise composed of the base vectors of frame 1, expressed in frame 2 (Fig. 2).
31
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
P
Fig. 2. Relation between two frames.
Velocities Angular velocities behave like coordinates: (2.2)
2 Wp ,2 --2W -1,2 + A 1 ,21Wp ,1.
Differentiation of (2.1) yields the relation for linear velocities: (2.3a)
2/;P,2 -2 / ; 1,2 + A 1,21/:p,1 + .X~l,Elrp,1
In [11] it is shown, ihow to write the last term, .41,21rp.1, as 2w1, 2 ×Ai.21re,1, so that the transformation of the linear velocities, becomes (2.3b)
2 l.~p,2 2--/ . 5 1,2 + A1,21/"P,1 +2Wl ,2 )
Using the skew-symmetric matrix S, the cross-product in (2.3b) can be written as follows:
a×b=-b×a=-S(b).a
where
S(b)=
0
-b z
by /
bz - by
0 bx
-bx "1
(2.4)
0
Combining (2.2) and (2.3b) gives the relationship of (generalized) velocities in two coordinate frames: 2W~,,2
0
I3
2W1,2
+
1 A~,21we, ~
.
(2.5)
Forces and torqes Any force ill acting at the origin of frame 1 is given in frame 2 as 2fl = Al,Ef 1 1. If this force is only acting at this point, it causes a torque 2m~ = 2rl, 2 )< 2fl when measured in frame 2. This additional torque does not appear, if the force is a free force, that is acting in the whole space (e.g. gravitation) (Fig. 3). Eq. (2.6) is valid for free forces, Eq. (2.7) for bounded forces. (2.6)
(2.7) 2m I
[S(2r1,2)A1,2
A1,2
~ ml]"
32
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
lml = 0
~ml =0
2ml / 0
lmi : 0
.~....
a: Weight of bar
b: F a s t e n e d m a s s
Fig. 3. Free and bounded forces.
2.1.2. Description of the object trajectory Position and orientation of any object can be described by a f l a m e C o (given by hro, h and Ao,h). When moving the object, flame C o will transform to C o . For quite simple trajectories like screw motions, this change can be computed analytically: A screw motion is the combination of a rotation around an axis a: ox _-_Op + t °r by an angle 0 and a translation along the direction vector °r of a with lengths s (Fig. 4). The transformation of C o be written:
hr'o,h-h / o , h + A o , h ° k ( a , O) +Ao h(S, Or),
(2.8)
A'o,h =Ao,hR(a,
(2.9)
0),
A',~ ,os
Co
s,.'r
r.,h
Fig. 4. Trajectory.
H. Hiirtl/ Robotics and Autonomous Systems 14 (1995) 29-53
33
/ z C2
x
7
x
G
''
Z
c,
Z
..-"'*
..
..-
X 01 Fig. 5. One finger. where °k(a, O) and R(a, O) are given by ( r:py - rypz )sO - ( rxrzP z - r2px + rxrrP r - r2px )vO ° k ( a , O) =
( r x P z _ r z P x ) S O _ ( r r r z p z _ rzpy2 + rxryPx _ r 2 p y ) v O (rxPy-rypx)sO-
( - r y r ~ P r + ry2pz-rxrzpx + r2xpz)vO
(r 2 + r ~ ) c O + r 2
-rzSO + rxrrVO
rzSO + rxryVO
R ( a , O) = -
r x s 0
-
rx rzVO
(r 2 + r 2)c0 +
r r2
rxSO + ryrzVO
(2.10)
rysO - rxrzvO - rxSO + ryrzvO
(2.11)
(r 2 + r 2)cO + r 2
where sO = sin O, cO = cos O, vO = 1 - cos 0 and the r i are the cartesian components of °r. By applying time-dependent variables s(t) and O(t), the velocities of the object hvo,h and hwo,h can be computed as input for the reaction of the manipulating system. 2.2. Geometry o f the manipulation system One frame C h is fixed at the palm of the hand. Eventually, all coordinates will be expressed in this global frame. Relatively to C h, the base frames of the fingers are defined by matrices Ab,,h, where i counts the fingers. These matrices are constant for a given configuration of the hand. The relation between the frames fixed at the fingertip (Cf,) and the fingerbase (Cb,) is given by a transformation
34
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
matrix Afibi(01,, 02, 03) =Af, b(0), =Afi,b i (Fig. 5). So position hrfi,h and orientation Afi,h of the fingertip can be determined, if the joint angles 0 i = (Oie 0~, 0i3)T are known: hrfi,h = hrbi,h + Abi,hbirfi,bi,
Afi,h = Abl,hAfi,b i .
(2.12)
The object is described by its frame Co, fixed at the center of mass. The contact points are given relative to C O by the vectors °ro,,o which stay constant, if no rolling or slipping occurs.
2.3. Manipulation without rolling and slipping If the relation between the position of the fingertip hrfl,h and the related joint angles 0 i can be inverted, the 0 i can be computed analytically from the position. This method is very fast, but will fail, if rolling and slipping occur because then the exact point of contact is not known. Therefore, the method can be used to find the values of the joint angles at the start of the manipulation. In this state, the points of contact have to be given. A second method to compute the joint angles works with (generalized) velocities: starting with the velocity of the object, the velocities of the points of contact are computed (Eq. (2.5)). According to the contact model, these velocities yield the velocities of the fingertips. For a point contact with friction (no angular velocities are transferred) the relation is given by
The relation between joint angles and velocity of the fingertip is given by the Jacobian [11]:
wf,b /
0,
(2.14)
where 0 = (01, 02, 03) T. By transforming Eqs. (2.13) and (2.14) into the base frame Cb~ of each finger, an equation relating the velocity of the object to the velocities of the joint angles can be obtained. (Choosing the base frame instead of the hand frame simplifies computation when the fingers are identical: the Jacobians then are all the same.) Having a three-fingered hand with three joints each, this equation is quite simple (point contact with friction assumed): 0 = b'Jv 1. b,vf,.b,"
(2.15)
2.4. Determination of static forces Forces and torques acting at the points of contact must be transformed into the object's coordinate frame in order to be added. This is performed by the grip-matrix 13. Again, the contact model is a point contact with .friction; so there are no torques at the points of contact on the object (°'tool = 0). The global force vector k consists of the single force vectors °ifo i stacked upon each other.
°rao = ~i ~ moi = ~i
S( ro.o)Ao,.o ] °'J =13"k"
(2.16)
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
Object
35
Co
r°h/ /rh Fig. 6. Description of the point of contact.
After the forces at the contact points k have been computed from the external forces (that is, forces applied to the object by the environment), the joint torques equalizing these forces can be obtained by
"ri=(fiJvT
fif°i I fiJwT) fim |. °i ]
(2.17)
The exact relation between external forces and joint torques will be given in Section 3.2, when the necessary transformation matrices will have been described.
2.5. Rolling and slipping The position of the point of contact can be described either relative to C O as °roi,o or relative to Cfi as firti,fi (Fig. 6). These vectors point to the surface of the object or the fingertip and can therefore be parameterized as ftmctions of two variables (gx, ~2) when using the objeet's point of contact and ('11, 7/2) when referring to tlhe fingertip. These so-called contact parameters can be chosen arbitrarily to describe the surface of the object or the fingertip with respect to the central frame C O or Cf:
rx('rll, 712) fir ti,fi =
ry(T/1, "r]2)
= firti,fi(ll)
where
= oro,,o(~d)
where
rz(r/1, 772)
11=
/ "r/1 )• r/2 ' k /
(2.18)
[ rx( °roi,o =
~ = (~:1) ~:2 "
(2.19)
36
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
As a result of the rolling of the fingertip on the object, not only the joint angles 8 but also the contact parameters ~/ and ~ have to be computed. First, the velocity (relative to the global frame Ch) of the contact point at time t is considered. It must be the same on object and fingertip: h
Vti,h ~
h
(2.20)
Voi,h.
Since this point is constant on object and fingertip, Eq. (2.20) can be written as (using (2.5)): h Vfl,h-- ( a f l , h S ( f i r t i , f i ))hwfi,h = h Vo,h--(Ao,hS (ro.o)) o h Wo,h.
(2.21)
Another relation can be found using the fact that object and fingertip must hold contact, that is, the vectors to the actual point of contact must be the same: hrti,h = hroi,h.
(2.22)
Splitting into components and differentiating gives the following relation: h
Pfi,h--(Afi,hs(firti,fi
))h
.
__hv
Wfi,h + A f i , h f ' V t i , f i -
o,h
_
o (Ao,hS(ro,,o))
h
o Wo,h + A o , h Voi,o-
(2.23)
Eq. (2.23) describes the motion of the actual point of contact and contains, due to the change of this point while the manipulation is going on, two terms describing this change (fi vt~,f' and o Vo,o). In (2.21) these terms to not appear because here the point of contact at time t is described. This geometrical point stays unchanged at all times, but then it is no longer the point of contact[ Subtracting (2.21) from (2.23) yields the tangential constraint of motion which describes the velocity of the point of contact relatively to the frames Cfi and C o (transformed to C h to compare them): ( 2.24 )
A fi,hfi vti ,fi = A o ,h° Vo i,o"
Another constraint is given by the fact that the tangential planes must coincide, that is, the normal vector of the object at the point of contact must be the opposite of the normal vector of the fingertip: h^n t i , f i ~ _hh oi,o.
(2.25)
Differentiating yields the normal constraint of motion: A
fiA fl,h nti,fl -- ( A f i , h s ( f i ~ t i , f i ) )
h Wfi,h =
-Ao, hoAnoi,o
+
o h WO,h. (Ao,hS(ho/,o))
(2.26)
The velocities in the equations can be expressed in terms of the velocities of their parameters by a Jacobian. In (2.24), fir t , f /-f~f - t,fl is depending on 17= (*/1, */2)T (Eq. (2.18)). So doing the compound differentiation and combining the terms yields OFx 0*/1 OEx 0*/2 ---+ - - - 0*/1 Ot 0*/2 0t
fiv
ti,f i =
fi#
/ ti,fi~*/i' */2) =
0ry 0,/1
0ry 0*/2
0*/1 0t
0*/2 0t
0r z 0*/1 Or z 0*/2 ---+ - - - 0*/1 0t 0*/2 0t
=
Or x
0G
071
0*/2
Ory 0./1
0*/2
Or z
Or z
0./1
0*/2
~2
(2.27)
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
37
The other velocities can be found analogously: fi
o
h
fi= "
fi A
(2.28)
o~ ' r ~ ,•
oX
o " noi,o = Jn~,
(2.29)
h
Wfi,h = hjw[~"
(2.30)
Vti,fi = driP, Voi,o = /'Yfl,h
= hjv~,
nti,fi=fiJn~,
(Eq. (2.30) is derived from (2.14).) After substituting these Jacobians in (2.21), (2.24) and (2.26) and extracting the variables 0 , / / a n d £, an equation in matrix form is obtained:
M,.
(2.31)
a~ = R'Wo,h
where
",v ("fi.("rtif))h'w
0
0
Afi,hfi Jr
_Ao,hOjr ,
_ (.&.lfi,hS(nti,fi)) fi^ hJw
Afi,h fi,In
ao,h oJn ]
gt
0
--"o h (°ro/ o) R' =
0
0
0
Ao,hS ( o^ no.o)
;
the dimensions of M' and R' are (9 x 7) and (9 × 6) respectively. A left-hand multiplication with the left generalized inverse *M' of M' yields the seven velocities (three for the joint angles, two each for the contact parameters) as a result of the motion of the object.
i) /:°t =*M'R'.
.
(2.32)
Wo,h
One single calculation of (2.32) requires 5976 floating point operations (Gaussian algorithm)! When integrating (2.32) in order to obtain the values 0, ~/ and £ with a Runge-Kutta algorithm, Eq. (2.32) must be computed four times for each finger in every time step. This large amount of required computational power can be reduced drastically as will be shown below.
3. Introduction of new concepts
In this section, a method to compute the joint angles, which is much faster but not less accurate than the above method will be presented. Also, the optimization of static forces, taking into account the effect of rolling and slipping, will be considered. 3.1. Improved concept o f rolling and slipping 3.1.1. Reduction of variables
The location of the point of contact measured in the global frame C h must be the same on the fingertip and on the object. So if one pair of contact parameters (e.g. 11) is known, the other pair can be
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
38
computed by a transformation of coordinates (if the joint angles and the location of the object are known). Splitting (2.22) into components yields
h r o,h +Ao,h orol,o(~), hrfl,h(0) +hfi,h(O)firti,fi(7) --
(3.1)
so the location of the point of contact on the object is determined by
o T h roi,o(~ ) =Ao,h( rfi,h(0 ) --hro, h + Afi,h(O)firti,fi(7)),
(3.2)
which can be written as °rol,o( ~:) = °rf/,o ( 0 ) -4-A fi,o( 0 )firti,fi( 7 ).
(3.3)
This means that the parameter ~ depends on 0 and 7. Differentiating (3.3) yields
°Vo,,o(¢(0, 7))
~°rfi ,° 0 +
00
~firti,fi . OaO'°Ofirti,fi(7) +Afi,o(0) - - - ~ 7 •
T gives Eq. (2.24), multiplied by Ao,h,
(3.4)
ti,f i
o V°i,° = A h,oA fi,hfivti,fi = Afl, °f//"tl,fi
(3.5)
and it can be seen that the first and second term on the right-hand side of (3.4) must vanish, which is achieved by setting 0 to zero. That means that ~ depends on 8, 7 and 4, but not on 0. So the velocity at the point of contact on the object can be written as follows: d O~'YOi,O(~ ( 0, 7))
~°ro~,o
-7-
( (clt°ro,,o.~7)) _O,
O~ 0~:0-" i)O +
0°ro,.,o ~
i)~ 07 /I,
(3.6)
or, omitting (~,
°Vo~,o(~(O, 7)) =
i)°roi,o 0~.
0~- ~7 7"
(3.7)
The (3 × 2) matrix b°ro,,o/~g has been computed in (2.29) as Jacobian °Jr; the additional (2 x 2) matrix a~/b 7, that is, the newly introduced conversion matrix K, can be obtained from the g(7) relation which results from (3.3). So, an equation relating the velocity of the point of contact on the object to the velocity of the contact parameter of the point of contact on the fingertip is found:
°Vo,,o = °St K,i.
(3.8)
An analogous treatment yields an equation for the velocity of the contact normal: OA
0
•
no~,o = 'J, KT.
(3.9)
Eqs. (2.23) and (2.26) together with .(2.28), (2.29), (3.8) and (3.9) yield differential equations in the variables 0 and /I. The two variables g (for each finger) have been eliminated!
(hjv-(Afi,hs(firtl,fi)lhjw)O-l-(afi,hfiJr--ao,h°Jrg)~
=hlpo,h --(Ao,hS(°roi,o))hWo,h,
fi^ . (Af~,hfijn_t_Ao,hOjnK)iil = (Ao,hS(noi,o))Wo,h ' -(Afi,hS (nti,fi) ) h JwO+ o^ h
(3.10) (3.11)
H. Hiirtl/RoboticsandAutonomousSystems14 (1995)29-53
39
Eqs. (3.10) and (3.11) can be written in matrix form: M"
//
= R-
o,h hwo,h
(3.12)
where the (6 × 5) matrix M is defined by
IhJv--(Afi,hS(firti,fi))hJw
M= [
__(Afi,hS(fi~ti,fi))hjw
Afi,hfiJr-.4o,h°Jr K Afi,hfijn + Ao,h°JnK
(3.13)
and the (6 × 6) matrix R by R=
~.
(3.14)
By computing the left general inverse of M, the required velocities can be obtained. Here, only six equations in five wariables are to be handled:
(:)=*MR'(:V°'h)., W°.h]
(3.15)
Compared to (2.32), there are three equations and two variables less, that is the computation time will decrease drastically, as the computation of a general inverse matrix will take about n 4 floating point operations (FLO). An exact evaluation yields 2371 FLO for a single computation of Eq. (3.15). This means a reduction to 40% of the FLO needed when using Eq. (2.32)[ 3.1.2. Slipping - angle of contact Coordinate frames Cti and Coi are fixed at the points of contact on the fingertip and the object in such a way that their x- and y-axes span the tangential plane T of the point of contact and their z-axes point outward the fingertip or the object, respectively (Fig. 7). The orientation of these two frames will change during motion due to slipping. This effect is measured by the angle of contact. Definition. The angle of contact a is the angle between two vectors a and b on the tangential plane T, which are constructed as projections of two vectors a' and b', freely chosen, but fixed relatively to Ct, or Coi, respectively, on the plane T. To get the frame Ct~, Cfi will be rotated so that its z-axis points in the direction of t)t~,f~ (the same procedure is used to get Co~ from Co). For
Ix×yl=lxl" lyl'sin 8,
x . y = l x l " tyl'cos 8,
(3.16)
where x and y are', two arbitrary intersecting (3 × 1) vectors expressed in the same frame, and 8 is the angle of intersection, the angle 8 and the normalized direction d of the rotation are given by 8fi=arccos(fi(0 0
1)f//~
dft
1 (fi(0 0 sin 8f,
1)Txfi~t/,f/),
(3.17)
8 0 = arccos(°(0 0
1)°~o,o),
d°i=
sin
18oi (°(0
1)T XO~o,,o).
(3.18)
) ti'fi]'
"
0
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
40
Zh
zo
.""°
..""~o
i..
iii~i!iiii!iliiili
!!iiii!ii]iiiiiiiiiii!il ]!~!ili!i'il]ii~i]!ii!ii
!II!: /
!!i~!iii!iiii!iiliiiilii~=== ....
i Xh
X!d
.
!
i!i
:==*iR~iiii!!iii.~ii~iiiJi;iiiii~-i iiii!I
I
'J"
:
"
Fig. 7. Frames for calculating the angle of contact.
Using the rotation matrix (2.11), the transformations between
Ati,fi=R(dfi,
c~fi),
Aoi,o=R(do,,
¢~oi) .
Ct,
and
Cf,
or Co, and C O are given by (3.19)
The vectors f ' a ' and °b' have to be chosen so that they never point in direction of the contact normal, since then their projection on the tangential plane would be the null vector; the computation of the angle of contact would become impossible. A suitable choice is the z-axes of Cf, and C o, respectively. These vectors are at first to be expressed in frames Ct, and Coi in order to perform the projection on the
41
H. Hiirtl /Robotics and Autonomous Systems 14 (1995) 29-53
tangential plane by zeroing the z-components the X- and y-axes.)
of tia’ and “‘b’. (Since the tangential plane is spanned by
(3.20) To compute the an,gle of contact (Y,both vectors must be expressed in the same frame: h
a=A
fi,h
A ti,fi ‘.ia,
(3.21)
hb =A,,~A,i,,o’b,
(3.22) The angle between the x-axes of Cti and Coi is determined hJti =Af,,r#&(l
0
hx,I =A&&,(1
O)T,
0
by (3.23)
O)T~
(3.24) Since the arcus cosinus only gives angles between 0 and r, a sign has to be introduced: P
> 0,
if xoi X Xt, tt &i,0 7
Q 0,
if xoi X qi TJ fi,j,o,
(3.25)
i where tt means pa.rallel and TJ, means anti-parallel. 3.2. Static forces considering rolling and slipping Eqs. (2.16) and (2.17) can now be combined in order to obtain forces and torques. The vectors cfif,., fim,,)T can be computed vector k (the torque Oimoi equals zero because of the chosen friction). At first, a transformation from frame C,i to frame Cti
Ii
t’foi i
timoi =
AO,,t,
qti%j,ti)4i,ti
the joint torques depending on external from the components Oif,; of the force contact model, i.e. point contact with is made:
O ] [ Oi2] =[A”a,ri).
(3.26)
A,&
(The frames Coi anld Ctj have the same origin (the point of contact), so the vector t’rO,,tiis zero.) The next step is the transformation to frame Cfi: (3.27) Now the computation of the joint torques (2.17) is possible. The matrix Ati,fj has been computed in (3.19), the matrix A,,,ti can be determined in (3.24) (Fig. 7): A 0i.t;
sin /3 -cos p 0
0 0 -1
,
using the angle P
(3.28)
H. Hiirtl/ Roboticsand Autonomous Systems 14 (1995)29-53
42
3.2.1. Constraints This section follows the work of Kerr and Roth [12]. Added is the treatment of rolling and slipping. Because the method they suggested fails to solve the following optimization problem, a method that succeeds will be presented in Section 4.1. External forces fext and torques mext acting upon the object must be compensated by the manipulator with Eqs. (2.16) and (2.17):
(o Xt) ok
(3.29)
k mext
In general there will be more than one solution for the contact forces k, because for the nine components of k there are maximally six independent equations in (3.29). The solutions are a combination of the partial solution of (3.29) and one solution of the appropriate homogenous equation G" k h = 0: k = kp + kh,
(3.30)
where
kp = -G* " ( o°fext ] '
kh = N" A.
G* is the (9 × 6) right general inverse of G; the homogenous solution k h consists of a linear combination of the base vectors of the null space N of G. The m-dimensional vector A (m is the dimension of the null space) represents the internal grip forces, which must be exerted in addition to the forces kp (compensating the external forces) in order to fulfil several constraints. In this paper, the following constraints will be considered: (1) The normal force at the point of contact must point to the object to avoid loss of contact: (°ifol)z ~<0.
(3.31)
(2) The tangential force must lay in the friction cone to avoid tangential slipping on the object (fh is the friction coefficient):
( oifo,)x+( oif o , ) r - ~~ f h ( °i fo,)z"
(3.32)
(3) The joint torques ~'i must not exceed the constructional limits: (3.33)
"rmin • '/'i ~ "rmax •
(4) The normal force at the point of contact must not exceed a specific value in order to not destroy the object:
(Oifoi)Z ~ fmax"
(3.34)
These constraints lead to an optimization problem for the choice of the grip forces. In order to keep this quite simple (and therefore fast to compute), the only non-linear equation, that is, Eq. (3.32), has to be approximated linearly: the friction cone will be replaced by a friction "pyramid" whose sides touch the cone and are parallel to the x- and y-axes. By this procedure, additional "allowed" regions will occur, which can be avoided by reducing fh to fh = fh//V~- (Fig. 8). Eq. (3.32) then becomes o
v~- (°if°i)z ~<( f°~)x~<
o
I( fo~)z],
-~/~ ( fo~)z <~( fo~)y ~<
I(
fo,)zl.
(3.35)
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
43
Combining the constraints of Eqs. (3.31), (3.33), (3.34) and (3.35) (in this case n = 36) in one matrix inequality yields: 36×9
0 1 -1
0 0 0
-1 -f~ -f;
0 o 0
1 -1 0
-f~ -f; 1
9×1
0
0 0 0 0 0
0
--fmax "rmt~
D1 -D 1
-- ,rmax
0 1 -1
0 o o
-1
0 0 0
1 -1 0
-f~, -f~ 1
0
.k>~
-D
0
(3.36)
"rmin 2
0
--'Irmax
0 1
0 0
-1 -f~
-1 0 o
0 1 -1
-f~ -f~
0
0
1
D3 -D
D i are
0 0 0 0 0
--/max I
D2
where the
36× 1
0 0 0 0 0 -fm~x "rmin
3
'Irmax J
(3 X 3) matrices defined by
S ( rti.fi)Jlti,fihoi,t i
(see (2.17), (2.26) to (3.28)), fh is the reduced friction coefficient, %in, "rm~, are (3 X 1) vectors of the minimal/maximal joint torques, and fm~, is the maximal normal force allowed to act upon object. In short form (3.36) becomes H . k >~p.
When computing, tlae submatrices D i of the constraint matrix H are to be updated in each step for they contain information about the changing points of contact and joint angles. Substituting (3.30) in (3.36) yields a linear system of n inequalities in m variables A: H. N.A
>~p - H . k o.
(3.37)
44
H. H~irtl/ Robotics and Autonomous Systems 14 (1995) 29-53
x
Fig. 8. Linearizationof the frictioncone. 3.2.2. Optimization o f grasp forces
Each of the inequalities in (3.37) splits the m-dimensional space for A into an "allowed" and a "forbidden" half-space. The intersection of all allowed half-spaces defines a (generally) m-dimensional volume in which the components of ~t may be chosen freely without violating any of the constraints. If the dimension of this volume is less than m, then for at least one A~ only one value is allowed; if the intersection is empty, the grip is not stable since the constraints cannot be satisfied completely. The optimal choice for A is the one in the middle of the volume (because it has the greatest distance to any (hyper)-plane, defined by the constraints, which splits the space in an allowed and a forbidden half-space). In the two-dimensional case, this would be the center of the largest circle which fits into the allowed polygon. The distance of the selected A0 to the splitting plane of constraint i is given by d i = (H'N)i'A
o- (p -H'kp)
i,
(3.38)
where ( H . N)i is the ith row of the matrix H" N and ( p - H " kp) i is the ith component of this vector. If the distance is positive, A0 lies in the allowed half-space; analogously, a negative d i indicates the forbidden half-space. This allows to check a found choice. For an optimal choice, the A that yields the greatest value of the least d i has to be found. Therefore the optimization problem is: Maximize d(A) = m i n ( d i ) , i = 1 . . . . . n, subject to n constraints: H . N . A >/p - H . kp.
(3.39)
The function, maximize d(A), is not linear, steady, not differentiable in all R m and composed of linear functions d i. So, to find the optimum, both the simplex method (because the goal function is not linear) and the gradient method (because the goal function is not differentiable) will fail. A method that succeeds will be given in Section 4.1 (extracted from [24,25]). After having found the optimal A, Eq. (3.30) will yield the force k to be exerted and (2.17) finally computes the required joint torques.
45
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
4. Realization Fig. 9 shows the principal way for computing the manipulator's reaction to the given manipulation task. The numbers indicate the required equations in this paper. The additional required transformations of coordinates are not mentioned. The algorithm "Hooke-Jeeves" will be given below. 4.1. Finding m a x i m a in R n ( H o o k e - J e e v e s )
In order to compute the optimal internal grip forces (see Section 3.2.2), an algorithm considering the nonlinearity of the optimization function is required. The algorithm presented here (Fig. 10) [24,25] steps from an arbitrary initial point to the point with the greatest distance to each constraint (optimum). It is not required that the starting point lies in the "allowed" space. The basic idea of the algorithm is to test, for each component a ( i ) of a given starting point a, if the addition or subtrac.tion of a stepwidth l to this component yields a better (greater) distance than the value cmp. If this is true for at least one i, then an endpoint e, different from a, is returned (procedure search). This "searching" is repeated (taking the returned point e as the new starting point a) until no more improvement with the actual stepwidth is achieved. Then the stepwidth will be decreased and a new "searching" cycle will start, thus approaching the optimum. The interation is stopped, if the
I I
Input: Object's trajectoryand external forces ~Vo,h
315
I lfo, 1a.X, .l 330 I
lWo.h
I
k~ [ Runge-Kutta [ O n -~. 1
--t
Null space . ] N
3.3 13 2.16
r
3.39 Hooke-Jeeves
]
3.36
-1
H
~X I
3.30
I
[
2.17
]
3.24
]
lk
"C
3.22
I 0 ~ ~ ~ [ Output: Manipulator'sreaction, informationabout contact I Fig. 9. Manipulationflowchart.
46
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
la) procedure search(a, e, 1, crop) e:=a For i:=l to dim_x h:=e h(i):=h(i) + I yes
d(h) > cmp? ~
~
/ -
e:=h
no
h:=e h(i):=h(i) - 1
e:=h
]
(b) function optimize(..) normalize(A,b) ok:=false search(x, xn, sw, d(x)) yes
x=xn? _i,
~ _ sw'=a
no
SW
ok:=true I until (x <> xn) or (ok = true)
xw:=xn + (xn - x) srch(xw, xwn, sw, d(xn))
x:=xn J x:=xn sw:=a sw xn:=xwn until x=xn until ok:=true optimum:=d(x) optimum > 0?
yes optimize:=true
j
no optimize:=false
Fig. 10. Hooke-Jeeves.
s t e p w i d t h b e c o m e s s m a l l e r t h a n a c h o s e n v a l u e swmin. T h e s o - f o u n d o p t i m u m is v a l i d if t h e d i s t a n c e is g r e a t e r t h a n z e r o . I n o r d e r t o c o m p u t e t h e d i s t a n c e s c o r r e c t , t h e c o n s t r a i n t s a r e to b e H e s s e - n o r m a l i z e d (normalize(A,b)).
H. Hiirtl /Robotics and Autonomous Systems 14 (1995) 29-53
Problem: maximize d ( x ) = min(ai •x - b i) subject to the COnstraints the number of constraints.
47
>~b i, where i runs from one to
a i •x
S o l u t i o n (in Pascal notation).
function I I IO O I I I I I O
optimize(A:matrix; b:vector; var dim_x:integer):boolean;
A b x opt sw a swmin c_A dim_x optimize
x:vector; var
opt:real;
sw,
a,
swmin:real;
c_A,
matrix composed of the row vectors a(i) column-vector composed of the b(i) I: starting point; O: optimal vector ;found maximal distance stepwidth at start multiplicator for stepwidth (0 < a < 1) minimal stepwidth (exciting algorithm) number of constraints ,dimension of x (number of columns of A) txue, if an x was found that satisfies all COnstraints; otherwise: false
5. E x a m p l e
In this section, a concrete manipulation with the Karlsruhe Dextrous Hand will be presented. The Karlsruhe Dextrous'. Hand consists of three identical fingers, whose bases are fixed at the edges of an equal-sided triangle'.. The global frame C h is fixed at the center of this triangle. The transformations between the fingerbases Cb, and the global from C h are given by (all measures in mm):
Abl,h =
Ab2,h =
Ab3,h =
(0 1 0t ( 01 (0 sin30o cos30o) ( 0 os 0o (0 sin0° cos0°1 (0cos0° 0 -1
0 0
1 , 0
0
-- COS 30 °
-- 1
0
0
COS 30 °
-- 1
0
hrbl,h =
50
,
-80
- sin 30 ° ,hrb2,h=
--50 sin 30 ° ,
0
(5.1)
--80
--sin 30 ° ,
hrb3,h=
--50 sin 30 ° ~.
0
--80
Each finger consists', of three links connected with rotational joints. The length of the links are (link one is closest to the fingerbase): l 1 = 20 m m ,
12 = 55 m m ,
13 = 54 mm.
(5.2)
At the end of link three, a half-sphere-formed fingertip is fastened (r = 10 mm). By fastening frames at each joint in such a way that the x-axes point in the direction of the according link and the z-axes point in direction of the rotation axis (see Fig. 5), a transformation from the frame fixed at the end of link three to the base frame is obtained by ( c / = cos 0i, s i = sin Oi): ' Cl(C2C 3 -- S2S3)
Afl,b i =
SI(C2C 3 -
S2S3)
(C2S 3 + S2C3)
-- Cl(C2S 3 -t- $2C3) - - S l ( C 2 S 3 + $2C3) C2C 3 -- $2S 3
S1 --C 1 , 0
[ C1(13(C2C 3 -- $2S3) + 12c2 + l,) br fi,bi--- [ S1(/3(C2C3 -- S2S3) + 12C2 + 11) [
/3(C2S3 + $2C3) + 12S2
(5.3)
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
48
Eq. (2.12) then yields the transformations hrfi,h and Afi,h. The Jacobians are given by 0
12S3
0
12c3 + 13
- 1 3 ( c 2 c 3 - $2s3) - 12c2 - l 1
0
fiJv =
0 13 ,
c2S3 i $2C3 0 0 fiJw = C2C3 $2S3 0 0 1
0
(5.4)
1
The parameterization of the half-sphere-formed fingertip by the parameters */1 and */2 is given by: Crf2 _ */12_ */2
t'r
ti'fi
=
*/1
~
*/2
f'h
ti'fi
1 =-rf
¢rf2 - */12- */22 (5.5)
*/1
*/2
t=0.4 T
t=0
t=0.6 T t=0.2 T Fig. 11. Parallel projection.
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
49
t=T
t=0.8 T F i g . 11 ( c o n t i n u e d ) .
(r/1 and "/72 are measured along the y- and z-axes of Cfi , respectively; the function then yields the x-value; rf denotes the radius of the fingertip). The Jacobians required to compute (3.12) are -711 fiJr =
~rf2 _ ~12 _ , 2
-'q2 ~r 2 _ ~12 _ ~
1 0
1
,
--T/1
--'1"]2
~rfZ - r/2 - ~/2
~/rfZ- ~712- ,q2
1
0
0
1
f'J" = rf
0 1
(5.6) The object considered here will be an egg. The mathematical representation will be a half-sphere in the range z < 0 (radius b) and a rotational ellipsoid in the range z > 0 (radius a and b). In this range, the normal will not point in the same direction as the location vector. Parameter ~ 1 is measured along the x-axis, f2 along the z-axis of C o. By introducing the abbreviations b2 1 b2 or= a4 a2,, ~ a2, the required values are found to be:
o to,,° __
-+- V Q,2
_/3f~ - f2
,
oro. o ~
z >/0;
,
z < 0;
(5.7a)
~2 1
O^
no, o
2
b
~2
O^
z>~0; no,,o =
1
_+~/b 2 _ f 2 _ f ~
~:2
z
(5.7b)
50
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
/
i t=0
t=0.2
t=0.6
T
t=0.8
t=0.4 T
t=T
Fig. 12. View onto x - z plane.
T
T
H. Hiirtl/ RoboticsandAutonomousSystems14 (1995)29-53
51
0
1
-sea =
± V/b2-fl¢22 - ¢ 2 0
%=
,
z>/O;
(5.8a)
1
1
0
-¢1 + b~_~2 ¢2
-~2 -I- ~ b 2 _ ¢ 2 _ ¢ 2
0
1
,
z ~<0;
a¢1¢:
1
1+
- ¢1
1
° J . = b , 1/]---~a-~
(5.8b)
a¢ 2
0/¢2¢2 -- ]~2¢2
± ~/bE_flC2_¢ 2
± (1+acE)~/b2_fl¢22_¢ 2
0
fl(1 + a¢2) - ot/~:2
, z>~O;
(5.8c)
1 + ore 2
1[ °Jn=
1
o
-¢1
-¢2
± (b2_e-~-_e12
± (b2_¢2_¢ 2
0
1
,
z
(5.8d)
Eqs. (3.3), (5.5) and (5.7a) yield together with Orf,,o = (G, ry, rz) T and Af,,o = (ai,y) (which depends on 0) the ¢(~/) relation and the conversion matrix K:
(¢1 = (rx+al,l~r2--'02--'02+al,2"01+al,3"02) , ~2
rz + a3,1~/r2
,/2 _ .02 + a3,2.01 + a3,3.02 ]
--a1,1.01
--a1,1.02
~/r2_~,2_.022 +al,2 K=
(5.9)
_ a3,1'01
}/r2_.02_.02 +al,3 _ a3,1"02
+ a3,2
r -.01
(5.10)
+ a3,3
This egg (the origin of C o, a = 40 mm, b = 25 ram) is located at point (0, 0, - 150) T with respect to C h. It is rotated 45 ° around the x-axis of C h and will be rotated - 9 0 ° around this axis while the manipulation is going on. Time runs from t = 0 to t = T. Fig. 11 shows the manipulation in a parallel projection (x = axis to the right, y-axis into the paper, z-axis upwards); Fig. 12 gives a view on the y - z plane (y-axis to the right, z-axis upwards). Here, the effect of rolling and slipping of the fingertip can clearly be seen.
6. Conclusion
This paper has ,described techniques for manipulating objects with a dextrous robot hand when the effects of rolling and slipping are taken into account. Improvements to previous work concerning
52
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53
kinematic and kinetic computations have been made by removing redundancies; these support fast calculation without loss of information. The evaluation of stable grasp situations under several constraints leads to non-linear optimization problems, which can be solved by the given algorithm. The proposed implementation scheme simplifies also the adaption to manipulators other than the Karlsruhe Dextrous Hand.
Acknowledgement This research work was performed at Robotics, Prof. Dr.-Ing. Ulrich Rembold University of Karlsruhe, 76128 Karlsruhe, German Research Foundation (Deutsche
the Institute for Real-Time Computer Control Systems and and Prof. Dr.-Ing. Riidiger Dillmann, Faculty of Informatics, Federal Republic of Germany. The work is supported by the Forschungsgemeinschaft).
References [1] H. H~irtl, Analyse der Manipulationsvorg~inge mit Mehrfinger-Greifersystemen unter Beriicksichtigung von Rollen und Rutschen der Fingerspitze, Diploma thesis, Faculty for Informatics, University of Karlsruhe, 1992. [2] J. Kerr, An analysis of multifingered hands, Ph.D. thesis, Dept of Mechanical Engineering, Stanford University, 1985. [3] J. Kerr and B. Roth, Special grasping configurations with dextrous hands, IEEE Int. Conf. on Robotics and Automation, San Francisco, CA (1986). [4] M.T. Mason, Manipulator grasping and pushing operations, Ph.D. thesis, Dept. of Electrical Engineering and Computer Science, Massachusetts Institute of Technology (1982). [5] M.T. Mason and J.K. Salisbury, Robot hands and the mechanics of manipulation, in: Artificial Intelligence (compilation of their thesis) (Cambridge, MA, MIT Press, 1985). [6] J.K. Salisbury and J.J. Craig, Articulated hands: Force control and kinematic issues, Int. Jnl. of Robotics Research 1 (1) (1982) 4-17. [7] D.E. Whitney, Quasi-static assembly of compliantly supported rigid parts, ASME Trans. on Dynamic Systems, Measurement, and Control 104 (1) (1982). [8] G. W6hlke, A programming and simulation environment of the Karlsruhe dextrous hand, Jnl. o f Robotics and Autonomous Systems 9 (1990) 243-263. [9] G. W6hlke, Development of the Karlsruhe dextrous hand, Proc. Int. Conf on New Actuators (ACTUATOR), Bremen, Germany (1992). [10] G. W6hlke, Automatic grasp planning for multifingered robot hands, Jnl. of Intelligent Manufacturing 3 (5) (1992) 297-316. [11] J.J. Craig, Introduction to Robotics: Mechanic and Control (Reading, MA, Addison-Wesley, 1986). [12] J. Kerr and B. Roth, Analysis of multifingered hands, Int. Jnl. of Robotics Research 4 (4) (1986) 3-17. [13] J.M. Hollerbach, Robot hands and tactile sensing, in: W.E.L. Grimson and R.S. Patil, eds., A I in the 1980th and Beyond (Cambridge, MA, MIT Press, 1987). [14] T. Okada and S. Tsuchiya, On a versatile finger system, Proc. 7th. Int. Symposium of Industrial Robots (1977). [15] T. Okada, Computer control of multijoined finger system for precise object handling, IEEE Transactions on Systems, Man and Cybernetics SMC-12 (3) (1982). [16] S.C. Jacobson, J.E. Wood, D.F. Knutti and K.B. Biggers, The Utah/MIT dextrous hand: Work in progress, First Int. Conf. on Robotics Research (Cambridge, MA, MIT Press, 1984). [17] S.C. Jacobson et al., Design of the Utah/MIT dextrous hand, IEEE Proc. Conf. on Robotics and Automation, San Francisco, CA (1986). [18] S. Narasiham, Dextrous robotic hands: Kinematics and control, M.S. thesis, Department of Electrical Engineering and Computer Science, MIT 1988. [19] K. Salisbury, D. Brock and S. Chiu, Integrated language, sensing and control for a robot hand, in: O.D. Faugeras and G. Girault, eds., Robotics Research, Third International Symposium (Cambridge, MA, MIT Press, 1986). [20] V. Nguyen, Constructing stable, force-closure grasps, M.S. thesis, Department of Electrical Engineering and Computer Science, MIT, 1986. [21] M.A. Arbib, T. Iberall and D. Lyons, Coordinated control programs for movements of the hand, Center of Systems Neuroscience and Laboratory for Perceptual Robotics, COINS Technical Report 83-25, MA, 1983.
H. Hiirtl / Robotics and Autonomous Systems 14 (1995) 29-53 [22] [23] [24] [25]
53
D.M. Lyons, A simple set of grasps for a dextrous hand, IEEE Conf. on Robotics and Automation, St. Louis, MO (1985). T. Iberall, Grasp planning for human prehension, Int. Joint Conf. on Artificial Intelligence, Milan, Italy (1987). I.N. Bronstein and K.A. Semendjajew, Taschenbuch der Mathematik (Harri Deutsch Vedag, 1987). I.N. Bronstein and K.A. Semendjajew, Ergiinzende Kapitel zum Taschenbuch der Mathematik (Harri Deutsch Verlag, 1991). Harald Hiirtl, born on September 15, 1966 in Schwenningen, Germany, studied physics at the University of Karlsruhe from 1987 to 1993. His diploma thesis was performed at the faculty of informatics and is the base of this paper. Since September 1993 he is working at his dissertation for Dr.-Ing. at the PhysikalischTechnische Bundesanstalt in Braunscbweig, the German National Institute of Metrology. The research goal is to develop computer simulations of traffic speed control systems.