Docstoc

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

Document Sample
A Comparison of Neural Network and Fuzzy Clustering Techniques in .._3_ Powered By Docstoc
					 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              placements in order to modify walking speed and
   mobility by developing jumping motion. The problem arises in        direction, satisfying motion equation of a linear inverted
   humanoid leg locomotion is how to define the posture of the         pendulum in 3D space. The reference X-Y frame was
   robot for each frame during the motion, considering a number        rotated from step to step and made the robot walked in a
   of degree of freedom. In jumping motion, all parameters             circle. They used open loop control and therefore
   should be predefined before jumping since the robot will have
   much less access to control the joints once it is in the air.
                                                                       predefined all the parameters.
       The method introduced in this research has been based on            The distinct difference between running and walking
   generating trajectory of whole body’s centre of mass. This          is that there are aerial phases in running, wherein no foot
   trajectory defined a set of body frames and inverse kinematics      is in contact with the ground. These phases are
   was used to find a set of joint angles that satisfied each frame.   alternated in series with bouncing impacts of the foot
   The angular momentum was designed to control the rotation of        with the ground [1]. Assuming the robot as one point
   the body during jumping. We used open loop control,                 mass with two telescopic legs, [3] generated running
   assuming there was no external perturbation occurred. The           pattern for humanoid robot. Like the paper about
   stability of robot during jumping was guaranteed by                 walking, this time they again used inverted pendulum
   maintaining the zero moment point (ZMP) inside support
   polygon.
                                                                       model to define the trajectory in horizontal space (X-Y),
       The performance of the jumping motion was verified              while the trajectory in vertical axis is determined by
   through a simulation. The results showed that robot left the        sinus function, representing the springy mechanism
   ground when vertical acceleration was at least equal to the         during stance phases. They considered the motion as
   gravity while zero and negative angular momentums produced          continuous vertical hopping. This motion has similarity
   an upward and backward jumping motion respectively.                 with running motion in the presence of aerial phase. In
   Calculation of average absolute error of the motion shows that      order to make the legs leave the ground, it also performs
   the robot is able to follow vertical trajectory and reaches         springy mechanism to the legs, storing energy and by
   errors below 10% for jumping backward and upward.                   the time generating linear acceleration to counter the
                                                                       gravity.
   Keywords– Whole body’s center of mass, ground reaction                  A research conducted by [4] planned vertical jump,
   force, inverse kinematics, angular momentum, support
   polygon, zero moment point (ZMP)
                                                                       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
                      I. INTRODUCTION
                                                                       aerial phase and the feet to maintain horizontal position
                                                                       so that the robot will land stably. It used closed loop
       Leg locomotion is one of the most interesting fields
                                                                       control system and controlled the torque in order to
   in robotics as mobility has been acknowledged as
                                                                       make the centre of mass following the trajectories. In
   significant aspect for a robot to perform its tasks. People
                                                                       this research, I planned the joint angles in order to
   from different backgrounds (i.e. robotics, biomechanics,
                                                                       satisfy the trajectories, using inverse kinematics, which
   etc.) have been developing basic motions such as
                                                                       will be described in the next chapter.
   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
            II. FOUNDATION THEORY                           property of a rigid body with respect to rotational
                                                            motion. Since a rigid body rotates with an axis as
Centre of Mass (COM) of Multi Segment Body                  reference, moment of inertia of a rigid body is
    The model I used to perform such a motion has the       expressing how hard the object rotates with respect to
