Abstract
This paper presents a useful application of a generalized approach to the modelling of human and humanoid motion using the deductive approach. It starts with formulating a completely general problem and deriving different real situations as special cases. The concept and the software realization are verified by comparing the results with the ones obtained using “classical” software for one well-known particular problem – biped walking. New applicability and potentials of the proposed method are demonstrated by simulation of a selected example – the long jump. The simulated motion included jumping and landing on the feet (after a jump). Additional analysis is done in the paper regarding the joint torque and joint angle during the jumping. Separate stages of the simulation are defined and explained.
1. Introduction
Using a general model of human motion, this paper presents a human long jump simulation. This new idea, proposed in [1], was called the “deductive approach”. Bipedal gait has widely been elaborated upon (originally starting from [1-5]) and jumping and running have been solved recently [6]. A very different model was developed for a rather different motion – somersaults on the trampoline [7, 8]. A review of advanced topics in humanoid dynamics can be found in [4]. One may note that for these particular problems, separate models were developed. If specific models were derived for different problems, such as gymnastic exercises, soccer or tennis, then it would be a huge problem to make a generalization. The deductive approach [1] follows a deductive principle: we derive a general model and consider all mentioned particular motions as being just special cases. Contact analysis, essential in this method, has been also explained in [1]. Landing analysis are presented in [9, 10]. Pose has already been analysed in [11-13].
According to [1], the general approach is based on an articulated system (e.g., a human body, a humanoid, or even an animal) that “flies” without constraints (meaning that it is not connected to the ground or to any object in its environment – see Fig. 1). For this the term flier was suggested. Such a situation is not uncommon in reality (it is present in running, jumping, trampoline exercises, etc.), but it is less common than the motion where the system is in contact with the ground or some other supporting object in its environment (e.g., single- and double-support phases of walking, gymnastics on some apparatuses, etc.)

Unconstrained system – free flier.
2. Model basement
A detailed description of the deductive approach is presented in [1] and here we will describe in brief only some important notions regarding the specific task of the long jump motion. The deductive approach is based on a general model human/humanoid system positioned in space without any constraints, called “flier” (Figure 1.) In the deductive approach we use the dynamic model of the free flier in the general form:
where Q object position is defined by his internal coordinate. The dimensions of the inertial matrix and its submatrices are: H(N × N), HX,X(6×6), HX,q(6×n), Hq,X(n×6), and Hq,q(n×n). The dimensions of the vectors containing centrifugal, Coriolis' and gravity effects are: h(N), hX(6), and hq(n).
In our model we use a human/humanoid model having n = 20 DOFs at its joints as shown in Figure 2. This can be seen as a humanoid or an approximation of the human body. The definition of the joint (internal) coordinates, vector q = [q1,···, qn] T , is also presented.

Configuration of the human system used in the simulation.
The task is selected as a specific long jump action going forward. A player jumps forward and lands on his feet. As stated above, for the purpose of simulation the reference motion was not measured but synthesized numerically. Here, we do not show the reference; the realized motion is considered sufficient information.
The human/humanoid is equipped with actuators at its joints and the control system that will try to track the reference motion. The local PD regulator is implemented as a control strategy:
where qj is the actual value of a joint coordinate and qj*(t) is its prescribed reference.
In the next example, in a long jump, the external object is immobile (the ground). Note that the contact might be an inner one – involving two links of the considered system.
In order to express the coming contact mathematically, we describe the motion of the considered link by an appropriate set of coordinates. Since the link is a body moving in space, it is necessary to use six coordinates. Let this set be s = [s1,···, s6] T and let us call them functional coordinates (often referred to as s-coordinates). Functional coordinates are introduced as relative ones, defining the position of the link with respect to the object to be contacted. Several illustrative examples of s-coordinates were shown in [1]. Each choice was made in accordance with the expected contact – to support its mathematical description.
A consequence of the rigid link-object contact is that the link and the object perform some motions, along certain axes, together. These are constrained (restricted) directions. Let there be m such directions, m being a characteristic of a particular contact. Relative position along these axes does not change. Along other axes, relative displacement is possible. These are unconstrained (free) directions. In order to get a simple mathematical description of the contact, s-coordinates are introduced so as to describe relative position. Zero value of some coordinate indicates the contact along the corresponding axis. For a better understanding, we use a well-known example – the contact of the robot foot and the ground (Figure 3). We may distinguish several situations. The heel contact (Figure 3a) restricts five s-coordinates, leaving one free (thus, m = 5). The full-foot contact (Figure 3b) restricts all six coordinates (m = 6). Finally, if the robot is falling down by rotating about the foot edge (Figure 3c), then again m = 5.

