A Comparison of Neural Network and Fuzzy Clustering Techniques ...

sciencediscussionAI and Robotics

Oct 20, 2013 (3 years and 1 month ago)

92 views



Jumping Motion Generation for Biped Humanoid Robot Based on
Predefined Trajectory of Whole Body’s Centre of Mass and Angular
Momentum


Diah Puspito Wulandari *, and Taku Komura †


* Jurusan Teknik Elektro, Institut Teknologi Sepuluh Nopember Surabaya

Kampu
s ITS Keputih Sukolilo, Surabaya 60111, Indonesia

e
-
mail : diah@ee.its.ac.id

† Institute of Perception Action and Behavior, University of Edinburgh

James Clerk Maxwell Building, King’s Buildings, Edinburgh

e
-
mail : tkomura@inf.ed.ac.uk



Abstract

This r
esearch attempts to improve the robot’s
mobility by developing jumping motion. The problem arises in
humanoid leg locomotion is how to define the posture of the
robot for each frame during the motion, considering a number
of degree of freedom. In jumping m
otion, all parameters
should be predefined before jumping since the robot will have
much less access to control the joints once it is in the air.

The method introduced in this research has been based on
generating trajectory of whole body’s centre of mass.

This
trajectory defined a set of body frames and inverse kinematics
was used to find a set of joint angles that satisfied each frame.
The angular momentum was designed to control the rotation of
the body during jumping. We used open loop control,
assuming

there was no external perturbation occurred. The
stability of robot during jumping was guaranteed by
maintaining the zero moment point (ZMP) inside support
polygon.

The performance of the jumping motion was verified
through a simulation. The results showe
d that robot left the
ground when vertical acceleration was at least equal to the
gravity while zero and negative angular momentums produced
an upward and backward jumping motion respectively.
Calculation of average absolute error of the motion shows that
the robot is able to follow vertical trajectory and reaches
errors below 10% for jumping backward and upward.



Keywords


Whole body’s center of mass, ground reaction
force, inverse kinematics, angular momentum, support
polygon, zero moment point (ZMP)


I. INTRODUCTION


Leg locomotion is one of the most interesting fields
in robotics as mobility has been acknowledged as
significant aspect for a robot to perform its tasks.

People
from different backgrounds (i.e. robotics, biomechanics,
etc.) have been dev
eloping basic motions such as
walking, running and jumping.


A research [2] used the 3D linear inverted pendulum
method to generate walking pattern for 12 DOFs (degree
of freedom) humanoid robot. The robot changed foot
placements in order to modify walking

speed and
direction, satisfying motion equation of a linear inverted
pendulum in 3D space. The reference X
-
Y frame was
rotated from step to step and made the robot walked in a
circle. They used open loop control and therefore
predefined all the parameters
.

The distinct difference between running and walking
is that there are aerial phases in running, wherein no foot
is in contact with the ground. These phases are
alternated in series with bouncing impacts of the foot
with the ground [1]. Assuming the robot

as one point
mass with two telescopic legs, [3] generated running
pattern for humanoid robot. Like the paper about
walking, this time they again used inverted pendulum
model to define the trajectory in horizontal space (X
-
Y),
while the trajectory in verti
cal axis is determined by
sinus function, representing the springy mechanism
during stance phases. They considered the motion as
continuous vertical hopping. This motion has similarity
with running motion in the presence of aerial phase. In
order to make t
he legs leave the ground, it also performs
springy mechanism to the legs, storing energy and by
the time generating linear acceleration to counter the
gravity.

A research conducted by [4] planned vertical jump,
by maintaining the centre of mass above the a
nkles and
forcing its trajectory in the vertical direction. It also
imposed the trunk to maintain vertical position during
aerial phase and the feet to maintain horizontal position
so that the robot will land stably. It used closed loop
control system and
controlled the torque in order to
make the centre of mass following the trajectories. In
this research, I planned the joint angles in order to
satisfy the trajectories, using inverse kinematics, which
will be described in the next chapter.








II. FOUNDAT
ION THEORY


Centre of Mass (COM) of Multi Segment Body

T
he model I used to perform such a motion has

the
same properties as humans do,
which

consists of multi
segments

connected by

joints. In human body, a
particular part like foot, lower leg, upper

leg, t
runk,
upper arm, lower arm, hand, neck or head, is considered
as a segment.

Each segment has its own mass with
various shapes, but each of them is represented

by one
centre of mass, considering as if the mass is
centered

at
one point.
This

system moves

sim
ultaneously,

performing a
maneuver
, such as jumping motion. The
motion’s trajectory and

angular momentum are
considered occurring on one centre of mass, of the
whole

body. Assuming
2D

frame of X and Y, the
position of

centre of mass can be calculated as fo
llows:










(1)










(2)

Where x
i

and y
i

is the position of segment i in X and Y
axis respectively, while m
i

is

the mass of the
corresponding segment.



Ground Reaction Force

Ground reaction force is th
e force exerted by the
ground on the feet. It reflects

