Benutzer-Werkzeuge

Webseiten-Werkzeuge


abschlussarbeiten:msc:filipcengic:chap04

4 Modelling

Modelling human motions is a challenging task, especially when it comes to preserve the natural look. In most cases, human motion is a complex sequence consisting of many different submotions. A useful way to solve this problem is to segmentate the motions. An example of the practical benefit of a segmented motion, e.g. is the ability to teach robotic devices how to move like a human being.



4.1. Main Variables

Before the implementation, mathematical models need to be specified in order to make the simulation possible. As already described in 2.1, a SLIP model consists of a point mass connected to the ground by a spring, where the spring symbolizes the human leg function. To get the model to function properly, certain variables need to be defined at the beginning of execution. In the following, some conceptual terms are explained in detail, to ensure a basic understanding of this investigation.

Table 2: Main modelling parameters for SLIP running



In order to make modelling easier and more efficient, the whole body mass 𝑚 is concentrated in one point, which is the center of mass. This point mass is an imaginary point at which the gravitational force acts. Depending on posture and the body mass distribution, the position of the center of mass may vary. The center of mass is connected by leg to the foot. Beside the point mass, the rest of the system is considered massless. The gravitational acceleration constant 𝑔 holds the commonly used average value of 9,81 𝑚/𝑠W. Depending on the distance to the geocenter, this value may change slightly, which will be disregarded within the framework of this model. The angle of attack 𝛼 describes the orientation of the legs relative to the ground. This angle is set as a fixed parameter and is essential to the further calculation of human movement. While running, the angle 𝛼 gets higher until the take off starts and a new running step begins.

The leg rest length 𝐿/ plays an important role, when it comes to the simulation of the take-off resp. flight phase. This value is set to 1, which constrains further elongation of the leg. By subtracting the rest length 𝐿/ of the leg from the actual leg length 𝐿, the change of the leg length can be estimated. The spring stiffness holds the value of 21.000𝑁/𝑚. Increasing resp. decreasing this value leads to higher resp. lower force production by leg after each touch down. Values, which are significantly deviating from 21.000𝑁/𝑚, are resulting in unrealistic model behaviour. Since the running model contains a looping structure with its Euler integration block, previously calculated values need to be fed as input parameters during each iteration. When running the model first time, those input values need to be predefined. In total there are four initial values, two for velocity resp. position in 𝑥- and 𝑦-direction.

4.2. Motion Equations

Newton’s fundamental law of dynamics forms the basis for the following motion equations. According to Newton’s 2nd law, the acceleration (symbolized by two dots over the variable) is proportional to the acting force 𝐹 (ME1). The mass 𝑚 has inertial influence in horizontal and vertical direction of the movement. The proportionality factor corresponds to the mass 𝑚 to be moved. For the mathematical description of the SLIP runner, vectors are used. Later on, when it comes to the simulation part (chapter 5), scalars are used.

$$ \vec{F} = m * (\ddot{x}, \ddot{y}) \ \ \ \ \ (ME1)$$

As mentioned in the previous chapter 2.1, the mechanical spring is the basic component of the SLIP model. Springs can have linear, as well as progressive and degressive force- length functions. Within the range of this work, the simple linear case is used. Thus, the generated force 𝐹Z[\]^_ (ME2) is proportional to the difference between the resting length 𝐿/ and the current spring length 𝐿. The proportionality factor is the spring stiffness 𝑘.

$$ \vec{F}_{SPRING} = -k * (L_0 - L) \ \ \ \ \ (ME2)$$

While running, a recurring change between flight and contact phase takes place. During stance phase (chapter 2.2), one leg is in contact with the ground. The other leg is swinging forward. Therefore, it is sufficient for the determination of the occurring forces to consider only one leg during each running cycle. Furthermore, the movement of running is considered exclusively in the sagittal plane, the analysis of motion can be done in two-dimensional space. In this case occurring forces can be subdivided into horizontal (𝑥-component) and vertical forces (𝑦-component), respectively.

In contrast to walking, where one foot always touches the ground, both feet lift off the ground during the flight phase. Hence, the only force acting on the point mass is gravity. The gravitational force can be described as follows:

$$ \vec{F}_G = m * (0, -g) = (0, -mg) \ \ \ \ \ (ME3) $$

For the calculation of the leg force $\vec{F}_{LEG}$ produced by the muscular system during the ground contact phase four values are needed:

  1. Spring stiffness 𝑘
  2. Leg rest length $L_0$
  3. Angle of attack 𝛼
  4. Current leg length 𝐿