Different contacts of the humanoid foot and the ground. The superscript “c” indicates constrained (restricted) coordinates, while “f” indicates the free ones.
In a general case the motion of the external object (to be contacted) has to be known (or calculated from the appropriate mathematical model) and then the s-frame fixed to the object is introduced to describe the relative position of the link in the most appropriate way. In the case of an inner contact (two links in contact), one link has to play the role of the object. Thus, in a general case, the s-frame is mobile. As the link is approaching the object, some of the s-coordinates reduce and finally reach zero. The zero value means that the contact is established. These functional coordinates (which reduce to zero) are called restricted coordinates and they form the subvector sc of dimension m. The other functional coordinates are free and they form the subvector sf of dimension 6 – m. Now one may write:
where K is a 6 × 6 matrix used, when necessary, to rearrange the functional coordinates (elements of the vector s) and bring the restricted ones to the first positions.
It is obvious that there are several types of possible contacts between the two bodies. One contact will restrict some s-coordinates while the other will restrict a different set. Different links may establish a contact. In different tasks, the same link will establish different contacts with different objects. For each example, a specific s-frame is needed. So, in order to arrive at a general algorithm, we have to describe link motion in a general way and, once the expected contact is specified, relate this general interpretation to the appropriate s-frame.
The general description of the link motion assumes the three Cartesian coordinates of a selected point of the link plus the three orientation angles: Xl = [xl, yl, zl, θl, ψl]
T
, the subscript l standing for “link”. These are absolute external coordinates. The relation between the link coordinates Xl and the system position vector Q is straightforward:
where
Now let us concentrate on the object. In different examples, the same object will be contacted in a different way). Now, consider the ground (as an example of an immobile object); in walking or jumping, one type of contact of the foot and the ground exists, while in ice-skating the contact will be of a rather different kind. In a general case, the object is mobile, so, its position is described by the absolute external coordinates: Xb = [xb, yb, zb, θb, φb, ψb] T , the subscript b standing for “object”.
When the s-frame is introduced to define the relative position of the link with respect to the object, the coordinates will depend on both Xb and Xl:
or in the Jacobian form:
where dimension of all Jacobi matrices is 6 × 6 and the dimension of the adjoint vector As is 6.
Model (8) can be rewritten if the separation (2) is introduced. The model becomes
Suppose that the object motion, Xb(t) in Equations (6)–(8), is either prescribed or calculated from a separate mathematical model of the object. Equations (9) and (10) can be rewritten if (5) is introduced:
where the model matrices are:
An example would be walking on the ground, i.e., contact between the foot and the ground or jumping. The ground is the large immobile object. Equations (11) and (12) apply for this first case. Division of contacts can be done based on the existence of deformations in the contact zone. If there is no deformation, i.e., if the motions of the two bodies are equal in the restricted directions, then we talk about the rigid contact. If deformation is possible, then the motions in the restricted directions will not be equal. Theoretically, they will be independent, but in reality they will be close to each other, due to the action of strong elastic forces. In this case, we talk about the soft contact. This is the situation during the long jump.
The other class represents the instantaneous, short-lived contacts. When the two bodies touch each other, a short impact occurs, and after that the bodies disconnect.
The main parameters of the human/humanoid are given in Table 1. The most important is that its total weight (mass) is 70 kg. The arms (upper arm, forearm and hands) do not contribute to the total height. There are two thighs, shanks, feet, upper arms and forearms (and hands), while only one trunk and pelvis. The total mass is the sum of all segment masses.
Structural and dynamic parameters of the human/humanoid jumper (only the non-zero mass segments are listed).
3. Simulation results
Figure 1 shows the realized motion of the jumper. His intention (and reference) was to jump and land. According to Fig. 1, his attempt was successful. Let us analyse the jumper's motion in more detail. One can observe several phases of the motion:
• From the viewpoint of mechanics, the jumper has two contacts with an immobile object – both feet are on the ground. A closed chain is formed. Each contact restricts all six relative motions and, accordingly, creates six reaction forces/torques (twelve reactions in total).
Our analyses will stop when the player touches the ground, but we have to note that after touching ground the simulation continues and shows that the player falls down. In the simulation the falling procedure is not analysed because it is not important for the further analysis.
We have to mention that several procedures of falling are possible including, fall forward, fall side and wall backward. Each falling procedure could be analysed in the future regarding minimizing the contact force between the ground and link in contact with the ground. This is a separate problem and could be analysed in the future, in particular, how to obtain a longer jump regarding the restriction in the take off launching force and the angle of the jump.
Some characteristics of this motion deserve separate attention.
Figures 6 and 7 show the realized motion of the player. Fig. 6 presents the motion of the main body – the torso.