the acceleration of the
body’s center of mass during locomotion. It has the
same

value but it opposes the direction of the force
acting on body’s centre of mass. In 2D

space, it has both
horizontal and

vertical components
. The vertical

component is affected by the gravity and the vertical

acceleration of body’s centre of mass.
This component
will be equal to zero if the feet leave the ground.

For jumping motion, consequently the ground
reaction force i
s affected by

the trajectory which caused
acceleration. The critical moment in this motion is when

the feet leave the ground, entering the aerial phase.
E
quation (
5) shows the minimum value required to
make the body jumps.












(3)









(4)











(5)


Moment of Inertia

Moment of inertia is also called mass moment of
inertia or angular mass,

because it is expressing mass
property of a rigid body with respect to rotational

motio
n. Since a rigid body rotates with an axis as
reference, moment of inertia of a

rigid body is
expressing how hard the object rotates with respect to
the axis. The

larger the moment of inertia of an object,
the more difficult it is to rotate about the

axis.


The key point here is the concept in which the
jumping motion is

constrained. At initial stage, the robot
will rotate its joints to follow the trajectory,

changing
the whole body’s moment of inertia to be smaller in
order to obtain higher

angular velocit
y. When the robot
enters aerial phase, the robot will minimally rotate

its
joints, providing constant moment of inertia.
During
aerial phase the robot will have less control of its joints,

so it is better not to try to control the joints much at this
momen
t.


Angular Momentum

As translational motion has its momentum property
which depends on its mass

and linear velocity, rotational
motion also has its angular momentum property. The

angular momentum of rotating object is related to its
mass, velocity and the

distance

of point mass to the axis

[
5
]
. Equation (6
) represents the angular momentum for a

rigid body consisting of particles (i) which rotate about
the same axis.




(6
)

L is the angular momentum of rotating rigid body, r is
the di
stance of particle i to the

axis of r
otation, p is
linear momentum, ω

is the angular velocity, I is the
moment of

inertia and is a unit vector representing the
rotational axis.

In the case of humanoid robot, the angular

momentum of the whole body is expres
sed as the
accumulation of the angular

momentum of each joint
with respect to the whole body’s centre of mass (remote

angular momentum, L
R
) and the angular momentum of
each joint with respect to its

own coordinate frame (local
angular momentum, L
L
)

[6]
.








(
7
)

and

are the distance and velocity of each segment’s
point mass relative to the

whole body’s centre of mass
respectively.

The value of angular momentum of an object will
remain th
e same unless

external perturbation occurs. In
this research, the angular momentum of the

robot will
remain the same once it takes off. The presence of


angular momentum will

be used
to make the whole body
rotates.

Many have realized and used angular moment
um to
control human

locomotion, such as the research
conducted by

[7]
.
[8]

generated whole body motion such
as walking and kicking by specifying the

angular
momentum. On the contrary,
[9]

proposed a method
called

Angular momentum inducing inverted Pendulum

Model (AMPM) which calculate

the angular momentum
of the whole body and generate action to counteract it in

order to prevent the b
ody from falling off. Figure 1

shows the graph of angular

momentum during human
motion ob
tained from biomechanical data [10]
.

The line
on

the left of p
1
and on the right of p
4

represents the
angular momentum during

uncontrolled phase, when no
perturbation occurs. Consequently, the line between
p
1

and
p
4

shows the angular momentum during controlled
phase.
p
1

is less than
p
4

and

p
2

is less than p
3

showing
the conservation of energy.


Figure 1

The general form of angular momentum based on
biomechanical data.


Zero Moment Point

Zero moment point (ZMP) is point on the ground
about which the net

moment of the inertial forces and
the g
ravity forces has no component along the

horizontal
planes [11]
. It guarantees the stability of

locomotion as
long as the ZMP is maintained inside the support
polygon, as shown

by Figure 2
. T
his property was
introduced by
Vukobratovic

and was used

to contr
ol
locomotion of robot. It is very important to note that
ZMP is different from

the projection of whole body’s
centre of mass on the ground.








Figure 2

Stability of locomotion is guaranteed as long as the
ZMP is maintained inside the

support pol
ygon.


ZMP is widely used in leg locomotion. The idea is to
design kinematics

trajectories of whole body’s centre of
mass and
check whether ZMP is inside support polygon
to test

the stability
. In this research, the vertical
trajectories of whole body’s cen
tre of mass and

the
angular momentum are pre defined. And then the
trajectories of ZMP are defined

to calculate the
horizontal trajectories of whole body’s centre of mass
using Equation

(8)
.














(8
)

Where τ
, h, r, and F is
the rotational torque, angular
momentum, vector from ZMP to

whole body’s centre of
mass, and ground reaction force respectively. First,
rotational

torque as the rate of angular momentum is
calculated along the motion. This

rotational torque is
equal to the

cross product of the vector r and the ground
reaction

force F. Using the initial posture of the robot,
the horizontal acceleration, horizontal velocity and
horizontal

