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 : email@example.com † Institute of Perception Action and Behavior, University of Edinburgh James Clerk Maxwell Building, King’s Buildings, Edinburgh e-mail : firstname.lastname@example.org 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 . Assuming the robot as one point the body during jumping. We used open loop control, mass with two telescopic legs,  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  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  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 . 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 In 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) . 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 .  generated whole body motion such using Equation (8). as walking and kicking by specifying the angular dh momentum. On the contrary,  proposed a method dt (8) called Angular momentum inducing inverted Pendulum Model (AMPM) which calculate the angular momentum rF 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 . 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 . 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  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 cost (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,  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  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  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.  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.  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  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  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.  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.  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.  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.  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.  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.  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.