The corresponding mathematical expression multiplies the stiffness factor 𝑘 with the change of leg length. By making use of trigonometric functions, the leg force 𝐹 can be subdivided into a horizontal and a vertical component. Because of easier notation, vectors are used for modeling the SLIP runner within this chapter, although vectors are not permitted for the simulation (chapter 5) of the running model:

$$ \vec{F}_{LEG} = -k * (L_0 - L) * (cos(\alpha), sin(\alpha)) \ \ \ \ \ (ME4) $$


The first three parameters are constants and do not change with time. Only the current leg length 𝐿 is time dependent and can be estimated by using the following mathematical expression:

$$ L = \sqrt{ ( CoM_x - TD_x )^2 + ( CoM_y - TD_y )^2 } \ \ \ \ \ (ME5) $$

$$ \Leftrightarrow L = \sqrt{ x^2 + y^2 } \ \ \ \ \ (ME6) $$


As it can be seen in ME6, the difference between point mass ($𝐶𝑜𝑀_{x,y}$) and touchdown position ($𝑇𝐷_{x,y}$) is abbreviated in this particular case by the symbols 𝑥 and 𝑦. The symbol 𝑦 is equal to the height of the CoM, because the height of the touchdown position $𝑇𝐷_y$ is equal to 0. More information concerning the calculation of the touchdown position ($𝑇𝐷_{x,y}$) can be retrieved in section 4.3 (Touchdown Calculation).

With respect to formula ME4, the trigonometric functions at the end of the expression, can be replaced by its corresponding length ratios:

$$ cos(\alpha) = \frac{x}{\sqrt{x^2+y^2}} = \frac{x}{L} \ \ \ \ \ (ME7) $$

$$ sin(\alpha) = \frac{y}{\sqrt{x^2+y^2}} = \frac{y}{L} \ \ \ \ \ (ME8) $$

Regarding formula ME5 for the estimation of the current leg length is based on Pythagorean theorem (ME6). In this case, the spring length 𝐿 is the hypotenuse. The height 𝑦 of the center of mass (𝐶𝑜𝑀2) and the distance 𝑥 between the 𝐶𝑜𝑀R and the touchdown position 𝑇𝐷R (chapter 4.3) represent the two cathetes 𝑥 and 𝑦, respectively (Fig. 9).



Figure 9: Estimation of the current leg length



During stance phase, the force produced by the leg results from the compression of the spring. The direction of the acting force is in parallel to the spring force. When inserting formulas ME6, ME7 and ME8 into ME4, the leg force can be mathematically expressed as:

$$ \vec{F}_{LEG} = -k * ( \frac{L_0}{\sqrt{x^2+y^2}-1} ) * (x, y) \ \ \ \ \ (ME8) $$

The motion equations result during stance phase from the sum of the gravitational $\vec{F}_G$ and the leg force $\vec{F}_{LEG}$:

$$ m * (\ddot{x}, \ddot{y}) = \vec{F}_{LEG} + \vec{F}_{G} \ \ \ \ \ (ME9) $$

$$ m * (\ddot{x}, \ddot{y}) = -k * ( \frac{L_0}{\sqrt{x^2+y^2}-1} ) * (x, y) + (0, -mg) \ \ \ \ \ (ME10) $$


Regarding ME10, it becomes apparent, that the motion equations form a differential equation system, i.e. the equation depends on both, a certain variable and its derivatives. This equation is solved numerically and will be presented in the following chapter 5 (Experimental Simulation).

4.3. Touchdown Calculation

Forces are applied to the point mass during stance phase, either externally or internally by changing the spring stiffness parameter. All necessary mathematical operations are calculated as part of the spring leg force production ($\vec{F}_{LEG}$). Basically, the cumulated position of the virtual foot is computed, when it comes to the estimation of the touchdown. By using trigonometric functions, the 𝑥-coordinate of the foot can be determined as follows:

$$ Pos_x = L_0 * cos(\alpha_0) \ \ \ \ \ (ME11) $$

$$ Pos_y = L_0 * sin(\alpha_0) \ \ \ \ \ (ME12) $$