same properties as humans do, which consists of multi       the axis. The larger the moment of inertia of an object,
segments connected by joints. In human body, a              the more difficult it is to rotate about the axis.
particular part like foot, lower leg, upper leg, trunk,         The key point here is the concept in which the
upper arm, lower arm, hand, neck or head, is considered     jumping motion is constrained. At initial stage, the robot
as a segment. Each segment has its own mass with            will rotate its joints to follow the trajectory, changing
various shapes, but each of them is represented by one      the whole body’s moment of inertia to be smaller in
centre of mass, considering as if the mass is centered at   order to obtain higher angular velocity. When the robot
one point. This system moves simultaneously,                enters aerial phase, the robot will minimally rotate its
performing a maneuver, such as jumping motion. The          joints, providing constant moment of inertia. During
motion’s trajectory and angular momentum are                aerial phase the robot will have less control of its joints,
considered occurring on one centre of mass, of the          so it is better not to try to control the joints much at this
whole body. Assuming 2D frame of X and Y, the               moment.
position of centre of mass can be calculated as follows:
             m x      i i
                                                            Angular Momentum
                                                                As translational motion has its momentum property
    xCOM      i
                                                      (1)
             m
                                                            which depends on its mass and linear velocity, rotational
                   i       i                                motion also has its angular momentum property. The
             m y      i       i
                                                            angular momentum of rotating object is related to its
                                                            mass, velocity and the distance of point mass to the axis
    yCOM      i
                                                      (2)
             m
                                                            [5]. Equation (6) represents the angular momentum for a
                   i       i                                rigid body consisting of particles (i) which rotate about
Where xi and yi is the position of segment i in X and Y     the same axis.
axis respectively, while mi is the mass of the              L   ri  pi   mi ri  vi
corresponding segment.                                             i
                                                                                                                 (6)
Ground Reaction Force                                       L   mi ri   i  ri    mi ri 2  In
    Ground reaction force is the force exerted by the              i
ground on the feet. It reflects the acceleration of the     L is the angular momentum of rotating rigid body, r is
body’s center of mass during locomotion. It has the         the distance of particle i to the axis of rotation, p is
same value but it opposes the direction of the force        linear momentum, ω is the angular velocity, I is the
acting on body’s centre of mass. In 2D space, it has both   moment of inertia and is a unit vector representing the
horizontal and vertical components. The vertical            rotational axis.
component is affected by the gravity and the vertical           In the case of humanoid robot, the angular
acceleration of body’s centre of mass. This component       momentum of the whole body is expressed as the
will be equal to zero if the feet leave the ground.         accumulation of the angular momentum of each joint
    For jumping motion, consequently the ground             with respect to the whole body’s centre of mass (remote
reaction force is affected by the trajectory which caused   angular momentum, LR) and the angular momentum of
acceleration. The critical moment in this motion is when    each joint with respect to its own coordinate frame (local
the feet leave the ground, entering the aerial phase.       angular momentum, LL) [6].
Equation (5) shows the minimum value required to            L   LRi  LLi 
make the body jumps.                                               i
    Fx   ma x                                                                                                         (7)
                                                            L   mi ri'  vi'   I i  i
                                                      (3)
    Fy  (ma x  mg )                                (4)          i                i
                                                              '        '
                                                            ri and v are the distance and velocity of each segment’s
                                                                       i
    0  (ma x  mg )                                       point mass relative to the whole body’s centre of mass
                                                      (5)
    a y  g                                                respectively.
                                                                The value of angular momentum of an object will
                                                            remain the same unless external perturbation occurs. In
Moment of Inertia                                           this research, the angular momentum of the robot will
    Moment of inertia is also called mass moment of         remain the same once it takes off. The presence of
inertia or angular mass, because it is expressing mass
angular momentum will be used to make the whole body             trajectories of whole body’s centre of mass and the
rotates.                                                         angular momentum are pre defined. And then the
    Many have realized and used angular momentum to              trajectories of ZMP are defined to calculate the
control human locomotion, such as the research                   horizontal trajectories of whole body’s centre of mass
conducted by [7]. [8] generated whole body motion such           using Equation (8).
as walking and kicking by specifying the angular                     dh
momentum. On the contrary, [9] proposed a method                 
                                                                     dt                                                  (8)