trajectories of whole body’s centre of mass
are calculated.

In this paper

I planned the
motion by considering the
robot in two

dimensions following its sagittal plane. The
vertical and horizontal axes are

represented by y and z
axes respectively. Therefore, the support polygon is
expressed

as the length of the foot sole in one dimension
along

z axis.


Inverse Kinematics

Inverse kinematics is a process of determining the
joint angles of multi

segment body, given a desired
position of its end effecter, or its centre of mass.

This
method is being used in this research to calculate the
joint angle
s in

order to satisfy the trajectory of centre of
mass.

A

well known method of inverse kinematics
,

called

CCD kinematics
,
adjusts the joint angle of the segment
connected to the base to

approach the desired point as
much as possible, and then it moves the

next segment

to
do the same until it comes to the end effecter.
Unfortunately, this method cannot

simply be applied in
humanoid robot, because every joint will have its
limitation and

the postures resulted from this method
may cause instability of the bod
y. A method

adopting
CCD kinematics has been introduced by
[12
]

with some

improvement
s
, considering the limitations of human
body. It divides the whole body

into groups like head,
trunk, and the limbs (arms and legs). In order to satisfy
the

desired centre

of mass, it moves the lightest group
first. The centre of mass of this

particular group is
adjusted by changing the length of the limb and rotating
it

(assuming it as a rigid body). Since the motion is
considered in 2D frame,

the inverse kinematics only
t
akes into account the adjustment of vertical and

horizontal direction. It defined few constraints:

Adjusting vertical direction

1.

If the actual COM < desired COM, it will extend
the legs (enlarging the

knees’ joint angles).

Support
polygon

ZMP

Foot

Contact



2.

If the actual COM > desired COM, i
t will bend the
legs more (reducing

the knees’ joint angles).

Adjusting horizontal direction

It will rotate the ankles to the direction of desired
COM.

This procedure is done in turn and iteratively until both
vertical and horizontal errors satisfy the lim
itations.



III. MOTION PLANNING


Environment Set Up



I used the available Webots 5.1.7 in this research.
It already has many simulation environments (which are
called Webots worlds) and with the controller for each
world. Furthermore, I chose hoap2_walk
.wbt as the
environment and hoap2.c as the controller (originally
created by Pascal Cominolli, 2004) since it represents
the real Fujitsu HOAP2 humanoid robot which is
suitable with the concept of humanoid leg locomotion
used in this research.


Hoap
-
2 Hum
anoid Robot



Hoap2 robot has in total twenty six joints, consist
of two body joints, two head joints, five leg/right arm
joints, and six left/right leg joints. But in the controller,
only twenty five of them are considered and controlled,
the second body
joint is excluded. Two of the arm joints
are representing both left and right wrist and these joints
were not used in this jumping motion, assuming that
they are not rotating in any condition during the motion.
The other joints which were not used are both

head
joints. The remaining joints were manipulated to follow
trajectory and to perform the jumping motion.


Each joint has physical properties like mass, length
of segment and its minimum and maximum angle of
rotation. Every joint in Hoap
-
2 humanoid robot

has its
own coordinate system and is rotating with respect to
one of the axis in this system and so the position of
centre of mass for every joint is represented with respect
to its own coordinate system. The rotation of each joint
is performed in z axis
of local coordinate system.


The robot uses two touch sensors placed on the sole
of its feet. These sensors can be set to act as bumper
sensors or force sensors by specifying the type in its
node. In both cases, they detect collision with solid
object. For

this simulation they have been set to be force
sensors which also return the intensity of force applied
during collision. This information is very useful to give
feedback about the motion, when the foot is still in
contact with the ground or when the robo
t is in its aerial
phase during jumping.


Planning the Vertical Trajectory of C
O
M

Observing the original human jumping motion,
generally we will find out that

among the various kind
of jumping motions, humans tuck all the joints at one

moment and then un
-
tucks them simultaneously at the
next moment. This basic

behavior

is based on these
following reasons:

1.

Generating vertical linear acceleration

From the normal standing position, when human
start tucking all the joints,

he is actually changing the
positi
on of whole body’s centre of mass in vertical

direction more than the position in horizontal direction.
The

change of position will cause such velocity and
acceleration. The vertical

linear acceleration of whole
body’s centre of mass must be large enough t
o

counteract the gravity and generate the take off phase.

2. Minimizing moment of inertia



Human’s body consists of all rotational joints so any
motion performed by

human can be explained as the
accumulation of all joint’s rotation. In this

case, the
mome
nt of inertia has an important role to determine
how much the

joints will rotate. As mentioned in the
previous chapter, in order to increase

the angular
velocity, the moment of inertia of the body must be
reduced as

much as possible.

3. Generating angular
momentum

For some specific jumping motion, the whole body
needs to rotate to make

horizontal displacement at
landing instead of changing the position of whole

body’s
centre of mass in horizontal direction. The horizontal
position of