The sequence of the human/humanoid long jump motion.

The launching force – the total vertical contact force between the jumper's feet and the ground (in Phase 1).

Time histories of the main-body (torso) coordinates: x(t), y(t), z(t),θ(t), φ(t), ψ(t).

Time histories of the joint coordinates: qj(t), j = 1, … 20.
X(t) = [x(t), y(t), z(t),θ(t), φ(t), ψ(t)] is time history. Figure 7 presents joint trajectories qj(t), j = 1,…. A selected set of joints is given since not all trajectories are seen as equally interesting. One can notice that from phase to phase different motions are dominant.
Figure 8 presents the torques generated at the player's joints: τj, j = 1,…. A selected set is given. One may see that high torques are present (at relevant joints) during Phase 1 (take off) and Phase 3 take on.

Time histories of the joint torque: τj, J = 1, … 20.
In the swinging phase, it is obvious, as expected, that those high torques are not generated all the time. The arms' torques are not so high, meaning the influence of the arms is not so important during the flight. It is also evident that almost the entire body (the majority of joints) is engaged in this demanding action (jumping).
Regarding the angle of the jumping, the influence of the ankle joint is the most important. The ankle joint has maximum torque all the time, but the duration of the torque determines the angle of the jumping.
Final jump distance depends on several factors. The jump distance achieved affects the movement of the whole body. However, several factors are most important to realize the longest jump. The analyses of the simulated long jump regarding the distance achieved depressed the drive torques at the knees and hips, and made the jump angle. The well-known projectile motion condition gave us the optimal angle of 45%. As already mentioned, the realizations of the jump angle are the most affected by the driving torque at the ankle. Table 2 shows the correlation between achieved distance jump and the intensity of the driving torque at the knees and hips. (The angle of the jump is always 45%).
Knee and hip joint torque influence on the jump length.
4. Conclusion
This paper proves a general approach to humanoid-robot motion, applicable to any motion task. The extreme complexity of the problem of modelling biological systems stems from the complexity of the mechanical structure and actuation. That is why we started from an approximation – a complex body of a humanoid robot. Since the developed algorithm for the dynamic modelling and the corresponding software do not set limits on the complexity of the humanoid body, we see them as a useful tool for biomechanics as well – a solid approximation of the human body is achieved. At the same time a good foundation is set to develop a truly biological model, as the next research step. In order to avoid an unnecessarily complex problem, we will apply “biological modelling” to key joints only. For a particular action (in every-day life or in sport), key joints will be located and remodelled to agree with their biological structure. New applicability and potentials of the proposed method are demonstrated by simulation of a selected example – the long jump. The simulated motion, including jumping and landing on the feet (after a jump), are presented. Additional analysis is done in the paper regarding the joint torque and joint angle during the jumping. Separate stages of the simulation are defined and explained.
Footnotes
5. Acknowledgments
This work is founded by the Ministry of Education and Science of the Republic of Serbia under the contracts TR-35005 and III-44008. The work is also partially supported by the SNSF Care-robotics project no. IZ74Z0_137361/1.