called Angular momentum inducing inverted Pendulum
Model (AMPM) which calculate the angular momentum                  rF
of the whole body and generate action to counteract it in        Where τ, h, r, and F is the rotational torque, angular
order to prevent the body from falling off. Figure 1             momentum, vector from ZMP to whole body’s centre of
shows the graph of angular momentum during human                 mass, and ground reaction force respectively. First,
motion obtained from biomechanical data [10]. The line           rotational torque as the rate of angular momentum is
on the left of p1 and on the right of p4 represents the          calculated along the motion. This rotational torque is
angular momentum during uncontrolled phase, when no              equal to the cross product of the vector r and the ground
perturbation occurs. Consequently, the line between p1           reaction force F. Using the initial posture of the robot,
and p4 shows the angular momentum during controlled              the horizontal acceleration, horizontal velocity and
phase. p1 is less than p4 and p2 is less than p3 showing         horizontal trajectories of whole body’s centre of mass
the conservation of energy.                                      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
Figure 1    The general form of angular momentum based on        position of its end effecter, or its centre of mass. This
                    biomechanical data.
                                                                 method is being used in this research to calculate the
                                                                 joint angles in order to satisfy the trajectory of centre of
Zero Moment Point
                                                                 mass.
    Zero moment point (ZMP) is point on the ground
                                                                     A well known method of inverse kinematics, called
about which the net moment of the inertial forces and
                                                                 CCD kinematics, adjusts the joint angle of the segment
the gravity forces has no component along the horizontal
                                                                 connected to the base to approach the desired point as
planes [11]. It guarantees the stability of locomotion as
                                                                 much as possible, and then it moves the next segment to
long as the ZMP is maintained inside the support
                                                                 do the same until it comes to the end effecter.
polygon, as shown by Figure 2. This property was
                                                                 Unfortunately, this method cannot simply be applied in
introduced by Vukobratovic and was used to control
                                                                 humanoid robot, because every joint will have its
locomotion of robot. It is very important to note that
                                                                 limitation and the postures resulted from this method
ZMP is different from the projection of whole body’s
                                                                 may cause instability of the body. A method adopting
centre of mass on the ground.
                                                                 CCD kinematics has been introduced by [12] with some
                                                Foot             improvements, considering the limitations of human
    Support                                     Contact          body. It divides the whole body into groups like head,
   polygon                                                       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
                                      ZMP                        it (assuming it as a rigid body). Since the motion is
 Figure 2 Stability of locomotion is guaranteed as long as the
       ZMP is maintained inside the support polygon.             considered in 2D frame, the inverse kinematics only
                                                                 takes into account the adjustment of vertical and
   ZMP is widely used in leg locomotion. The idea is to          horizontal direction. It defined few constraints:
design kinematics trajectories of whole body’s centre of         Adjusting vertical direction
mass and check whether ZMP is inside support polygon             1. If the actual COM < desired COM, it will extend
to test the stability. In this research, the vertical                  the legs (enlarging the knees’ joint angles).
2.   If the actual COM > desired COM, it will bend the          of jumping motions, humans tuck all the joints at one
     legs more (reducing the knees’ joint angles).              moment and then un-tucks them simultaneously at the
Adjusting horizontal direction                                  next moment. This basic behavior is based on these
    It will rotate the ankles to the direction of desired       following reasons:
    COM.                                                        1. Generating vertical linear acceleration
This procedure is done in turn and iteratively until both           From the normal standing position, when human
vertical and horizontal errors satisfy the limitations.         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.
               III. MOTION PLANNING                             The change of position will cause such velocity and
                                                                acceleration. The vertical linear acceleration of whole
Environment Set Up                                              body’s centre of mass must be large enough to
        I used the available Webots 5.1.7 in this research.     counteract the gravity and generate the take off phase.
