Sunteți pe pagina 1din 8

In Proceedings of the 1996 International Conference on Intelligent Robots and Systems (IROS '96)

Virtual Actuator Control


Jerry Pratt, Ann Torres, Peter Dilworth, Gill Pratt
MIT Leg Laboratory, Cambridge, MA 02139
http://www.ai.mit.edu/projects/leglab/

Abstract torque cannot be commanded but can still be mea-


Robots typically have an individual actuator at each sured or inferred.
joint which can result in a non-intuitive and dicult We have applied the virtual actuator technique to
control problem. In this paper we present a control a simulated hexapod robot. The virtual actuators al-
method in which the real joint actuators are used to lowed us to ignore the non-linearities due to the legs
mimic virtual actuators which can be more intuitive and instead treat the hexapod as if it were a space ship
and hence make the control problem more straightfor- with virtual thrusters and reaction wheels. We could
ward. then apply simple linear control laws with the virtual
Our virtual actuator control method requires a so- actuator generalized forces as the input to the plant.
lution to the force distribution problem when applied Using this technique, the hexapod walked with a tri-
to parallel mechanisms. An extension of Gardner's pod gait while simultaneously balancing a pendulum
Partitioned Actuator Set Control method is presented. and tracking an object.
This extended method allows for dealing with con-
strained degrees of freedom in which the torque cannot
be speci ed but can be measured.
2 Virtual Actuator Implementation
The implementation of virtual actuators is straight-
A simulated hexapod robot was developed to test the forward. There are four major steps: de nition of the
proposed control method. The virtual actuators al- virtual actuator reference frames, computation of the
lowed textbook control solutions to be used in control- forward kinematics, calculation of a Jacobian matrix,
ling this highly non-linear, parallel mechanism. Using and computation of the joint torques.
a simple linear control law, the robot walked while si- For parallel virtual actuators, one must divide the
multaneously balancing a pendulum and tracking an generalized force among the individual serial paths.
object. This requires solving a system of equations (i.e. invert-
ing a matrix). We describe an extension of Gardner's
1 Introduction Partitioned Actuator Set Control Technique method
Due to design constraints, robots typically have ac- which minimizes the necessary computational require-
tuators at the joint level and hence the actuation space ments. All equation derivation can be performed o -
is non-intuitive. For example, it is often not clear how line.
to specify torques at the ankle, knee, and hip joints of 2.1 De ning the Virtual Actuator Frames
a legged robot in order to produce smooth motion of
its torso. Control of robots may be made easier if they Each virtual actuator requires three coordinate
are equipped with a more intuitive set of actuators. In frames. These are the action frame fBg, the reac-
this paper we develop a technique for mimicking \vir- tion frame fAg, and the reference frame fOg (Figure
tual actuators" on a robot by applying joint torques 1). The action frame de nes the virtual actuator con-
in such a way that the result on the robot is identical nection upon which the generalized forces act. The
to the result the virtual actuators would induce. For reaction frame de nes the second attachment point of
example, we could implement virtual actuators on a the virtual actuator. The reference frame is the coor-
walking robot to produce forces directly between each dinate system in which all displacements, forces, etc
foot and the center of mass. The virtual actuators may are expressed.
produce a more intuitive control space, which can re- In most treatments of similar control methods, the
sult in a more straightforward control problem. reaction frame is assumed to be xed to ground and
We describe a method for creating a single virtual usually is not even mentioned. However, one must
actuator out of several serial chains acting in paral- remember Newton's Third Law. One cannot simply
lel. This method is useful for controlling multi-legged describe a force acting at a point. One must describe
creatures or multi-manipulator work cells. Such sys- forces acting between two points. Similarly, in the vir-
tems require a solution to the force distribution prob- tual actuator context, one cannot simply de ne a gen-
lem. We present a solution which is an extension eralized force acting on a frame but must de ne a gen-
to Gardner's Partitioned Actuator Set Control Tech- eralized force acting between two frames.
nique (PASC) [2, 3]. Our solution allows for the in- The action, reaction, and reference frames do not
corporation of actuator constraints such as unactuated need to be inertial, nor cartesian, nor be directly at-
degrees of freedom or degrees of freedom in which the tached to parts of the physical robot. All three frames
B AJ
B = @~ AB X~ (2)
O @
The Jacobian can be used for several mappings. It can
VA be used to calculate generalized velocities by
AX~ A ~
B _ = B J _ (3)
A which holds by de nition. To express velocities with
respect to the reference frame, we again use the rota-
tion matrix,
Figure 1: Virtual Actuator Reference Frames. fBg is the ~ O A~
B _ ) = AR B X_
O (A X (4)
action frame. fAg is the reaction frame. fOg is the reference
frame. VA represents the virtual actuator. The Jacobian is also used to transform generalized
forces to joint torques as discussed next.
There are several techniques to compute the Jaco-
bian for the 3D case [6, 1]. One method described
simply need to be well de ned. In most cases, how- in [1] is to recursively compute the joint to cartesian
ever, all three frames will be cartesian; they will be velocity relationship (Equation 3) and extract the Ja-
connected to logical points on the robot such as joints, cobian Matrix.
links, or end e ectors; and the reference frame, fOg, 2.4 Computing the Joint Torques
will either be inertial or coincide with fAg or fBg. To compute the joint torques which will success-
In our use of the reference frame, fOg, we are not fully emulate the virtual actuator, we use the following
concerned about its location, and in fact it need not equation
be speci ed. All that is needed is the relative rota-
tion between the reference frame and the action and ~ = AB J T AB F~ (5)
reaction frames. where ~ is the vector of joint torques (or forces for
Choice of the virtual actuator frames is a major
part of de ning a virtual actuator and must be done prismatic joints) and AB F~ is the generalized force vec-
carefully if the desired results are to be obtained. For tor acting on action frame fBg from reaction frame
example, both the action and reaction frames might fAg de ned with respect to frame fAg. The general-
be de ned so that there cannot be a relative rotation ized force vector will typically consist of a force and
between them in any orientation of the robot. This is moment vector.
perfectly valid but it then makes it impossible to pro- Equation 5 can be derived starting from the en-
duce a relative torque between the two. The best tools ergy balance ~ T  ~ = F~ T  X~ [1]. It requires that the
for determining how to attach the virtual actuator's generalized forces which act on action frame fBg be
frames is physical intuition, insight, and experience. speci ed in terms of reaction frame fAg. If the forces
2.2 Deriving the Forward Kinematics are expressed in reference frame fOg, we must use the
Computing the forward kinematic map, AB X~ , is well rotation matrix from fAg to fOg to express them in
documented [1]. For any serial manipulator with rev- fAg,
A F~ = AR O (A F~ ) (6)
olute and prismatic joints, AB X~ will be a closed form B O B
function of the joint angles and prismatic displace- We can combine Equations 5 and 6 to get
ments, ~ , lying between frames fAg and fBg.
To express the kinematics between frames fAg and ~ = AB J T AOR O (AB F~ ) = O (AB J )T O (AB F~ ) (7)
fBg with reference to frame fOg, we use the rotation where O (AB J )T = AB J T AOR.
matrix between fOg and fAg One point of note is that \admissible" generalized
B ~ ) = AR B X
O (A X O A~ (1) forces lie in the row space of O (AB J )T . By admissi-
ble, we mean forces which can be realized using the
Note that we ignore the displacement between fOg available joint actuators. For example, if no relative
and fAg. This is because we are concerned with the motion can be realized along a certain direction, then
relative kinematics between the reaction and action no matter how large a force is produced along that di-
frames and not the absolute location of any of the rection by the virtual actuators, no e ect will result on
frames, with reference to fOg or World Coordinates. the robot (assuming rigid links). Similarly, any gen-
All virtual actuators do not necessarily need to pro- eralized forces which lie in the null space of O (AB J )T
vide actuation. They can be used with the forward will produce no torque at the joints and hence have
kinematics alone and act simply as virtual sensors. no e ect on the robot. Whether or not such an inad-
2.3 Deriving the Jacobian Matrix missible generalized force should be allowed probably
Let the Jacobian Matrix for a virtual actuator be depends on the implementation. In any case, an inad-
de ned as: missible force should be detectable. An easy test is to
We now have a mapping from sub-actuator gener-
alized forces to joint torques. However, we wish to
specify a single generalized force to act on the action
frame. Since the action frame and reference frame are
coincidental for all the sub-actuators, the vector sum
of the individual generalized forces must equal the de-
sired generalized force,
p
X
O (Ai F~ ) =O (A F~ ) (9)
B B
i=1
We need to solve for O (AB F~ ) in terms of O (AB F~ ). To
i

do this we must add a number of constraints. Some of


these constraints will arise due to the inadmissibility of
certain individual force directions. These constraints
can be determined by examining the row space of the
individual O (AB J )T . Others will arise from constraints
i

Figure 2: Parallel Virtual Actuator Reference Frames. Frame on the robot such as unactuated joints. The rest of the
fBg is the action frame. Frames fAi g are the reaction frames. constraints can be used as design degrees of freedom.
Frame fOg is the reference frame. VA represents the conglomer- Once enough constraints have been determined, we
ate virtual actuator which is comprised of the individual virtual will have a square invertible constraint matrix, K , so
actuators V Ai . Frame fA g is an imaginary construct which that the constraints can be written in the form
represents the reaction frame of the conglomerate virtual actu- 2
ator. ~ F~ ) 3
O (A 1
6 B 7
"
O (A F~ )
 # 6
6
6
~ 2
7
O (B F~ ) 7
A
7
B = K 66 . 77 (10)
see if it lies in the row space of the Jacobian transpose. ~c .
When implementing parallel virtual actuators, as de- 6
6 . 7
7
scribed below, it is important that the inadmissible 4
~
5
force constraints be known for each of the serial paths O (B F~ )
A p

of the virtual actuator so that the desired generalized


force can be accurately divided among the individual and the individual sub-force vectors solved for by in-
serial paths. verting the constraint matrix, K .
2.5 Parallel Mechanisms and The elements of ~c can be extra control variables,
such as individual interaction forces, or 0 for con-
Multi-Frame Virtual Actuators straints which are solely a function of the forces
With a serial link structure all the necessary equa- O (A F~ ). Of course, we need not retain the columns of
tions are computationallyinexpensive. With a parallel B
i

structure a matrix inversion is necessary in solving the K ,1 which are multiplied by 0. We can now substitute
force distribution problem. back into 8 to get the nal force to torque relationship.
We start by de ning one action frame fBg, one ref-
erence frame fOg and multiple reaction frames fAig
as in Figure 2. Frame fA g is a construct used to 2.5.1 Inverting the Constraint Matrix
represent all of the frames fAi g and can be viewed Solving Equation 10 requires inverting a potentially
as the conglomerate reaction frame. The parallel vir- large sparse matrix. We show here a method for taking
tual actuator can be considered as multiple serial sub- advantage of the structure of the constraint matrix, K ,
actuator acting on the same action frame. Each serial in order to reduce computational requirements. The
sub-actuator has a corresponding Jacobian which is method is an extension of Gardners's Partitioned Ac-
calculated as in Section 2.3. We combine these to get tuator Set Control Technique [3, 2].
Gardner partitions the actuators into a Minimum
Actuator Set (MAS) and a Redundant Actuator Set
F~ )
2 3 2 32O A 3
~1 O (A1 J )T  (B1 (RAS). We stress here that we are not dealing with
B 0 0
6 7
6 ~2 7
6
O (A2 T
J)   
76 A
7 6 O( 2
7
F~ ) 77 actuators at this level but rather virtual force dis-
6 7
6
6
0 B 0
76 B tribution. Therefore we specify the Minimum Force
6 7=6
6 . 7 6 . . .
76
76 .
7
7 Set (MFS) and the Redundant Force Set (RFS). We
6 .. 7 6 .
.
.
.
..
. .
. 76 .
. 7 extend Gardner's method by adding the Constrained
4 5 4 54 5
Force Set (CFS) for dealing with natural constraints,
~p 0 0    O (AB J )T
p O (Ap F~ )
B such as underactuated legs, point feet, and limp joints.
(8) We assume that all the serial paths of the parallel
virtual actuators are of the same structure, with the
same number of constraints. We do this only to sim- with an unactuated limp joint, tc = c0 while for a joint
plify the following explanation. The mathematics is containing a passive linear spring, t = k.
easily extended to the general case. We can reduce the size of the matrix in equation 11
We de ne the following constants, by taking advantage of the sparseness of the natural
n dimension of the generalized force constraint blocks. Each natural constraint row can be
to be applied written as
p number of serial paths of the
parallel virtual actuator tic = J ia f ia + J ib f ib
l number of constraints in each
serial path Solving for f ib we have,
d = n-l number of non-constrained
degrees of freedom per serial path f ib = Qi f ia + (J ib ),1tic (12)
r = pd - n number of redundant serial path
virtual force actuators where,
The number of force elements in the Minimum Qi = [,(J ib),1 J ia ]  (13)
Force Set will be n; in the Constrained Actuator Set l d

l per serial path (pl total); in the Redundant Force We can substitute this back into Equation 11 to get
Set r. How the forces are partitioned into these sets a reduced set of equations,
depends on the design constraints one wishes to imple- 2
f 1a
3
ment and the limitations placed on these constraints 2
fa
3 2
I I  I 
3 d

by the extended partitioned force set method. d d d d d d d


6
6 f 2a 7
7
As an example, suppose we have a 100 leg millipede 6
4 fb , u 7 6
5=4 Q1 Q2    Qp 76
56
d

..
7
7
with 2 joints per leg and point feet. We would have l l
6
. 7
n = 6 for the 3 elements of the force vector and 3 c ,v
r r S1 S2    Sp 4 5
elements of the moment vector which we wish to exert; f pa
p = 100 for the 100 legs; l = 4 for the 3 constraints of
d
(14)
no torques at the feet and the 1 constraint provided where,
by the underactuation of having only 2 joints per leg; X
d = 2 meaning each leg can provide a 2 dimensional u = (J ib ),1tic
force vector from the 6 dimensional space; and r = 194 l
i
meaning we have 194 redundancies and therefore can X
specify up to 194 design constraints. The Minimum v = Dib (J ib ),1tic
Force Set would contain 6 elements; the Constrained
r
i
Force Set 400; and the Redundant Force Set 194. S i = [Dib Qi + Dia ]  (15)
We rst partition the virtual forces into the Con- r d

strained Force Set (CFS), f ib , and those not in the We have now reduced the matrix size from np  np
CFS, f ia , and rearrange Equation 10 into the follow- to dp  dp by eliminating the Constrained Force Set
ing form, (CFS). Note that Equation 14 is still in the general
2 32 form, i.e. we have put no restrictions on the design
2
fa 3 I 0 I 0  I 0 f 1a 3 constraint equations. We could stop here and invert
the new dp  dp matrix, if it were computationally fea-
d d d l d d d l d d d l
d d
6 b7 6 0 I 0 I  0 I 76
7 6 f 1b 7
6f 7 6
7 6
l d l l l d l l l d l l
76 l 7 sible. In order to further reduce the size of the matrix,
we can eliminate the Redundant Force Set (RFS) by
l
6 7 6 2a 7
6 t1c 7 6 J 1a
6 J 1b 0 0  0 0 7 6 fd 7
6 l 7 6 l d l l l d l l l d l l
76 7 specifying our design constraints in a proper manner.
6 7
6 t2c 7 6
7=6
0 0 J 2a J 2b  0 0 7 6 f 2b 7
76 l 7 Similar to [3], we specify the Redundant Force Set,
f r , in terms of the Minimum Force Set, f m .
l d l l l d l l l d l l
6 l 7
6 7 6 76
76 . 7
6 .. 7 6 .. .. .. .. . . . .. .. 76 . 7
6 . 7 6
6 7 6 . . . . . . 76 . 7 7 fr = c , B  fm (16)
6 pc 7 6 pa pb 76
7 4 f pa 7
r r r n n
4t 5 6
l 4 0 l d
0
l l
0
l d
0
l l
 J 
l d
J
l l 5 d 5
where f r is the Redundant Force Set, f m is the Mini-
c D1a D1b D2a D2b    Dpa Dpb f pb mum Force Set, c is a vector of variables or constants,
r r d r l r d r l r d r l l
(11) and B is the design constraint matrix.
Writing the design constraints in terms of Equation
where I is the identity matrix, 0 is the zero matrix, 16 requires that
J ia , J ib are natural constraint matrices, and Dia , Dib = 0 8i
Dib are design constraint matrices. The Constrained
Force Set consists of the forces f ib while the forces f ia and Dia are restricted so that we can rearrange Equa-
belong in the Minimum and Redundant Force Sets. tion 14 into the following form,
The subscript on each matrix block show the size of
the block. 
f 
"
Am Ar 
#"
fm
#
The constrained torques, tic are those which can be
c = B I (17)
n n n n r n

measured or inferred but not controlled. For example, r fr


r n r r r
We can now eliminate the RFS, f r , from Equation
17 to by substituting Equation 16 into 17 to get
[f , Ar c] = [Am , Ar B ]  [f m ]
n (18) n n n

m
To solve for the MFS, f , we must invert the n  n
matrix in Equation 18. The Redundant Force Set is
then computed by plugging back into equation 16. Fi-
nally, we can rearrange the Minimum and Redundant
Force Sets to get f ia and substitute back into Equa- Figure 3: Drawing of hexapod, used in the 3D example, stand-
tion 12 to solve for the Constrained Force Set. ing on three of its six legs. The other three legs are not shown
In order to use the above method, one must write for clarity.
all the design constraints in the form of Equation 16.
In writing these constraints, one must specify the Re-
dundant Force Set and the Minimum Force Set. The
remaining forces are the Constrained Force Set. One
must make sure that the choice of design constraints and then solve for f r2 by substituting back into Equa-
allows for a solution of Equation 18 to exist. tion 19.
Examining Equations 14 to 18 we see that we take The pseudo-inverse still requires inverting an n  n
p [l  l], and 1 [n  n] matrix inversions in solving for matrix so our computational requirements are about
the virtual forces applied to each serial path. These the same as the previous method.
inversions will take signi cantly less computational re-
sources to perform than the original np  np inversion.
Since the computational complexity of matrix inver-
sion scales with the cube of the matrix size, the above 3 Implementation on a Hexapod
method is O(pl3 + n3) whereas inverting the original We present a three dimensional example of a hexa-
matrix is O(p3n3 ). pod robot alternately being supported by tripods com-
posed of three of its six legs. Using three legs for sup-
2.5.2 Pseudo-Inversion of the Constraint Ma- port allows the hexapod to be statically stable and is
trix a typical snapshot of the tripod walking gait.
The above discussion assumed that we speci ed r de- Figure 3 shows the hexapod model standing on
sign constraints. In some cases, we may not wish to three legs. Figure 4 shows a close up view of one of the
specify as many design constraints, and we may not legs. There is one actuated degree of freedom at the
wish to be limited to specifying all the constraints in knee and two at the hip. The knee angle is k and the
hip angles are h1 and h2 . If the joint angles are all
i

terms of Equation 17. Suppose we wish to specify only zero, the leg will point straight down from the body.
i i

s design constraints, where s < r. If we specify the Each leg is comprised of an upper and lower link, both
design constraints in the form, of length L. The location of the leg with respect to
f r2 = c , B 1 f m , B 2 f r1 (19) the action frame fBg is (Px ; Py ; 0). We assume that
s
we can measure only the angles of the three joints of
then instead of Equation 17, we will have, each of the three legs.
We wish to specify a generalized force, B (AB F )
fm
2 3 which acts on the body from the three legs. We must
"
[f , Ar2 c]
# "
Am Ar1 Ar2 # n
determine the mapping from the desired generalized
= 1 2 ,
 6 r1 7
6
force to the virtual forces applied by each leg and -
n n
f 7
n n (r s) n s

c B  B  , I  4 r,2 5 r s
nally to the joint torques.
s s
fn s (r s) s s

The Jacobian from the reaction frame to the action


(20) frame for a given leg, B (AB J ) is determined via an
s
i

Utilizing the structure of this matrix, we get the iterative computation of the joint velocity to cartesian
following set of Equations, velocity mapping, as described in [1]. We can extract
the elements of the Jacobian transpose which map the
"
fm
# virtual model generalized forces to joint torques for

f
  m r2 1
[A , A B ]
r1 r2 2
[A , A B ]
 n the ith leg,
= n r,s
n n n
f r,1
r s
(21) 2 fx 3
i

6 fyi
The above matrix is non-square. To solve the above " ki #
6
7
7
equation for f m and f r1 , we can use the Moore- h1i = J T 6 fzi
6
7
7 (23)
Penrose pseudo-inverse, h2i 6 nxi
4
7
5
nyi
A+ = AT (AAT ),1 (22) nzi
MFS = ffx1 ; fz1 ;fx2 ; fy2 ;fz2 ; fz3 g
RFS = ffx3 ; fy3 ;fy1 g
CFS = fnx1 ;ny1 ;nz1 ;nx2 ;ny2 ;nz2 ;nx3 ;ny3 ;nz3 g

The terms of the constraint equation (11) are now,


2
fx 3 2 3
nx 2 3
0

f a = 4 fy 5 ; f b = 4 ny 5 ; c = 4 0 5
fz nz 0
" #
0 0 0
 ,1 0 0 1 0 0

D1a = 0 0 0 ; D2a = 0 ,1 0 ; D3 a
= 0 1 0
0 1 0 0 ,2 0 0 0 0

D1b = D2b = D3b = 0 (27)

The elements of the natural constraints, J ia and


J ib are extracted from the Jacobian Transpose. The
Minimum and Redundant Force Sets are acted on by
Figure 4: Diagram of a single leg of the hexapod example. J ia where
There is one actuated degree of freedom at the knee and two at
the hip. The knee angle is k and the hip angles are h1 and J ia ]1;1 ,Ls 2 (c + 1 ch1i )
h2 . The leg links are both of length L. The location of the leg [ = h i ki h i +

with respect to frame fBg is (Px , Py , 0). [J ]1;2


ia
= Lch2i (cki +h1i + ch1i )
[J ]1;3
ia
= Lski+h1i + Lsh1i + Pyi ch2i , Pxi sh2i
[J ]2;1
ia
= ,Lch2i (1 + cki ) , Pyi ski +h1i
[J ]2;2
ia
= ,Lsh2i (1 + cki ) + Pxi ski+h1i
2 ,L s 2 c 1
h i h i 0 ,P yi
3 [J ]2;3
ia
= ,Pyi sh2i cki +h1i , Pxi ch2i cki +h1i
6 L ch2i ch1i 0 +Pxi 7 [J ]3;1
ia
= Lch2i ski , Pyi cki +h1i
6 7
6 L sh1 , Pxi sh2i + Pyi ch2i ,Pxi sh2i + Pyi ch2i 0 7 [J ]3;2 Lsh2i ski + Pxi cki+h1i
ia
=
J =6
i 7
6
6 ,ch2i ,ch2i 0 7 7 [J ]3;3
ia
= Pyi sh2i ski +h1i + Pxi ch2i ski +h1i
4 5
,sh2i ,sh2i 0

0 0 ,1
(24)
while the Constrained Force Set is acted on by J ib
where cx = cos(x ) and sx = sin(x ). where
Since no moments can be applied at the point feet
each leg has three natural constraints. Following the 2 ,c 2 ,s 2 0
3
method in Section 2.5.1 we have
h i h i

( J ib ) = 4 sh2i cki +h1i ,ch2i cki +h1i ,ski+h1i 5 (28)


n = 6; p = 3; l = 3; d = 3; r = 3 (25) ,sh2i ski +h1i ch2i ski +h1i ,cki +h1i
To reduce the size of the matrix to be inverted, we The rst six rows of the constraint matrix state that
must partition the individual components of the vir- the sum of the virtual force and moment vectors for
tual forces into the Minimum Force Set (6 elements), each of the individual legs equals the total virtual force
Redundant Force Set (3 elements), and Constrained and moment vector acting on the body at frame fBg.
Force Set (9 elements). For our 3 design constraints, The next three sets of three rows de ne the natural
we decide to match the horizontal forces of legs 2 and constraints of zero torque at each foot. The last three
3 and match the lateral force of leg 1 with the sum of rows are the design constraints chosen in Equation 26.
the lateral forces of legs 2 and 3, Note that the angles the foot makes with frame
fAi g do not appear in any of the previous equations.
fx3 = fx2 ; fy3 = fy2; fy1 = 2fy2 (26) In order to derive these equations, X-Y-Z Euler an-
gles were used at the feet. The foot angles did not
These design constraints are written in the terms appear in the torque-force relationship (Equation 23).
of Equation 16 if we partition the virtual forces as However, they did appear in the natural constraints,
follows, J ia and J ib . The natural constraint equations de ne
a 3 dimensional subspace of the 6 dimensional virtual s5;2 = ,P x1 + Lsh21 (sh11 +k1 + sh11 )
force space. This subspace is the space in which \ad- s5;3 Lch12 (,ck2 , 1) + Lch13 (,ck3 , 1)
missible" virtual forces can be applied. We veri ed
=
+Lsh12 sk2 + Lsh13 sk3
that this subspace is the same for any foot angles.
Therefore we were able to arbitrarily set the foot an- s5;5 = ,Px2 + Lsh22 (sh12 (ck2 + 1) + ch12 sk2 )
gles to zero. s5;6 = ,Px3 + Lsh23 (sh13 +k3 + sh13 )
An intuitive explanation for why the foot angles do s6;1 ,Py1 , Lch21 (sh11 +k1 + sh11 )
not matter is that virtual forces are being applied from
=

frame fAig to frame fBg with respect to frame fBg. s6;3 = ,Py2 , Py3 , Lch22 (sh12 +k2 + sh12 )
How we de ne frame fAig therefore doesn't matter, ,Lch23 (sh13 +k3 + sh13 )
as long as we can specify the foot angles in some way. s6;4 = 2 Px1 + Px2 + Px3 , 2 Lsh21 (sh11 +k1 + sh11 )
Therefore, it is arbitrary what the foot angles are and ,Lsh22 (sh12 +k2 + sh12 ) , Lsh23 (sh13 +k3 + sh13 )
we can set them to zero in order to eliminate them
from our equations.
The submatrix, J ib , happens to be orthonormal so
that its inverse is simply its transpose, To solve for the Minimum Force Set, we need to
invert the 6  6 matrix in Equation 31. The design
(J ib ),1 = (J ib )T (29) constraints (Equation 26) are then used to solve for the
We eliminate the Constrained Force Set to get the Redundant Force Set in terms of the Minimum Force
following elements in Equation 14, Set. Equation 12 is used to solve for the Constrained
Force Set in terms of the Minimum and Redundant
S i = Dia ; ul = 0; vr = 0 (30) Force Sets and nally Equation 23 is used to compute
the joint torques.
We now have a relatively small set of equations for
coordinating three legs of a hexapod robot.
Qi ]1;1
4 Hexapod Simulation
[ = 0

[Q ] 1;2 Lcki +h1i + Lch1i


i

[Q ] 1;3
=

Pyi + Lch2i (ski +h1i + sh1i )


A hexapod robot was created using simulation soft-
i
= ware which emulates physically based dynamics [9].
[Q ] 2;1
i
= ,L(cki+h1i + ch1i ) The simulated hexapod has a mass of approximately
[Q ] 2;2
3.8kg, is 45cm in length, and stands 15cm tall. Vir-
tual Actuator Control was applied to the hexapod in
i
= 0

[Q ] 2;3
i
= Lsh2i (ski +h1i + sh1i ) , Pxi order to make it perform a simple walking algorithm
[Q ] 3;1
i
,Lch2i (ski +h1i + sh1i ) , Pyi as detailed by Torres [14].
=
Virtual actuators were used to emulate simple lin-
[Q ] 3;2
i
= ,Lsh2i (ski +h1i + sh1i ) + Pxi ear spring and damper virtual components (i.e. carte-
[Q ] 3;3
i
= 0 sian PD controllers) [8]. Movements in the z, roll, and
pitch directions were position controlled to a constant
desired value using a virtual spring-damper system. A
virtual damper was used in the x, y, and yaw directions
We can eliminate the Redundant Force Set as in in order to velocity control the movements in these
Equations 17 and 18, to get directions. A di erent set of virtual spring-damper
mechanisms were used to position control the legs of
the swing tripod. The swing and support tripods were
2
fx 3 2 1 0 2 0 0 0 3 2 fx1 3 cycled by a state machine which changed states based
6 fy 7 6 0 0 0 4 0 0 7 6 fz 1 7 on the distance between the body and the tripods.
6 7 6
6f 7 6 0
76
1 7 6 fx2 7
7 The simplicity of the virtual components facilitated
6 z7 6 1 0 0 1
76 7 the use of a minimal set of high level user inputs to
6 7=6 76
6 nx 7 6 0 s4;2 0 s4;4 s4;5 s4;6 7 6 fy2 7
7 (31)
trace out various walking paths. By specifying the
6 7 6 76 7
4 ny 5 4 s5;1 s5;2 s5;3 0 s5;5 s5;6 5 4 fz2 5
magnitude and angle of the body velocity and the
magnitude of the yaw velocity, the robot walked paths
nz s6;1 0 s6;3 s6;4 0 0 fz3 ranging from a straight line, to a circle, to a sine wave
while facing a direction independent of its travel di-
where, rection. The hexapod was able to walk up to 0.8m/s.
Virtual Actuator Control was also used to balance
a pendulum on the back of the hexapod while walking.
s4;2 = Py1 + Lch21 (sh11 +k1 + sh11 ) A pendulum of length 30cm and mass 0.18kg was at-
s4;4 = ,2L s 11 s 1 , Ls 12 s 2 , Ls 13 s tached via a pin joint in the x direction as seen in Fig-
ure 5. A simple LQR controller was used to regulate
h k h k h k3

Lch12 (ck2 + 1) + Lch13 (ck3 + 1) + 2L ch11 (ck1 + 1)


s4;5
+
Py2 + Lch22 (sh12 +k2 + sh12 ) the movement in the x direction in order to stablize
=
the pendulum. The pendulum and bug exhibited the
s4;6 = Py3 + Lch23 (sh13 +k3 + sh13 ) typical response of a non-minimum phase system as
s5;1 = ,Lch11 +k1 , Lch11 shown in Figure 6. The robot begins by traveling in
0.06

pendulum angle(rad)
0.04

0.02

0
0 0.5 1 1.5 2 2.5 3

0.3

x velocity(m/s)
0.2

0.1

−0.1
0 0.5 1 1.5 2 2.5 3

x force(N)
−5

−10

Figure 5: Picture of the simulated hexapod with a pendulum


−15
0 0.5 1 1.5 2 2.5 3

60

attached to its back.

walk state
40

20

0
0 0.5 1 1.5 2 2.5 3

a direction opposite to the desired velocity in order to


time(sec)

have the pendulum fall in the direction of the desired


velocity. The robot then changes its velocity direction Figure 6: Plots of data generated while the hexapod walked
and slowly ramps to the desired value of 0.2 m/s. Af- and balanced a pendulum. The rst displays the angle of the
ter an initial peak in pendulum angle at 0.055 radians, pendulum. The second displays the actual velocity of the hexa-
the angle reduces to approximately 0.015 radians. The pod in the x direction with the desired velocity indicated by
nal plot of the walking state shows that the bug is the dashed line. The third graph shows the resultant virtual x
able to balance the pendulum without disrupting its force due to the virtual components. The nal graph shows the
walking cycle. steady, periodic nature of the walking cycle.
5 Summary and Conclusions
We have introduced a control method in which joint
actuators are used to mimic virtual actuators. Vir- [5] O. Khatib. A uni ed approach for motion and force con-
tual Actuator Control provides a more intuitive con- trol of robot manipulators: the operational space formula-
trol space and hence, simpler control laws. tion. IEEE Journal of Robotics and Automation, 3(1):43{
The implementation of virtual actuators is rela- 53, 1987.
tively straightforward. Equations have to be derived [6] David E. Orin and W.W. Schrader. Ecient jacobian de-
only once for a given mechanism. For a serial mech- termination for robot manipulators. Robotics Research:
anism, computational requirements are low since no The First International Symposium, 1984.
functional or matrix inversions are required. For a
parallel mechanism, a matrix inversion is necessary. [7] Gill A. Pratt and Matthew M. Williamson. Series elastic
However, by taking advantage of the form of the ma- actuators. IEEE International Conference on Intelligent
trix, the size of the inverse can be minimized. Robots and Systems, 1:399{406, 1995.
Virtual Actuator Control, in conjunction with a [8] Jerry E. Pratt. Virtual model control of a biped walking
simple linear controller, was applied to a simulated robot. Master's thesis, Massachusetts Institute of Technol-
hexapod. The hexapod successfully walked while bal- ogy, August 1995.
ancing a pendulum and tracking an object. [9] Robert Ringrose. The creature library. Unpublished refer-
Acknowledgements ence guide to a C library used to create physically realistic
simulations, 1992.
This work was supported in part by the Oce of
Naval Research, Grant #N00014-93-1-0333. [10] K. Salisbury. Active sti ness control of a manipulator in
References cartesian coordinates. 19th IEEE Conference on Decision
and Control, pages 83{88, Dec. 1980.
[1] John J. Craig. Introduction to Robotics: Mechanics and
Control. Addison-Wesley, 1989. [11] Shin-Min Song and Kenneth J. Waldron. Machines That
Walk. MIT Press, Cambridge, MA., 1989.
[2] J. F. Gardner. Force distribution in walking machines over
rough terrain. J. of Dynamic Systems, Measurement and [12] Gilbert Strang. Introduction to Linear Algebra. Wellesley-
Control, 113:754{758, 1991. Cambridge Press, Wellesley, MA., 1993.
[3] J. F. Gardner, K. Srinivasan, and K. J. Waldron. A so- [13] C. Sunada, D. Argaez, S. Dubowsky, and C. Mavroidis. A
lution for the force distribution problem in redundantly coordinated jacobian transpose control for mobile multi-
actuated closed kinematic chains. J. of Dynamic Systems, limbed robotic systems. IEEE Journal of Robotics and
Measurement and Control, 112:523{526, 1990. Automation, pages 1910{1915, 1994.
[4] N. Hogan. Impeadance control: An approach to manipu- [14] Ann L. Torres. Implementation of virtual model control
lation: Part i - theory, part ii - implementation, part iii - on a walking hexapod. May 1996. Undergraduate Thesis,
applications. J. of Dynamic Systems, Measurement and Massachusetts Institute of Technology.
Control, 107:1{24, 1985.

S-ar putea să vă placă și