whole body’s centre of
mass for human has
limitation in stability. The angular momentum generated
by tucking all the joints will

cause a rotation of the body

which is also useful to generate particular kind of
jumping motion.

The vertical trajectory defined and the velocity
func
tion as its first derivation must not be a constant
function because it obviously needs to have acceleration
to counteract the gravity. Moreover, the acceleration
must be varying with time because we want to decide
when the body will jump at one moment. Ge
nerally, the
motion during initial phase can be divided into two
parts. First, while tucking all the joints, humans are
actually lowering the position of whole body’s centre of
mass. Second, the joints will be un
-
tucked at one time,
increasing the height o
f whole body’s centre of mass.
The velocity of the motion at the second part is much
higher than that of the first part. At the first part the
body is conserving the energy that will be used in the
second part, to make a jump. When the vertical
acceleratio
n generated by the second part is greater than
the gravity, then the body will jump.


The first part of the motion is expressed as sine
curve while the second part is expressed as linear
function. The trajectory, velocity and acceleration
function will ha
ve the form of:


















(3.1)





with

these following parameters:



H is the offset representing the height of whole
body’s centre of mass in its initial standing posture.
From the
information given in the model and
calculation of whole body’s centre of mass, it has
the value of 0.2868 m.



A is the amplitude representing vertical
displacement of whole body’s centre of mass before
jumping. It has limitation since the body has its
maxim
um tucking condition. The height of whole
body’s centre of mass cannot go lower than height
of the centre of mass in this condition.



ω is the speed of cycle of the motion. Both A and ω
will affect the velocity and acceleration. The cycle
cannot be set too high because the body needs to
conserve the energy during this part.


Planning the Angular Momentum


The other constraint to be sati
sfied is the function of
angular momentum. Based on the biomechanics data
shown in Figure
1
, the fluctuation of angular momentum
during human motion has the sine
-
like shape. This has
inspired me to set the angular momentum to follow sine
function. When the

body is tucking the joints to reduce
the height and the moment of inertia, it will also rotate
the arms backward. How much the arms rotated will be
based on the desired angular momentum. This rotation,
along with the other joints’ rotation will increase t
he
angular momentum.


The value of angular momentum can be increased by
rotating the torso in the case if the arms are already
maximally rotated backward. The rotation of the torso
will affect much since it has the largest mass of all
segments. During the

second part, again the angular
momentum is set to follow linear curve, directing the
angular momentum to be negative by rotating the arms
and/or the torso upward.


The cycle of the sine curve is set to be a bit faster than
the cycle of the vertical traje
ctory. This is done in order
to allow more negative value of angular momentum
when the robot is taking off the ground so the body will
rotate more. Being able to control the rotation of jumping
motion will enable us to define the jumping motion and
how the

robot will land on to the ground.


Planning the Horizontal Trajectory of C
OM


As previously explained, the horizontal trajectory of
whole body’s centre of mass is more restricted by the
foot’s support polygon in order to keep the motion
stable. It is stro
ngly related to the zero moment point
(ZMP) which has to be inside the support polygon. For
this reason, I defined the position o
f ZMP to be constant
at
-
0.0190 m
and obtained the horizontal trajectory of
whole body’s centre

of mass as shown in Figure 3

(b
lue
line). Along the motion, it is always inside the support
polygon (red lines) and is nearly constant, around
-
0.0190 m.


Figure 3

Horizontal trajectory of whole body’s centre of
mass (blue) exists inside the support polygon (red).



IV. EXPERIMENTAL RE
SULTS


Negative Angular Momentum

As previously explained, the presence of angular
momentum will make the body rotates during jumping.
In this experiment, I tried to apply negative angular
momentum to make the robot jumping and rotating
backward, following
vertical and horizontal trajectories
of whole body’s centre of mass.

Figure 4
-

Figure 6

show the trajectory settings. The
vertical trajectory of whole body’s centre of mass
consisted of sine curve (from t = 0.5 s to t = 1.7 s) and a
linear curve (from t
= 1.7 s to t = 1.75 s). The first 0.5 s
is the length of time needed by the robot to settle itself
in the simulation. At t = 1.7 s the robot reached its
lowest position of centre of mass and directly reached
the highest position at t = 1.75 s. The take off

moment
occurred during this interval, which is when the vertical
ground reaction force equally counteracts the gravity.



Figure 4

Vertical trajectory of whole body’s centre of mass
for jumping backward




Figure 5

Angular momentum of whole body’s centre
of
mass for jumping backward



The angular momentum consisted of sine curve and
linear curve. The sine curve (from t = 0.5 s to t = 1.55 s)
represented the energy conserved when the robot
prepared itself to jump. It is continued by a linear curve
(from t =

1.55 s to t = 1.75 s) so that angular momentum
of the body at take off reached negative (non zero)
value.
The angular momentum of the body at take off
moment should be around 0.025


0.3.




Figure 6

Horizontal trajectory of whole body’s centre of
mass
for jumping backward (blue) inside the support polygon
(red)