It already has many simulation environments (which are          2. Minimizing moment of inertia
called Webots worlds) and with the controller for each              Human’s body consists of all rotational joints so any
world. Furthermore, I chose hoap2_walk.wbt as the               motion performed by human can be explained as the
environment and hoap2.c as the controller (originally           accumulation of all joint’s rotation. In this case, the
created by Pascal Cominolli, 2004) since it represents          moment of inertia has an important role to determine
the real Fujitsu HOAP2 humanoid robot which is                  how much the joints will rotate. As mentioned in the
suitable with the concept of humanoid leg locomotion            previous chapter, in order to increase the angular
used in this research.                                          velocity, the moment of inertia of the body must be
                                                                reduced as much as possible.
Hoap-2 Humanoid Robot                                           3. Generating angular momentum
        Hoap2 robot has in total twenty six joints, consist         For some specific jumping motion, the whole body
of two body joints, two head joints, five leg/right arm         needs to rotate to make horizontal displacement at
joints, and six left/right leg joints. But in the controller,   landing instead of changing the position of whole body’s
only twenty five of them are considered and controlled,         centre of mass in horizontal direction. The horizontal
the second body joint is excluded. Two of the arm joints        position of whole body’s centre of mass for human has
are representing both left and right wrist and these joints     limitation in stability. The angular momentum generated
were not used in this jumping motion, assuming that             by tucking all the joints will cause a rotation of the body
they are not rotating in any condition during the motion.       which is also useful to generate particular kind of
The other joints which were not used are both head              jumping motion.
joints. The remaining joints were manipulated to follow             The vertical trajectory defined and the velocity
trajectory and to perform the jumping motion.                   function as its first derivation must not be a constant
     Each joint has physical properties like mass, length       function because it obviously needs to have acceleration
of segment and its minimum and maximum angle of                 to counteract the gravity. Moreover, the acceleration
rotation. Every joint in Hoap-2 humanoid robot has its          must be varying with time because we want to decide
own coordinate system and is rotating with respect to           when the body will jump at one moment. Generally, the
one of the axis in this system and so the position of           motion during initial phase can be divided into two
centre of mass for every joint is represented with respect      parts. First, while tucking all the joints, humans are
to its own coordinate system. The rotation of each joint        actually lowering the position of whole body’s centre of
is performed in z axis of local coordinate system.              mass. Second, the joints will be un-tucked at one time,
     The robot uses two touch sensors placed on the sole        increasing the height of whole body’s centre of mass.
of its feet. These sensors can be set to act as bumper          The velocity of the motion at the second part is much
sensors or force sensors by specifying the type in its          higher than that of the first part. At the first part the
node. In both cases, they detect collision with solid           body is conserving the energy that will be used in the
object. For this simulation they have been set to be force      second part, to make a jump. When the vertical
sensors which also return the intensity of force applied        acceleration generated by the second part is greater than
during collision. This information is very useful to give       the gravity, then the body will jump.
feedback about the motion, when the foot is still in                The first part of the motion is expressed as sine
contact with the ground or when the robot is in its aerial      curve while the second part is expressed as linear
phase during jumping.                                           function. The trajectory, velocity and acceleration
                                                                function will have the form of:
Planning the Vertical Trajectory of COM                             y(t )  H  A sin t
   Observing the original human jumping motion,
generally we will find out that among the various kind              v(t )   A cost                              (3.1)
     a(t )  A 2 sin t                                        line). Along the motion, it is always inside the support
                                                                polygon (red lines) and is nearly constant, around -
with these following parameters:                                0.0190 m.
 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.                         Figure 3 Horizontal trajectory of whole body’s centre of
                                                                     mass (blue) exists inside the support polygon (red).
 Planning the Angular Momentum
   The other constraint to be satisfied is the function of
angular momentum. Based on the biomechanics data                            IV. EXPERIMENTAL RESULTS
shown in Figure 1, the fluctuation of angular momentum
during human motion has the sine-like shape. This has           Negative Angular Momentum
inspired me to set the angular momentum to follow sine              As previously explained, the presence of angular
function. When the body is tucking the joints to reduce          momentum will make the body rotates during jumping.
the height and the moment of inertia, it will also rotate        In this experiment, I tried to apply negative angular
the arms backward. How much the arms rotated will be             momentum to make the robot jumping and rotating
based on the desired angular momentum. This rotation,            backward, following vertical and horizontal trajectories
along with the other joints’ rotation will increase the          of whole body’s centre of mass.
angular momentum.                                                   Figure 4 - Figure 6 show the trajectory settings. The
   The value of angular momentum can be increased by             vertical trajectory of whole body’s centre of mass
