A Comparison of Neural Network and Fuzzy Clustering Techniques

advertisement
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
Kampus 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 research 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 motion, 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 showed 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 developing 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 vertical 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 the 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 ankles 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. FOUNDATION THEORY
Centre of Mass (COM) of Multi Segment Body
The 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, trunk,
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 simultaneously,
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 follows:
m x

m
m y

m
i i
xCOM
i
i
yCOM
(1)
i
i
i
i
i
(2)
i
Where xi and yi is the position of segment i in X and Y
axis respectively, while mi is the mass of the
corresponding segment.
Ground Reaction Force
Ground reaction force is the 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 is affected by the trajectory which caused
acceleration. The critical moment in this motion is when
the feet leave the ground, entering the aerial phase.
Equation (5) shows the minimum value required to
make the body jumps.
Fx  max
(3)
Fy  (max  mg)
(4)
property of a rigid body with respect to rotational
motion. 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 velocity. 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
moment.
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.
L   ri  pi   mi ri  vi
i

L   mi ri   i  ri    mi ri 2  In
i
L is the angular momentum of rotating rigid body, r is
the distance of particle i to the axis of rotation, 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 expressed as the
accumulation of the angular momentum of each joint
with respect to the whole body’s centre of mass (remote
angular momentum, LR) and the angular momentum of
each joint with respect to its own coordinate frame (local
angular momentum, LL) [6].
L   LRi  LLi 
i
L   mi ri'  vi'   I i  i
i
'
0  (ma x  mg )
a y  g
(6)
(7)
i
'
i
ri and v are the distance and velocity of each segment’s
(5)
Moment of Inertia
Moment of inertia is also called mass moment of
inertia or angular mass, because it is expressing mass
point mass relative to the whole body’s centre of mass
respectively.
The value of angular momentum of an object will
remain the 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 momentum 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 body from falling off. Figure 1
shows the graph of angular momentum during human
motion obtained from biomechanical data [10]. The line
on the left of p1 and on the right of p4 represents the
angular momentum during uncontrolled phase, when no
perturbation occurs. Consequently, the line between p1
and p4 shows the angular momentum during controlled
phase. p1 is less than p4 and p2 is less than p3 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 gravity 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. This property was
introduced by Vukobratovic and was used to control
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.
Foot
Contact
Support
polygon
ZMP
Figure 2 Stability of locomotion is guaranteed as long as the
ZMP is maintained inside the support polygon.
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 centre 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).
dh
dt
  rF

