









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
The challenges of accurately modeling the ball-and-socket joint, which represents articulations with three rotational degrees of freedom, such as the human shoulder and hip. The authors explore the importance of proper parametrization and range of motion definition, as well as joint limits. They compare Euler angles and axis-angle parametrizations and discuss methods for setting joint limits using spherical ellipses and spherical polygons.
What you will learn
Typology: Study notes
1 / 15
This page cannot be seen from the preview
Don't miss anything!
Paolo Baerlocher, Ronan Boulic Computer Graphics Lab (LIG) EPFL - Lausanne, Switzerland
The ball-and-socket joint model is used to represent articulations with three rotational degrees of free- dom (DOF), such as the human shoulder and the hip. The goal of this paper is to discuss two related prob- lems: the parametrization and the definition of realistic joint boundaries for ball-and-socket joints. Doing this accurately is difficult, yet important for motion generators (such as inverse kinematics and dynamics engines) and for motion manipulators (such as motion retargeting), since the resulting motions should satisfy the anatomic constraints. The difficulty mainly comes from the complex nature of 3D orientations and of human articulations. The underlying question of parametrization must be addressed before realis- tic and meaningful boundaries can be defined over the set of 3D orientations. In this paper, we review and compare several known methods, and advocate the use of the swing-and-twist parametrization, that parti- tions an arbitrary orientation into two meaningful components. The related problem of induced twist is discussed. Finally, we review some joint boundaries representations based on this decomposition, and show an example.
In fields such as robotics [8] and biomechanics, and in Computer Animation as well [11], hierarchical structures are used to model articulated bodies like (real or imaginary) robots, humans and other crea- tures. An articulated body is made of a set of segments, connected by joints. The essential feature of a joint is that it permits some degree of relative motion between the two segments it connects. Ideal kine- matic joint models are defined in order to formalize this permitted relative motion, called range of motion , characterized by the number of parameters that describe the motion space, and constrained by joint limits. Modeling real joints can be very complex, since the range of motion depends on many factors, especially in the articulations of living organisms and the human in particular [2]. Moreover, joints may be depen- dent on each other, especially in living organisms. This coupling (of motion and limits) can be integrated directly in the body definition, with the concept of joint group [2], or at the application level, with kine- matic constraints resolved by an inverse kinematics engine (for example, the scapulo-thoracic constraint [7]). In this paper, the coupling between joints is ignored.
The simplest example of joint model is the revolute joint that allows a rotation about an axis fixed in both segments it connects, usually within some angular limits. This joint is said to have one degree of freedom (DOF) and, because of its simplicity, is by far the most used joint in robotics. In human model- ing, it is a convenient model of the interphalangeal joints of the hands and feet, for example. For more complex articulations such as the shoulder and hip, joint models allowing more degrees of freedom are required. Unfortunately, the accurate kinematic modelling of such articulations is a difficult task. First, a clear mathematical description of the allowed relative motion must be given by a proper parametrization: because of the complex non-Euclidean nature of rotations, this must be done carefully, or one may incur in the problem of singularities. Second, the range of motion should be constrained by some joint limits, to restrict the parameter space to some more realistic subset. For instance, a revolute joint whose configura-
tion is given by the current rotation angle may have some minimum and maximum values:
. The situation is more complex with ball-and-socket joints, because the boundaries on
the three independent parameters are generally coupled.
Once a proper parametrization and proper joint limits have been defined for each joint of the articulated body, the animation engine (such as an inverse kinematics engine), has to deal with this model, for exam- ple to ensure joint limits. The last part of the problem is to gather data from real persons, if the goal is to model ranges of motions of human articulations. In Computer Animation, these topics have already been addressed by Badler [1, 2], Korein [5], Wang [9, 10], Grassia [4] and Maurel [7]. In this paper, we sum- marize and compare their results, and try to provide some more insight on the topics.
1.1. Notation and conventions
In this paper, we use the column vector convention. Moreover, we use right-handed coordinate frames.
Vectors are denoted by small boldface letters such as. The three basis vectors of a coordinate frame are
noted , and. Matrices and points are denoted by capital letters such as.
A few operators are now defined.
- Rotation about an axis by an angle
The rotation (in the right-handed sense) by an angle about an axis passing through the origin and
whose direction is given by vector , is noted. Note that.
- Direct rotation
Given two unit vectors and , we define as the direct rotation that
transforms into (see Figure 1). If , is undefined.
Figure 1: A direct rotation transforms a unit vector a into a unit vector b.
Note that any rotation whose axis of rotation lies in the bisector plane of a and b , with the appropriate angle of rotation, transforms vector a into vector b. The direct rotation is the one with minimum angle of
rotation, that is. Moreover, with a direct rotation, no “twisting” occurs about the rotated vec- tor, in the sense that any vector lying in the plane of rotation is transformed into another vector still lying in that plane.
θ θ min ≤ θ ≤θ max
v x y z M
θ a R a (θ ) R a ( θ) = R (^) – a ( – θ)
a b RD ( a b , ):= R a × b a T ( acos( b )) a b b = – a RD ( a b , )
a
b
acos (aTb)
a × b
RD ( a b , )
a T acos( b )
2.2. Parametrization for the purpose of range of motion definition
For the purpose of defining a range of motion, an appropriate parametrization is needed. Certainly, one can impose limits on any parametrization. For example, it is possible to impose limits on Euler angles or on quaternion parameters. For example, Lee [6] describes simple analytical constraints (such as axial, spherical or conical constraints) enforced directly in quaternion space. More complex constraints can then be defined by combining the simple ones with boolean operators. While simple and elegant, this method is not precise enough for an accurate modelling of the limits of complex joints such as the shoul- der, and placing more complex meaningful limits on quaternions is difficult.
To simplify the problem, the joint limits may be decoupled. For example, independent limits may be specified on each Euler angle, or on each element of the axis-angle. However, the resulting range of motion can hardly match real motion ranges with sufficient precision [7].
For the purpose of defining a range of motion, neither the axis-angle or the unit quaternion reflect the intuitive decomposition of the rotation into a swing and a twist component. Euler angles do, since the third angle may be used to perform the twisting motion. However, in the following sections we see that the first two Euler angles can be replaced by an axis-angle vector with zero component along the z axis: this allows to alleviate the problem of singularities that affects the Euler angles.
2.3. The swing and twist decomposition of an orientation
Intuitively, the orientation R of a ball-and-socket joint can be thought as being composed of a swing component, that controls the direction of the limb directly attached to it, and a twist component that lets
the limb rotate about itself [5, 4]. This may be written as:
The twist component is easily parametrized by a single angle of rotation, noted : hence,
. However, this rotation must be done with respect to a well-defined orientation, here
called the zero twist reference orientation. In fact, this reference orientation merely results from the swing
rotation, and is not necessarily a good reference. Hence a relative twist, , as a function of the swing
parameters, can be added. An example of such an offset function is given by Badler [1].
The purpose of the swing motion is to orientate the outgoing limb in a prescribed direction given by a
unit vector. To transform the z vector into the d vector, a rotation matrix must be defined. We consider two solutions.
The second solution has been used by Korein [5] and Grassia [4]. However, Korein parametrizes this rotation with two angles, called halfplane and deviation , that are the spherical coordinates describing the
direction vector d , while Grassia uses the x and y components of the axis-angle, here noted and.
Twist R Swing = τ RTwist^ = R z ( )τ
τ offset
d R Swing
Swing = Ry ( β) Rx ( α)
RSwing^ = RD ( z d , )
Sx Sy
As already noted by Korein [5], the difference between the two rotations lies in the final twist about the d axis, which is given by the different orientations of the rotated x and y vectors. Table 1 shows a sam- pling of the zero twist on the sphere for the two parametrizations: the outgoing arrow at each point on the sphere indicates the direction of the rotated x axis, which is taken as a reference to indicate the twist.
As said before, the singularities of a parametrization must also be considered, because the presence of singularities may be problematic for several applications. For the purpose of defining a range of motion, the twist component is affected by a singularity of the swing component: for example, no zero twist may be defined at a singularity, since an infinity of twists are possible. An arbitrary twist may be assigned to this point, but there is still a discontinuity with respect to its neighborhood. Table 1 compares the position of the singularities on the sphere, while the corresponding locations in the parameter space are shown in Figure 5, and the next two sections discusses and compares them.
Figure 3: Euler angles parametrization of the swing motion.
Figure 4: Axis-angle parametrization of swing (a direct rotation about an axis lying in the x-y plane).
Figure 5: Singular locations of the Euler angles parametrization ( ) on the left, and of the axis- angle parametrization (a circle of radius π) on the right.
y
d
z
x
α
β
y
z
x
d
α
β π/
−π/
Sx
Sy
π
β =±π ⁄ 2
2.4. Singularities of the XY Euler angles swing parametrization
This parametrization possesses two singularities: one at and another at. In Carte-
sian space, these singularities correspond to directions and respec-
tively, and any twist is possible there. Furthermore, moving close to these directions results in wild variations of twist. For example, moving along a closed path close to, and around the singularity, results
in a complete rotation of the segment about itself (i.e. a twist of radians).
Note that another convention of rotation axes could have been chosen. For example, one can perform a first rotation about the z axis, and then a second one about either the rotated x or y vector. In this case the
singularities are located on directions and. This is equivalent to our
original choice, up to a rotation by 90o^ about the y axis, but having a singularity exactly at the initial con- figuration is not a good idea.
To understand the meaning of the singularities, consider a universal joint, made as a sequence of two revolute joints whose axes of rotation are orthogonal, as shown in Figure 6. A rotation about the x axis or the y axis changes the direction of the outgoing segment, and apparently no twisting is performed. How-
ever, this is not always true. When , which is the angle of rotation about the y axis, the outgo-
ing segment becomes aligned with the x axis (Figure 7): as a consequence, a change in does not change its direction anymore, but its twist. Actually, any twist is possible in this direction, but the segment cannot move up and down anymore. This phenomenon is known as Gimbal Lock, and is a well-known flaw of Euler angles [11]. Also note how the vertical swing component (along the x axis) gradually transforms into a twist of the outgoing limb, as the singular configuration is approached. This shows that the problem not only exists at the singularity, but also in its vicinity.
Figure 6: Illustration of the universal joint, with two orthogonal rotation axes.
Figure 7: The universal joint in a singular configuration ( ): the outgoing segment becomes aligned with the x axis of rotation.
β = π ⁄ 2 β =–π ⁄ 2
d 1 1 0 0
T = d 2 – 1 0 0
2 π
d 1 ' (^) 0 0 – 1
T = d 2 ' (^) 0 0 1
β = ±π ⁄ 2 α
y
x
z
outgoing segment
y
x β = π ⁄ 2
Ball-and-socket joints are often built as a series of three revolute joints with intersecting axes: two for swinging (as in a universal joint), and one for twisting. Thus, it also experiences the singularities of the universal joint. An example of this is the very common joint used to transmit a torque for the control of a window blind. At a singularity however, a twisting torque is completely transformed in a swinging torque applied to the outgoing segment. Thus no twist can be transmitted anymore. Moreover, in a dynamics simulation, this singular configuration could lead to numerical problems: a torque applied about the two aligned axes of rotation of the joint may result in an infinite acceleration since mass is usually not present between the axes of the same joint. Fortunately, for simulation purposes we can choose another parame- trization, such as the axis-angle parametrization.
2.5. Singularities of the axis-angle swing paramatrization
The axis-angle possesses only one singularity on direction , where.
Again, any twist is possible there. However, this singularity is more “severe” since a closed path close to,
and around the singularity, performs two complete rotations of the segment (i.e. a twist of radians).
A geometric interpretation of this singularity is the following. Consider the problem of finding the short- est path between two given points lying on a unit sphere. The solution is the great arc connecting these two points. This solution is always unique, except when we deal with two antipodal points, since there is an infinity of great arcs between them. This corresponds to the singular situation of our swing parametri- zation. Now, when we are close to this singular situation, notice how a small change of one of the two points may result in a dramatic change of the solution. Hence solving the problem at the singularity, for example by choosing an arbitrary solution among the valid ones, does not necessarily solves the problem in the vicinity of the singularity.
To summarize, the axis-angle parametrizations is preferable to the Euler angles parametrization, since it is easier to avoid one single singular point than two antipodal singular points on the sphere. To be as far as possible from the singularity, the motion range should be centered about the z axis in its default configu- ration, or at least the singular point should not be part of the motion range.
2.6. The occurrence of induced twist
Direct rotations are a desirable way of performing a swing, since the z vector of the local joint frame is rotated to reach a given direction, without any twist being performed about that axis. However, a direct rotation performed from a direction other than the default z vector not only affects the swing component
of the joint but also its twist component, by an amount called the induced twist , noted. This phe-
nomenon has been previously discussed by Badler and Korein [5, 2]. It is not a major problem, but it has
to be dealt with. As shown in Figure 8, for arbitrary unit vectors and , we have that
. A solution is to extract the induced twist from the rotation matrix , and then to subtract it from the twist variable [5]. In [2], it
is shown how the induced twist can be computed, and thus removed, when using the Euler angles param- etrization. Another possibility is to perform the update of the joint orientation with a direct rotation, and then to convert the resulting orientation back into the swing and twist parametrization (see Appendix I), to check for possible joint limits violations.
d (^) 0 0 – 1
T = Sx 2 Sy 2
4 π
τ induced
a b RD ( z a , ) RD ( a b , ) ≠ RD ( z b , )
R z ( τ induced ) = RD ( z a , ) RD ( a b , ) RD ( b z , ) τ
Figure 9: Two examples of spherical ellipses.
3.2. Spherical polygons
In his excellent book, Korein [5] uses a spherical polygon as directrix for the limiting cone. The edges of the spherical polygon are great arcs connecting its vertices lying on a unit sphere, and specified by three
Cartesian coordinates^1. A great arc is the shortest path that binds two points on a sphere (it is a geodesic ). Note that, by definition, only great arcs that subtend angles less than π radians are possible. The order of the vertices defines an inside region: inverting this order swaps the inside and outside regions of the poly- gon. A spherical polygon with five vertices is shown in Figure 10. Its inside region is filled. Korein described an algorithm to test the inclusion of a point lying on the sphere within an arbitrary (possibly concave) spherical polygon.
Of course, spherical polygons are more general than spherical ellipses. They are also more complex to deal with. A similar method has been used by Maurel [7], but with planar polygons. As a consequence, the possible motion ranges are less general than those obtained with spherical polygons. However they may suffice for the human joints, and the point-in-planar-polygon test algorithm is much simpler than its spherical counterpart.
rx = 45o
ry = 45o
x
y
Sx
Sy
rx = 31o
ry = 95o
x
y
Sx
Sy
Figure 10: A spherical polygon with five directed edges.
More general boundaries can be obtained simply by using several non-overlapping spherical polygons: the set of admissible points on the sphere is then the set of points that are inside all the spherical poly- gons. This allows to create holes in the admissible space (see Figure 11). However, this possibility is not needed for human articulations.
Figure 11: Two spherical polygons define a complex admissible spherical region (with a hole).
3.3. Twist limits
The twist motion possesses a single degree of freedom, parametrized by the angle of rotation about the outgoing segment. The important point to remember when placing limits on this parameter is that they are relative to a “zero” twist, that results from the swing motion.
In the following globographic representations involving a twist freedom, the twist range of motion is visualized by the symbol depicted in Figure 12: the valid twist range indicates the orientations that can take the reference vector, namely the x basis vector of the joint frame.
In general, twist limits may depend of the swing component (see Section 5.1). For this reason, the twist
limits may be defined as functions of the swing component: and , with the
requirement that , valid swings.
τ
τ min ( Sx , Sy ) τ max ( Sx , Sy ) τ min ≤ τ max ∀ Sx , Sy
A correct solution would be to check if the great arc is entirely contained in the valid region. However this solution is complex and is prone to numerical inaccuracies when an extremity is very close to the joint boundaries. Therefore, we suggest a much simpler, yet approximate, solution. Instead of testing only the final configuration (E), we propose to test the middle point (M) of the great arc as well. If both final and middle point are valid, then we keep the final configuration. However, if the middle point is not valid, we keep its projection (P) on the joint boundary. This simple discretization of the arc has the effect of reducing to a minimum the unexpected behaviors described above, at least for reasonably small incre- ments.
5.1. An example of shoulder boundary with swing and twist components
Figure 14. shows two boundaries for the shoulder complex, based on a spherical ellipse on the left and on a spherical polygon on the right. The distal segment (the arm) is shown in its default position. The
twist limits are constant over the range of swing motion (the twist motion range is about 105o). However,
in reality the twist limits depend on the position of the arm, and the range can vary between 104o^ and
160 o^ on average [10]. The data for the spherical polygon, which are also used by [9] and [7], are obtained from the results of Engin [3].
Figure 14: Shoulder motion range, with a spherical ellipse (left) and a spherical polygon (right).
5.2. Speed results
On a SGI Octane with a 195 MHz R10000 processor, our implementation of the point-in-spherical-poly- gon algorithm described by Korein takes approximately 0.01 ms to 0.05 ms, for polygons with 4 to 200 edges. This efficiency is in part due to the very limited use of trigonometric functions required to deal with spherical polygons, at least when its vertices are expressed in Cartesian coordinates.
The swing-and-twist parametization is useful for dealing with ball-and-socket joints, and is a good basis for the definition of simple yet meaningful joint limits. This decomposition had been previously dis- cussed by Korein [5] and Grassia [4]. In this paper, we have emphasized and illustrated the difference between the well-known Euler angles parametrization and the swing-and-twist parametrization.
We have reviewed and illustrated two methods to set joint limits on the swing and twist components. The spherical ellipse proposed by Grassia is a good compromise between simplicity and accuracy, while spherical polygons are more complex but can better match real limits.
However, this discussion has ignored the coupling between the limits of multiple joints. This may be problematic for a joint such as the human hip whose range of motion is clearly coupled to the range of motion of the knee, because of thigh muscles spanning both joints.
The research was supported by the Swiss National Research Foundation, grant 20-53809.98. Thanks to the vision group at LIG, Prof. Andrew Hanson and Walter Maurel for interesting discussions on the topic of orientations and shoulder joint limits models.
[1] N. Badler, J. O’Rourke and B. Kaufman, " Special problems in human movement simulation ", Com- puter Graphics (SIGGRAPH 80), 14(3), pp. 189 - 197, 1980. [2] N. Badler, C. Phillips, B. Webber, Simulating Humans, Computer Graphics Animation and Control , New York, Oxford University Press, 1993. [3] A.E. Engin, S.T. Tuemer, “ Three-dimensional kinematic modelling of human shoulder complex - Part I: Physical model and determination of joint sinus cones ”, Journal of Biomechanical Engineering, 111, pp. 107 - 112 , 1989. [4] F.S. Grassia, " Practical Parameterization of Rotations using the Exponential Map ", Journal of Graph- ics Tools, 3(3), pp. 29 - 48, 1998. [5] J.U. Korein, " A Geometric Investigation of Reach ", The MIT Press, Cambridge, 1985. [6] J. Lee, A Hierarchical Approach to Motion Analysis and Synthesis for Articulated Figures , Ph.D. the- sis, Department of Computer Science, KAIST, 2000. [7] W. Maurel and D. Thalmann, " Human Upper Limb Modeling including Scapulo-Thoracic Constraint and Joint Sinus Cones ", Computers & Graphics, Pergamon Press, 24(2), pp. 203 - 218 , 2000. [8] R. Murray, Z. Li, S. Sastry, A mathematical introduction to robotic manipulation , CRC Press, 1994. [9] X. Wang and J.-P. Verriest, " A geometric algorithm to predict the arm reach posture for computer- aided ergonomic evaluation ", The Journal of Visualization and Computer Animation, 9, pp. 33 - 47,
[10] X.G. Wang, F. Mazet, N. Maia, K. Voinot, J.P. Verriest and M. Fayet, " Three-dimensional modelling of the motion range of axial rotation of the upper arm ", Journal of biomechanics, 31(10), pp. 899 - 908, 1998. [11] A. Watt, M. Watt, Advanced Animation and Rendering Techniques , Addison-Wesley, ACM Press,