rotating the torso in the case if the arms are already           consisted of sine curve (from t = 0.5 s to t = 1.7 s) and a
maximally rotated backward. The rotation of the torso            linear curve (from t = 1.7 s to t = 1.75 s). The first 0.5 s
will affect much since it has the largest mass of all            is the length of time needed by the robot to settle itself
segments. During the second part, again the angular              in the simulation. At t = 1.7 s the robot reached its
momentum is set to follow linear curve, directing the            lowest position of centre of mass and directly reached
angular momentum to be negative by rotating the arms             the highest position at t = 1.75 s. The take off moment
and/or the torso upward.                                         occurred during this interval, which is when the vertical
   The cycle of the sine curve is set to be a bit faster than    ground reaction force equally counteracts the gravity.
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           Figure 4   Vertical trajectory of whole body’s centre of mass
                                                                                    for jumping backward
                                                              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
  Figure 5   Angular momentum of whole body’s centre of       robot reached its lowest position (0.1668 m) and then
               mass for jumping backward                      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 angular momentum consisted of sine curve and           the robot made the angular momentum to be negative by
linear curve. The sine curve (from t = 0.5 s to t = 1.55 s)   swinging both arms forward.
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         Figure 7   The frames for jumping backward from t = 0.500 s
mass was obtained by defining the ZMP trajectory along                               to t = 0.750 s
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 8   The frames for jumping backward from t = 0.800 s   Figure 10 The frames for jumping backward from t = 1.400 s
                       to t = 1.050 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 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
Figure 9   The frames following negative angular momentum     reached its lowest position. After that the robot
               from t = 1.100 s to t = 1.350 s                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      Figure 13 Webots simulation for jumping backward during
using information available in Webots to calculate the                     aerial phase and landing
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 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

                              0.3
                                                                                                                            -0.02




                                                                                             Horizontal Trajectory - (m)
 Vertical Trajectory - (m)




                             0.28
                                                                                                                           -0.025
                             0.26

                                                                                                                            -0.03
                             0.24

                             0.22                                                                                          -0.035

                              0.2
                                                                                                                            -0.04

                             0.18
                                                                                                                           -0.045
                                                                                                                                0.4     0.6   0.8   1      1.2     1.4   1.6   1.8   2
                             0.16
                                0.4    0.6   0.8   1      1.2     1.4   1.6   1.8   2                                                                   Time (s)
                                                       Time (s)
                                                                                           Figure 16 Desired (blue) and actual (red) horizontal
