Documente Academic
Documente Profesional
Documente Cultură
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
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 dening 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 dene 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
..
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
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 signicantly 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 specied 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
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
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
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
frame fAig to frame fBg with respect to frame fBg. s6;3 = ,Py2 , Py3 , Lch22 (sh12 +k2 + sh12 )
How we dene 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;3
=
[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 dierent 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
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
60
walk state
40
20
0
0 0.5 1 1.5 2 2.5 3