The horizontal trajectory of whole body’s centre of
mass was obtained by defining the ZMP trajectory along
the motion. Setting the ZMP to be constant at
-
0.0190 m
(following body’s initial post
ure) resulted in nearly
constant horizontal trajectory around
-
0.0190 m.


Inverse Kinematics for Negative Angular
Momentum

There are twenty six frames calculated to perform the
jumping motion. Each frame is performed in 50 ms time
step. The frames start at

t = 0.5 s since the controller set
the robot to stabilize its position in the world for half
second. Figure 7


Figure 11 represent all frames
sequentially. Figure 7


Figure 10 show the motion from
frame to frame when the robot lowered its height by
redu
cing the distance between its upper legs and lower
legs which caused the knees to bend more. At the same
time, the arms were swung backward to increase the
angular momentum (to be more positive). Both vertical
and horizontal trajectory of whole body’s cent
re of mass
are satisfied, showed by the coincidence of desired
(green square) and actual (red square) trajectory of
whole body’s centre of mass along the motion.

Finally, Figure 11 shows two last frames, when the
robot reached its lowest position (0.1668
m) and then
immediately increased to maximum (0.3268 m) to
perform jumping. From the fifth frame in Figure 10 until
the last frame in Figure 11 (from t = 1.55 s to t = 1.75 s)
the robot made the angular momentum to be negative by
swinging both arms forward
.






Figure 7

The frames for jumping backward from t = 0.500 s
to t = 0.750 s





Figure 8

The frames for jumping backward from t = 0.800 s
to t = 1.050 s






Figure 9

The frames following negative angular momentum
from t = 1.100 s to t
= 1.350 s





Figure 10

The frames for jumping backward from t = 1.400 s
to t = 1.650 s



Figure 11

The frames for jumping backward from t = 1.700 s
to t = 1.750 s


Webots Simulation for Negative Angular Momentum

All frames above are the result of
inverse kinematics
to find a set of joint angles which satisfies the
planning.
A process converts these joint angles in radian into joint
angles which are readable for Webots. The resu
lts are
represented in Figure 12



Figure

14
. The sequence
expresses the

motion when the robot lowered its position
by bending its knees and at the same time gradually
swinging the arms to the back to increase the angular
momentum. The fi
rst nine snapshots in Figure 12

show
the process from initial standing position until the
robot
reached its lowest position. After that the robot
increased its height immediately and swung the arms to
the front to reduce the
angular momentum. In Figure 13

the robot was taking off the ground, though it did not
reach
significant height. Figure 14

zoomed the aerial


phase and showed that it did really leave the ground in
some interval of time.

In general, we can see in this experiment that the
robot successfully followed the trajectories of whole
body’s centre of mass as shown in Figure
15

and Figu
re
16

except the last vertical position of whole body’s
centre of mass at t = 1.7 s. There was significant error
which was caused by the Webots limitation in
simulating rotation of each joint. Webots could not
simulate such big difference of position at on
e time step
(0.05 s) so it performed the rotation in several time
steps.

The horizontal trajectory of whole body’s centre of
mass guarantees the stability of the robot along the
motion. Although the actual horizontal trajectories from
t = 1.3 s had quite
significant errors but they did not
exceed the foot area at z =
-
0.0475 m. Maintaining the
ZMP inside the support polygon will make the robot
stable.

These errors may be caused by the inaccuracy in
using information available in Webots to calculate the
hor
izontal position of whole body’s centre of mass.


Significant errors occurred in actual horizontal
trajectory of whole body’s centre of mass caused errors
in angular momentum as well, as shown in Figure 17.
This happened because the angular momentum was
d
erived from both vertical and horizontal trajectory of
whole body’s centre of mass.




Figure 1
2

Webots simulation for negative jumping backward
during initial phase until take off moment



Figure 1
3

Webots simulation for jumping backw
ard during
aerial phase and landing



Figure 1
4

Zooming in the aerial phase for jumping backward



Table 1 and Table 2 show the errors between desired
and actual values of vertical and horizontal trajectory of
whole body’s centre of mass respectively
. From Table 1
it is clear that errors are below 10% except at the last
shot (t=1.700s) which has been explained previously.
On the contrary, the errors in Table 2 are large and reach
over 100% between 1.400s


1.550s.





Figure 1
5

Desired (blue) and actua
l (red) vertical trajectory
of whole body’s centre of mass


No

Vertical Trajectory

Desired

Actual

Abs. Err (%)

1

0.2868

0.2595

9.5098

2

0.2790

0.2556

8.4036

3

0.2712

0.2498

7.8964

4

0.2635

0.2429

7.8178

5

0.2560

0.2357

7.9250

6

0.2485

0.2285

8.0596

7

0.2412

0.2215

8.1526

8

0.2341

0.2147

8.2785

9

0.2272

0.2079

8.4894

10

0.2205

0.2016

8.5778

11

0.2142

0.1955

8.7460

12

0.2081

0.1901