Figure 15 Desired (blue) and actual (red) vertical trajectory                                   trajectory of whole body’s centre of mass
            of whole body’s centre of mass


                     Vertical Trajectory
                                                                                                                                            Horizontal Trajectory
             Desired Actual           Abs. Err (%)
                                      No
                                                                                                                           No         Desired    Actual     Abs. Err (%)
              0.2868 0.2595            1      9.5098
                                                                                                                            1      27.0316
                                                                                                                                      -0.0190       -0.0139
              0.2790 0.2556            2      8.4036
                                                                                                                            2      18.0632
                                                                                                                                      -0.0190       -0.0156
              0.2712 0.2498            3      7.8964
                                                                                                                            3        9.8053
                                                                                                                                      -0.0190       -0.0171
              0.2635 0.2429            4      7.8178
                                                                                                                            4        4.8737
                                                                                                                                      -0.0190       -0.0181
              0.2560 0.2357            5      7.9250
                                                                                                                            5        3.1105
                                                                                                                                      -0.0190       -0.0184
              0.2485 0.2285            6      8.0596
                                                                                                                            6        1.6421
                                                                                                                                      -0.0190       -0.0187
              0.2412 0.2215            7      8.1526
                                                                                                                            7        1.1579
                                                                                                                                      -0.0190       -0.0188
              0.2341 0.2147            8      8.2785
                                                                                                                            8        0.4550
                                                                                                                                      -0.0189       -0.0188
              0.2272 0.2079            9      8.4894
                                                                                                                            9        1.9206
                                                                                                                                      -0.0189       -0.0193
              0.2205 0.2016           10      8.5778
                                                                                                                           10        5.0741
                                                                                                                                      -0.0189       -0.0199
              0.2142 0.1955           11      8.7460
                                                                                                                           11        6.7619
                                                                                                                                      -0.0189       -0.0202
              0.2081 0.1901           12      8.6338
                                                                                                                           12        6.1534
                                                                                                                                      -0.0189       -0.0201
              0.2024 0.1854           13      8.3982
                                                                                                                           13        6.8042
                                                                                                                                      -0.0189       -0.0202
              0.1970 0.1815           14      7.8873
                                                                                                                           14      10.8942
                                                                                                                                      -0.0189       -0.0210
              0.1921 0.1783           15      7.1879
                                                                                                                           15      22.7884
                                                                                                                                      -0.0189       -0.0232
              0.1875 0.1757           16      6.3157
                                                                                                                           16      40.1852
                                                                                                                                      -0.0189       -0.0265
              0.1833 0.1730           17      5.6361
                                                                                                                           17      63.8095
                                                                                                                                      -0.0189       -0.0310
              0.1796 0.1703           18      5.1960
                                                                                                                           18      90.4339
                                                                                                                                      -0.0189       -0.0360
              0.1763 0.1735           19      1.5808
                                                                                                                           19     135.1429
                                                                                                                                      -0.0189       -0.0444
              0.1735 0.1716           20      1.0945
                                                                                                                           20     129.6263
                                                                                                                                      -0.0190       -0.0436
              0.1712 0.1695           21      0.9685
                                                                                                                           21     112.2316
                                                                                                                                      -0.0190       -0.0403
              0.1693 0.1665           22      1.6799
                                                                                                                           22      72.2526
                                                                                                                                      -0.0190       -0.0327
              0.1680 0.1663           23      1.0030
                                                                                                                           23      31.9791
                                                                                                                                      -0.0191       -0.0252
              0.1671 0.1724           24      3.1993
                                                                                                                           24      27.2448
                                                                                                                                      -0.0192       -0.0244
              0.1668 0.2523           25     51.2590
                                                                                                                           25      75.0570
                                                                                                                                      -0.0193       -0.0338
                                              8.0759
                                                                                                                                   36.1800
Table 1    Absolute errors of vertical trajectory of COM for
jumping backwards for each time step (from 0.500s to 1.700s                                Table 2   Absolute errors of horizontal trajectory for
                       respectively)                                                    jumping backwards for each time step (from 0.500s to 1.700s
                                                                                                              respectively)
                                                                 Figure 19 Angular momentum of whole body’s centre of
     Figure 17 Desired (blue) and actual (red) angular                        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
                                                               Figure 20   Horizontal trajectory of whole body’s centre of
motion was in the design of angular momentum. In this                         mass for jumping upward
experiment I used the same sinusoidal curve from t = 0.5
s to t = 1.5 s and continued the curve with constant zero      Inverse Kinematics for Zero Angular Momentum
values until t = 1.75 s in order to provide zero angular         In general, the frames are similar with the previous
momentum at take off moment.                                   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 18 Vertical trajectory of whole body’s centre of mass
                    for jumping upward
Figure 21 The frames for jumping upward from t = 0.500 s to   Figure 23 The frames for jumping upward from t = 1.100 s to
                       t = 0.750 s                                                   t = 1.350 s