(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 angles 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 body. A method adopting
CCD kinematics has been introduced by [12] with some
improvements, 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
takes 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).
2.
If the actual COM > desired COM, it 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 limitations.
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 Humanoid 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 robot is in its aerial
phase during jumping.
Planning the Vertical Trajectory of COM
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
position 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 to
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
moment 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
function 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. Generally, 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 of 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
acceleration 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 have the form of:
y (t )  H  A sin t
v(t )   A cos t
(3.1)
a(t )  A 2 sin t
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
maximum 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 satisfied 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 the
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 trajectory. 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 COM
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 strongly related to the zero moment point
(ZMP) which has to be inside the support polygon. For
this reason, I defined the position of 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 (blue
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 RESULTS
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.
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
reducing 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 centre 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 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 posture) 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
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 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
Figure 9
The frames following negative angular momentum
from t = 1.100 s to t = 1.350 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 results 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 first 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 Figure
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 one 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
horizontal 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
derived from both vertical and horizontal trajectory of
whole body’s centre of mass.
Figure 13 Webots simulation for jumping backward during
aerial phase and landing
Figure 14 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 12 Webots simulation for negative jumping backward
during initial phase until take off moment
0.34
-0.01
0.32
-0.015
Horizontal Trajectory - (m)
Vertical Trajectory - (m)
0.3
0.28
0.26
0.24
0.22
0.2
-0.02
-0.025
-0.03
-0.035
-0.04
0.18
0.16
0.4
-0.045
0.4
0.6
0.8
1
1.2
Time (s)
1.4
1.6
1.8
Figure 15 Desired (blue) and actual (red) vertical trajectory
of whole body’s centre of mass
Vertical Trajectory
Desired Actual
Abs. Err (%)
0.2868 0.2595
9.5098
0.2790 0.2556
8.4036
0.2712 0.2498
7.8964
0.2635 0.2429
7.8178
0.2560 0.2357
7.9250
0.2485 0.2285
8.0596
0.2412 0.2215
8.1526
0.2341 0.2147
8.2785
0.2272 0.2079
8.4894
0.2205 0.2016
8.5778
0.2142 0.1955
8.7460
0.2081 0.1901
8.6338
0.2024 0.1854
8.3982
0.1970 0.1815
7.8873
0.1921 0.1783
7.1879
0.1875 0.1757
6.3157
0.1833 0.1730
5.6361
0.1796 0.1703
5.1960
0.1763 0.1735
1.5808
0.1735 0.1716
1.0945
0.1712 0.1695
0.9685
0.1693 0.1665
1.6799
0.1680 0.1663
1.0030
0.1671 0.1724
3.1993
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)
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
0.6
0.8
2
1
1.2
Time (s)
1.4
1.6
1.8
2
Figure 16 Desired (blue) and actual (red) horizontal
trajectory of whole body’s centre of mass
No
Horizontal Trajectory
Desired
Actual
Abs. Err (%)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
-0.0190
-0.0190
-0.0190
-0.0190
-0.0190
-0.0190
-0.0190
-0.0189
-0.0189
-0.0189
-0.0189
-0.0189
-0.0189
-0.0189
-0.0189
-0.0189
-0.0189
-0.0189
-0.0189
-0.0190
-0.0190
-0.0190
-0.0191
-0.0192
-0.0193
-0.0139
-0.0156
-0.0171
-0.0181
-0.0184
-0.0187
-0.0188
-0.0188
-0.0193
-0.0199
-0.0202
-0.0201
-0.0202
-0.0210
-0.0232
-0.0265
-0.0310
-0.0360
-0.0444
-0.0436
-0.0403
-0.0327
-0.0252
-0.0244
-0.0338
27.0316
18.0632
9.8053
4.8737
3.1105
1.6421
1.1579
0.4550
1.9206
5.0741
6.7619
6.1534
6.8042
10.8942
22.7884
40.1852
63.8095
90.4339
135.1429
129.6263
112.2316
72.2526
31.9791
27.2448
75.0570
36.1800
Table 2
Absolute errors of horizontal trajectory for
jumping backwards for each time step (from 0.500s to 1.700s
respectively)
Figure 17 Desired (blue) and actual (red) angular
Figure 19 Angular momentum of whole body’s centre of
mass for jumping upward
momentum of whole body’s centre of mass
Zero Angular Momentum
This experiment was 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
absence of it should imply to null rotation, which means
the robot should jump vertically upward because it does
not rotate the body.
Figure 18 – Figure 20 show planning for trajectory
of whole body’s centre of mass and angular momentum.
The significant difference 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 angular
momentum at take off moment.
Figure 18 Vertical trajectory of whole body’s centre of mass
for jumping upward
Figure 20
Horizontal trajectory of whole body’s centre of
mass 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 negative 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’ position 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
Figure 22 The frames for jumping upward from t = 0.800 s to
t = 1.050 s
Figure 23 The frames for jumping upward from t = 1.100 s to
t = 1.350 s
Figure 24 The frames for jumping upward from t = 1.400 s to
t = 1.650 s
Figure 25 The frames 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 momentum are represented in Figure 26 –
Figure 28, while the comparison between the desired
and actual trajectory of whole body’s centre of mass 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 robot.
Figure 27 Webots simulation for jumping upward during
aerial phase and landing
Figure 28 Zooming in the aerial phase for jumping upward
0.32
0.3
Vertical Trajectory - (m)
0.28
0.26
0.24
0.22
0.2
0.18
0.16
0.4
0.6
0.8
1
1.2
Time (s)
1.4
1.6
1.8
2
Figure 29 Desired (blue) and actual (red) vertical trajectory
of whole body’s centre of mass
Figure 26 Webots simulation for jumping upward during
initial phase until take off moment
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 it had
already exceeded the joint limitation, it remained in the
-0.01
-0.02
Horizontal Trajectory - (m)
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 29). 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.
-0.03
-0.04
-0.05
-0.06
-0.07
0.4
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Vertical Trajectory
Desired Actual Abs. Err (%)
0.2868
0.2790
0.2712
0.2635
0.2560
0.2485
0.2412
0.2341
0.2272
0.2205
0.2142
0.2081
0.2024
0.1970
0.1921
0.1875
0.1833
0.1796
0.1763
0.1735
0.1712
0.1693
0.1680
0.1671
0.1668
0.2595
0.2556
0.2498
0.2429
0.2357
0.2285
0.2215
0.2147
0.2079
0.2016
0.1955
0.1901
0.1854
0.1815
0.1783
0.1755
0.1732
0.1710
0.1715
0.1716
0.1717
0.1718
0.1717
0.1737
0.2351
9.5098
8.4036
7.8964
7.8178
7.9250
8.0596
8.1526
8.2785
8.4894
8.5778
8.7460
8.6338
8.3982
7.8853
7.1583
6.3797
5.5035
4.7706
2.7391
1.1205
0.2769
1.4566
2.1946
3.9569
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)
0.6
0.8
1
1.2
Time (s)
1.4
1.6
1.8
2
Figure 30 Desired (blue) and actual (red) horizontal
trajectory of whole body’s centre of mass
Horizontal Trajectory
Desired
Actual
Abs. Err (%)
-0.0190
-0.0139
27.0316
-0.0190
-0.0156
18.0632
-0.0190
-0.0171
9.8053
-0.0190
-0.0181
4.8737
-0.0190
-0.0184
3.1105
-0.0190
-0.0187
1.6421
-0.0190
-0.0188
1.1579
-0.0189
-0.0188
0.4550
-0.0189
-0.0193
1.9206
-0.0189
-0.0199
5.0741
-0.0189
-0.0202
6.7619
-0.0189
-0.0201
6.1534
-0.0189
-0.0202
6.8042
-0.0189
-0.0210
10.8677
-0.0189
-0.0231
22.2063
-0.0189
-0.0267
41.3122
-0.0189
-0.0309
63.6720
-0.0189
-0.0340
79.8836
-0.0189
-0.0359
89.9524
-0.0190
-0.0350
84.3053
-0.0190
-0.0362
90.5789
-0.0190
-0.0384
102.1842
-0.0191
-0.0407
113.3351
-0.0192
-0.0438
128.0313
-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)
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Figure 31
Desired (blue) and actual (red) angular
momentum of 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 caused 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, setting 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. Previous 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 solution 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 expensive 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 available 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 and 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 various kinds of
jumping motion. This method can be modified to be
applied in different model and environment. In order to
anticipate the present of external perturbation, 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 of 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
Conference 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 1991.
[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: Humanoid 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 Humanoid 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 biomedical 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 5th IEEE-RAS International
Conference on Humanoid Robots, 2005.
[13] Cominoli, P., Development 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.
Download