As it can be seen in ME11, for the calculation of the touchdown 𝑥-position, two constants ($L_0, \alpha_0$) are needed, which have been specified in section 4.1 (Main Variables). The constant variable 𝑃𝑜𝑠R specifies the local 𝑥-component of the virtual representation of the human foot, whereas 𝑃𝑜𝑠2 is the calculated landing height of the point mass (Fig. 9, CoM), depending on the leg rest length $L_0$ and the angle of attack $\alpha_0$. The landing height $𝑃𝑜𝑠_y$ doesn’t get incremented, unlike the 𝑥-component of the global touchdown position $𝑇𝐷_x$ (ME16). The local 𝑥-component of the CoM can be estimated by a simple mathematical subtraction, i.e. $𝑇𝐷_x - 𝑃𝑜𝑠_x$. Regarding this expression, previously estimated 𝑃𝑜𝑠R variable (ME11) is needed, in order to increment the global touchdown position $𝑇𝐷_x$ (ME16), which is equal to the achieved horizontal running distance in 𝑥- direction.

As part of the next simulation processing step, the difference is taken between the current point mass (CoM) height 𝑦 and the constant height $𝑃𝑜𝑠_y$ (ME13). It is checked, if the difference is less than 0. This suggests, that the SLIP running model is in stance phase, because the current CoM height 𝑦 is lower, than the constant initial height of the point mass ($𝑃𝑜𝑠_y$). Since the angle of attack $\alpha_0$ is a globally defined and constant value, touchdown always takes place with an angle of 70° between the leg axis and the ground line. This leads to a simplified approach for estimating stance and flight phase. Considering the values of the previously computed iteration, it is checked, if the difference between these two point mass heights (ME14) is greater than 0. Mathematically expressed, this would look like $𝑑𝑖𝑓𝑓_y ≤ 0 ∧ 𝑑𝑖𝑓𝑓_{y;-1} ≥ 0$. This implicates, that the point mass is in descent phase, i.e. falling towards the ground due to the gravitational acceleration.

$$ diff_y = y - Pos_y \ \ \ \ \ (ME13) $$

$$ diff_{y;-1} = y_{-1} - Pos_{y;-1} \ \ \ \ \ (ME14) $$

This transitional event for the touchdown estimation can be determined only once within a running cycle. Furthermore, the parameter $𝑇𝐷_{allowed}$ must be set to 1 ($𝑇𝐷_{allowed} = 1$), otherwise the following three mathematical assignments (ME15-ME17) won’t be executed. $𝑇𝐷_{allowed}$ is a redundant variable, which checks, if the SLIP running model already touched down during a running cycle. Usually this isn’t the case, because only one touchdown per cycle is allowed.



$$ r=1 \ \ \ \ \ (ME15) $$

$$ TD_x = x + Pos_x \ \ \ \ \ (ME16) $$

$$ TD_y = 0 \ \ \ \ \ (ME17) $$

Setting the 𝑟-value to 1 implicates, that a touchdown has been recorded for the current running cycle (ME15). Hence, at the end of the script block in the following iteration step, the $𝑇𝐷_{allowed}$ parameter will be set to 0 until the next running cycle begins. Nevertheless, checking if $𝑇𝐷_{allowed}${ = 1 is an additional measure, because usually there is one transitional event for the touchdown estimation during a locomotion cycle. In ME16, the running distance (equally to accumulated touchdown position $𝑇𝐷_x$) gets incremented by the local constant value $𝑃𝑜s_x$ (ME11).


More information regarding modelling and simulation of the SLIP runner, can be found in chapter 5 (Experimental Simulation).



4.4. Termination Conditions

Because LabView only computes values, but doesn’t check whether these results are useful, manual termination conditions need to be implemented within the system. The simulation will stop as soon as certain conditions for running are no longer fulfilled. First termination condition results from simple logical reasoning. If the height of point mass crosses the value 0 (𝑦 < 0), the SLIP model has fallen to the ground. Since the SLIP running model isn’t able to get up, the simulation has to be terminated at this point. Another possible termination condition is to implement a step counter. Therefore, a success criterion for stable running is needed. If the maximum amount of steps has been reached during a simulation, the model is considered as stable and the simulation can terminate. In order to implement a step counter, the vertical velocity ($𝑣_y$) of the point mass (CoM) is necessary for the computation. Considering that within the previous iteration step – immediately before Apex (highest point of the CoM) height is reached – the respective velocity value is positive ($𝑣_y ≥ 0$), after one iteration step the vertical CoM-velocity $𝑣_y$ becomes negative (𝑣2 ≤ 0). In this particular event, the implemented step counter increments itself by the value 1.

indexmenu_n_40

abschlussarbeiten/msc/filipcengic/chap04.txt · Zuletzt geändert: 28.11.2022 00:58 von 127.0.0.1


Warning: Undefined variable $orig_id in /is/htdocs/wp1019470_OPI92FFHXV/www/wikiLehre/lib/plugins/openas/action.php on line 232