Figure 22 The frames for jumping upward from t = 0.800 s to
                       t = 1.050 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             Figure 27 Webots simulation for jumping upward during
and actual trajectory of whole body’s centre of mass are                     aerial phase and landing
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 28 Zooming in the aerial phase for jumping upward


                                                                                              0.32


                                                                                               0.3


                                                                                              0.28
                                                                  Vertical Trajectory - (m)




                                                                                              0.26


                                                                                              0.24


                                                                                              0.22


                                                                                               0.2


                                                                                              0.18


                                                                                              0.16
                                                                                                 0.4   0.6   0.8   1      1.2     1.4   1.6   1.8   2
                                                                                                                       Time (s)

                                                               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
same position. This fact caused difference between the
                                                                                              -0.01
trajectory of whole body’s centre of mass from inverse
kinematics and the trajectory of whole body’s centre of                                       -0.02
mass in Webots simulation. Moreover, because the few
last positions of arms were swung backward, they made




                                                                Horizontal Trajectory - (m)
                                                                                              -0.03
the horizontal position of whole body’s centre of mass
moved backward and it almost exceeded the support                                             -0.04

polygon (Figure 29). Although the relation between
horizontal position of whole body’s centre of mass and                                        -0.05

ZMP had not been calculated, this might have cause
instability before the robot entered its aerial phase.                                        -0.06



                                                                                              -0.07
                                                                                                  0.4   0.6   0.8   1      1.2     1.4   1.6   1.8   2
                                                                                                                        Time (s)
                    Vertical Trajectory                                           Figure 30 Desired (blue) and actual (red) horizontal
        No    Desired Actual Abs. Err (%)                                              trajectory of whole body’s centre of mass
         1      0.2868    0.2595              9.5098
         2      0.2790    0.2556              8.4036                              Horizontal Trajectory
         3      0.2712    0.2498              7.8964                      Desired       Actual   No  Abs. Err (%)
         4      0.2635    0.2429              7.8178                      -0.0190        -0.0139  1      27.0316
         5      0.2560    0.2357              7.9250                      -0.0190        -0.0156  2      18.0632
         6      0.2485    0.2285              8.0596                      -0.0190        -0.0171  3        9.8053
         7      0.2412    0.2215              8.1526                      -0.0190        -0.0181  4        4.8737
         8      0.2341    0.2147              8.2785                      -0.0190        -0.0184  5        3.1105
         9      0.2272    0.2079              8.4894                      -0.0190        -0.0187  6        1.6421
        10      0.2205    0.2016              8.5778                      -0.0190        -0.0188  7        1.1579
        11      0.2142    0.1955              8.7460                      -0.0189        -0.0188  8        0.4550
        12      0.2081    0.1901              8.6338                      -0.0189        -0.0193  9        1.9206
        13      0.2024    0.1854              8.3982                      -0.0189        -0.0199 10        5.0741
        14      0.1970    0.1815              7.8853                      -0.0189        -0.0202 11        6.7619
        15      0.1921    0.1783              7.1583                      -0.0189        -0.0201 12        6.1534
        16      0.1875    0.1755              6.3797                      -0.0189        -0.0202 13        6.8042
        17      0.1833    0.1732              5.5035                      -0.0189        -0.0210 14      10.8677
        18      0.1796    0.1710              4.7706                      -0.0189        -0.0231 15      22.2063
        19      0.1763    0.1715              2.7391                      -0.0189        -0.0267 16      41.3122
        20      0.1735    0.1716              1.1205                      -0.0189        -0.0309 17      63.6720
        21      0.1712    0.1717              0.2769                      -0.0189        -0.0340 18      79.8836
        22      0.1693    0.1718              1.4566                      -0.0189        -0.0359 19      89.9524
        23      0.1680    0.1717              2.1946                      -0.0190        -0.0350 20      84.3053
        24      0.1671    0.1737              3.9569                      -0.0190        -0.0362 21      90.5789
        25      0.1668    0.2351             40.9227                      -0.0190        -0.0384 22     102.1842
                                              7.7301                      -0.0191        -0.0407 23     113.3351