8.6338

13

0.2024

0.1854

8.3982

14

0.1970

0.1815

7.8873

15

0.1921

0.1783

7.1879

16

0.1875

0.1757

6.3157

17

0.18
33

0.1730

5.6361

18

0.1796

0.1703

5.1960

19

0.1763

0.1735

1.5808

20

0.1735

0.1716

1.0945

21

0.1712

0.1695

0.9685

22

0.1693

0.1665

1.6799

23

0.1680

0.1663

1.0030

24

0.1671

0.1724

3.1993

25

0.1668

0.2523

51.2590





8.0759

Table
1

Absolute errors of vertical trajectory of COM
for
jumping backwards

for each time step (from 0.500s to 1.700s
respectively)



Figure 1
6

Desired (blue) and actual (red) horizontal
trajectory of whole body’s centre of mass



No

Horizontal Trajectory

Desired

Actual

Abs. Err (%)

1

-
0.0190

-
0.0139

27.0316

2

-
0.0190

-
0.0156

18.0632

3

-
0.0190

-
0.0171

9.8053

4

-
0.0190

-
0.0181

4.8737

5

-
0.0190

-
0.0184

3.1105

6

-
0.0190

-
0.0187

1.6421

7

-
0.0190

-
0.0188

1.1579

8

-
0.0189

-
0.0188

0.4550

9

-
0.0189

-
0.0
193

1.9206

10

-
0.0189

-
0.0199

5.0741

11

-
0.0189

-
0.0202

6.7619

12

-
0.0189

-
0.0201

6.1534

13

-
0.0189

-
0.0202

6.8042

14

-
0.0189

-
0.0210

10.8942

15

-
0.0189

-
0.0232

22.7884

16

-
0.0189

-
0.0265

40.1852

17

-
0.0189

-
0.0310

63.8095

18

-
0.0189

-
0.0360

90.43
39

19

-
0.0189

-
0.0444

135.1429

20

-
0.0190

-
0.0436

129.6263

21

-
0.0190

-
0.0403

112.2316

22

-
0.0190

-
0.0327

72.2526

23

-
0.0191

-
0.0252

31.9791

24

-
0.0192

-
0.0244

27.2448

25

-
0.0193

-
0.0338

75.0570





36.1800

Table
2

Absolut
e errors of
horizontal trajectory

for
jumping backwards

for each time step (from 0.500s to 1.700s
respectively)





Figure
1
7
Desired (blue) and actual (red)
angular
momentum

of whole body’s centre of mass


Zero Angular Momentum

Th
is

experiment wa
s
meant
to apply constant zero
angular momentum to the robot during motion and
verify the result to see the effect of angular momentum
to jumping motion. If the presence of angular
momentum implies to the rotation of the body, then the
abse
nce of it should imply to null rotation, which means
the robot should jump vertically upward because it does
not rotate the body.

Figure
1
8



Figure
20

show planning for trajectory
of whole body’s centre of mass and angular momentum.
The significant diffe
rence from the previous jumping
motion was in the design of angular momentum. In this
experiment I used the same sinusoidal curve from t = 0.5
s to t = 1.5 s and continued the curve with constant zero
values until t = 1.75 s in order to provide zero angula
r
momentum at take off moment.



Figure 1
8

Vertical trajectory of whole body’s centre of mass
for jumping upward


Figure 1
9

Angular momentum of whole body’s centre of
mass for jumping upward


Figure
20

Horizontal trajectory of whole body’s centre of
ma
ss for jumping upward


Inverse Kinematics for Zero Angular Momentum

In general, the frames are similar with the previous
jumping motion, except at t = 1.55 s to t = 1.75 s;
because in this interval the robot followed zero angular
momentum (instead of negat
ive angular momentum).
The difference can be clearly seen from the position of
the arms. At t = 1.55 s to t = 1.7 s the robot did not
change its arms’ position, showing that it applied zero
angular momentum. At t = 1.75 s the robot changed its
arms’ positi
on because there was big transition of the
position of whole body’s centre of mass which made the
torso rotated much and affected the value of total
angular momentum.





Figure 21

The frames for jumping upward from t = 0.500 s to
t = 0.750 s


Fi
gure 2
2

The frames for jumping upward from t = 0.800 s to
t = 1.050 s




Figure 2
3

The frames for jumping upward from t = 1.100 s to
t = 1.350 s





Figure 2
4

The frames for jumping upward from t = 1.400 s to
t = 1.650 s






Figure 2
5

The fram
es for jumping upward from t = 1.700 s to
t = 1.750 s


Webots Simulation for Zero Angular Momentum

The results of simulating jumping motion with zero
angular momentu
m are represented in Figure 26



Figure 28
, while the comparison between the desired
and ac
tual trajectory of whole body’s centre of ma
ss are
represented in Figure 29 and Figure 30
. The simulation
shows that the robot jumped vertically as expected
without rotating the body. Figure
28

showed clearly that
there was no rotation performed by the rob
ot.