Table 3    Absolute errors of vertical trajectory of COM for              -0.0192        -0.0438 24     128.0313
 jumping upwards for each time step (from 0.500s to 1.700s                -0.0193        -0.0626 25     224.3420
                       respectively)
                                                                                                         45.7410
                                                                 Table 4   Absolute errors of horizontal trajectory for
                                                               jumping upwards for each time step (from 0.500s to 1.700s
                                                                                    respectively)
                                                                 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
   Figure 31   Desired (blue) and actual (red) angular       jumping motion. This method can be modified to be
        momentum of whole body’s centre of mass              applied in different model and environment. In order to
                                                             anticipate the present of external perturbation, online
    Table 3 shows small errors resulted from comparing       control might be added to the system.
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                            REFERENCES
factor caused significant errors in horizontal trajectory
and angular momentum of whole body’s centre of mass,         [1] Farley, C. T., Ferris, D. P., Biomechanics of Walking
as shown by Figure 30 and Figure 31. The inaccuracy in       and Running Center of Mass Movements to Muscle
using information in Webots to calculate the horizontal      Action, Human Neuromechanics Laboratory Division of
position of whole body’s centre of mass which also           Kinesiology University of Michigan, 1998.
affects the calculation of angular momentum has caused       [2] Kajita, S., Kanehiro, F., Kaneko, K., Yokoi, K., and
significant errors as shown in Table 4.                      Hirukawa, H., The 3D Linear Inverted Pendulum Mode:
                                                             A Simple Modelling For a Biped Walking Pattern
                                                             Generation, Proceedings of the 2001 IEEE/RSJ
                  V. CONCLUSIONS                             International Conference on Intelligent Robots and
                                                             Systems, Maui, Hawaii, USA, Oct. 29 - Nov. 03, 2001.
    The experiments above proved that defining the           [3] Kajita, S., Nagasaki, T., Kaneko, K., Yokoi, K., and
trajectory of whole body’s centre of mass would make         Tanie, K., Running Pattern Generation for Humanoid
the robot jumps and even more, setting the angular           Robot, Proceedings of the 2002 IEEE International
momentum would control the motion. The robot                 Conference on Robotics & Automation, Washington
successfully left the ground at the specified moment and     DC., May 2002.
the angular momentum affected the rotation of body.          [4] Nunez, V, Nadjar-Gauthier, N., Control Strategy for
Another important point is the stability of robot which      Vertical Jump of Humanoid Robot, the IEEE/RSJ
was maintained during motion. Previous experiments           International Conference on Intelligent Robots and
showed that when the robot had lost its stability at one     Systems, 2005.
moment, it had fell on to the ground before it jumped.       [5] Kajita, S., Nagasaki, T., Kaneko, K., Yokoi, K., and
    This method involves simpler computation than the        Tanie, K., Running Pattern Generation for Humanoid
other method like COG Jacobian. In order to find the         Robot, Proceedings of the 2002 IEEE International
inverse kinematics solution we can define the algorithm      Conference on Robotics & Automation, Washington
to satisfy all the constraints. The concept in this method   DC., May 2002.
is also flexible to be applied in various models of robot    [6] Kajita, S., Tani, K., Study of Dynamic Biped
and objectives in the sense that it can be modified          Locomotion on Rugged Terrain, Proceedings of the
according to the conditions. Moreover, the use of ZMP        1991 IEEE International Conference on Robotics and
approaches for leg locomotion has solved the problem of      Automation, Sacramento - California, April 1991.
maintaining stability in locomotion. Though this             [7] Hodgins, J., Raibert, M. H., Biped Gymnastics, The
approach might be time consuming and does not                International Journal of Robotics Research, Vol. 9, No.
guarantee the uniqueness of solution, it is suitable to      2, April 1990.
apply on expensive robots that should never fall.            [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.

				
DOCUMENT INFO