Figure 2
6

Webots simulation for jumping upward during
initial phase until take off moment



Figure 2
7

Webots simulation for jumping upward during
aerial phase and landing




Figure 2
8

Zooming in the aerial phase for jumpi
ng upward



Figure 2
9

Desired (blue) and actual (red) vertical trajectory
of whole body’s centre of mass


The problem occurred on Webots simulation. A
moment before the robot took off the ground, it should
have rotated its arms more backward but because i
t had
already exceeded the joint limitation, it remained in the


same position. This fact caused difference between the
trajectory of whole body’s centre of mass from inverse
kinematics and the trajectory of whole body’s centre of
mass in Webots simulation.

Moreover, because the few
last positions of arms were swung backward, they made
the horizontal position of whole body’s centre of mass
moved backward and it almost exceeded

the support
polygon (Figure 2
9
). Although the relation between
horizontal position

of whole body’s centre of mass and
ZMP had not been calculated, this might have cause
instability before the robot entered its aerial phase.



No

Vertical Trajectory

Desired

Actual

Abs. Err (%)

1

0.2868

0.2595

9.5098

2

0.2790

0.2556

8.4036

3

0.2712

0
.2498

7.8964

4

0.2635

0.2429

7.8178

5

0.2560

0.2357

7.9250

6

0.2485

0.2285

8.0596

7

0.2412

0.2215

8.1526

8

0.2341

0.2147

8.2785

9

0.2272

0.2079

8.4894

10

0.2205

0.2016

8.5778

11

0.2142

0.1955

8.7460

12

0.2081

0.1901

8.6338

13

0.2024

0.1854

8.3982

14

0.1970

0.1815

7.8853

15

0.1921

0.1783

7.1583

16

0.1875

0.1755

6.3797

17

0.1833

0.1732

5.5035

18

0.1796

0.1710

4.7706

19

0.1763

0.1715

2.7391

20

0.1735

0.1716

1.1205

21

0.1712

0.1717

0.2769

22

0.1693

0.1718

1.4566

23

0.1680

0.1717

2.1946

24

0
.1671

0.1737

3.9569

25

0.1668

0.2351

40.9227





7.7301

Table
3

Absolute errors of vertical trajectory of COM
for
jumping upwards
for each time step (from 0.500s to 1.700s
respectively)



Figure 30

Desired (blue) and actual (re
d) horizontal
trajectory of whole body’s centre of mass


No

Horizontal Trajectory

Desired

Actual

Abs. Err (%)

1

-
0.0190

-
0.0139

27.0316

2

-
0.0190

-
0.0156

18.0632

3

-
0.0190

-
0.0171

9.8053

4

-
0.0190

-
0.0181

4.8737

5

-
0.0190

-
0.0184

3.1105

6

-
0.0190

-
0.0187

1.6421

7

-
0.0190

-
0.0188

1.1579

8

-
0.0189

-
0.0188

0.4550

9

-
0.0189

-
0.0193

1.9206

10

-
0.0189

-
0.0199

5.0741

11

-
0.0189

-
0.0202

6.7619

12

-
0.0189

-
0.0201

6.1534

13

-
0.0189

-
0.0202

6.8042

14

-
0.0189

-
0.0210

10.8677

15

-
0.0189

-
0.0231

22.2063

16

-
0.0189

-
0.0267

41.3122

17

-
0.0189

-
0.0309

63.6720

18

-
0.0189

-
0.0340

79.8836

19

-
0.0189

-
0.0359

89.9524

20

-
0.0190

-
0.0350

84.3053

21

-
0.0190

-
0.0362

90.5789

22

-
0.0190

-
0.0384

102.1842

23

-
0.0191

-
0.0407

113.3351

24

-
0.0192

-
0.0438

128.0313

25

-
0.0193

-
0.0626

224.3420





45.7410

Table
4

Absolute errors of
horizontal trajectory for
jumping upwards

for each time step (from 0.500s to 1.700s
respectively)





Figure 31


Desired (blue) and actual (red)
angular
momentum

o
f whole body’s centre of mass


Table 3 shows small errors resulted from comparing
the desired and actual values of vertical trajectory of
whole body’s centre of mass. These errors vary below
10% except at the last shot, it reaches 40%. The same
factor caus
ed significant errors in horizontal trajectory
and angular momentum of whole body’s centre of mass,
as shown by Figure 30 and Figure 31. The inaccuracy in
using information in Webots to calculate the horizontal
position of whole body’s centre of mass which

also
affects the calculation of angular momentum has caused
significant errors as shown in Table 4.



V. CONCLUSIONS


The experiments above proved that defining the
trajectory of whole body’s centre of mass would make
the robot jumps and even more, settin
g the angular
momentum would control the motion. The robot
successfully left the ground at the specified moment and
the angular momentum affected the rotation of body.
Another important point is the stability of robot which
was maintained during motion. Pr
evious experiments
showed that when the robot
had
lost its stability
at one
moment, it had fell on to the ground before it jumped.

This method involves simpler computation than the
other method like COG Jacobian. In order to find the
inverse kinematics sol
ution we can define the algorithm
to satisfy all the constraints.
The concept in this method
is
also
flexible to be applied in various models of robot
and objectives in the sense that it can be modified
according to the conditions.
Moreover, the use of
ZMP

approaches for leg locomotion
has solved the problem of
maintaining stability in locomotion. Though this
approach might be time consuming and does not
guarantee
the uniqueness of solution
, it is
suitable to
apply on expensiv
e robots that should never fall
.

The average absolute error for following vertical
trajectory of whole body’s centre of mass is below 10%
for applying both negative and zero angular momentum
(performing backwards and upwards jumping motion).
Problems occurred in using information availa
ble in
Webots’ Scene Tree to calculate the horizontal position
of whole body’s centre of mass. This caused inaccuracy
of both horizontal trajectory and angular momentum
values and shown by the average absolute error which
reaches 27% for jumping backward a
nd reaches 45% for
jumping upwards. Unless this problem is solved we will
never be able to trace whether or not the robot deviate
too much from its desired values.

There are still many possibilities to improve the
performance of this method to generate var
ious kinds of
jumping motion.

This method
can be modified

to be
applied in different model and environment.
I
n order to
anticipate the present of external per
turbation, online
control might

be added to the system.



REFERENCES


[1] Farley, C. T., Ferris, D
. P.,
Biomechanics of Walking
and Running Center of Mass Movements to Muscle
Action
, Human Neuromechanics Laboratory Division of
Kinesiology University of Michigan, 1998.

[2]
Kajita, S., Kanehiro, F., Kaneko, K., Yokoi, K., and
Hirukawa, H.,
The 3D Linear
Inverted Pendulum Mode:
A Simple Modelling For a Biped Walking Pattern
Generation
, Proceedings of the 2001 IEEE/RSJ
International Conference on Intelligent Robots and
Systems, Maui, Hawaii, USA, Oct. 29
-

Nov. 03, 2001.

[3]
Kajita, S., Nagasaki, T., Kaneko
, K., Yokoi, K., and
Tanie, K.,
Running Pattern Generation for Humanoid
Robot
, Proceedings of the 2002 IEEE International
Conference on Robotics & Automation, Washington
DC., May 2002.

[4] Nunez, V, Nadjar
-
Gauthier, N.,
Control Strategy for
Vertical Jump o
f Humanoid Robot
, the IEEE/RSJ
International Conference on Intelligent Robots and
Systems, 2005.

[5]
Kajita, S., Nagasaki, T., Kaneko, K., Yokoi, K., and
Tanie, K.,
Running Pattern Generation for Humanoid
Robot
, Proceedings of the 2002 IEEE International
C
onference on Robotics & Automation, Washington
DC., May 2002.

[6] Kajita, S., Tani, K.,
Study of Dynamic Biped
Locomotion on Rugged Terrain
, Proceedings of the
1991 IEEE International Conference on Robotics and
Automation, Sacramento
-

California, April 19
91.

[7]
Hodgins, J., Raibert, M. H.,
Biped Gymnastics
,
The
International Journal of Robotics Research, Vol. 9, No.
2, April 1990.

[8] Kajita, S., Kanehiro, F., Kaneko, K., Fujiwara, K.,
Harada, K., Yokoi, K., Hirukawa, K.,
Resolved


Momentum Control: Humano
id Motion Planning based
on the Linear and Angular Momentum
, Proceedings of
IEEE/RSJ International Conference on Intelligent
Robots and Systems, Las Vegas Nevada, 2003.

[9] Komura, T., Leung, H., Kudoh, S., Kuffner, J.,
A
Feedback Controller for Biped Huma
noid that Can
Counteract Large Perturbations During Gait
,
Proceedings of IEEE International Conference on
Robotics and Automation, Barcelona Spain, 2005.

[10] Karen Liu, C., Popovic, Z.,
Synthesis of Complex
Dynamic Character Motion From Simple Animations
,
ACM Transactions on Graphics, Proceedings of ACM
SIGGRAPH 2002, Vol. 21 No. 3, July 2002.

[11] Komura, T., Nagano, A., Leung, H., and
Shinagawa, Y.,
Simulating Pathological Gait Using the
Enhanced Linear Inverted Pendulum Model
, IEEE
transactions on biom
edical Engineering, Vol. 52 No.9,
September 2005.

[12] Kulpa, R., Multon, Frank.,
Fast Inverse Kinematics
and Kinetics Solver for Human
-
like Figures
,
Proceedings of 2005 5
th

IEEE
-
RAS International
Conference on Humanoid Robots, 2005.

[13] Cominoli, P.,
Dev
elopment of a Physical
Simulation of a Real Humanoid Robot
, Diploma Thesis,
BIRG Logic System Laboratory, School of Computer
and Communication Sciences, Swiss Federal Institute of
Technology, Lausanne, February 2005.