1
Three-dimensional Modeling
This chapter looks at the three-dimensional modeling of a solid (non-articulated) robot. Such modeling is used to represent airplanes, quadcopters, submarines, and so on. Through this modeling we will introduce a number of fundamental concepts in robotics such as state representation, rotation matrices and Euler angles. The robots, whether mobile, manipulator or articulated, can generally be put into a state representation form:
where x is the state vector, u the input vector and y the vector of measurements [JAU 05]. We will call modeling the step which consists of finding a more or less accurate state representation of the robot. In general, constant parameters may appear in the state equations (such as the mass and the moment of inertia of a body, viscosity, etc.). In such cases, an identification step might prove to be necessary. We will assume that all of the parameters are known. Of course, there is no systematic methodology that can be applied for modeling a mobile robot. The aim of this chapter is to present the tools which allow us to reach a state representation of three-dimensional solid robots in order for the reader to acquire a certain experience which will be helpful when modeling his/her own robots. This modeling will also allow us to recall a number of important concepts in Euclidean geometry, which are fundamental in mobile robotics. This chapter begins by recalling a number of important concepts in kinematics which will be useful for the modeling.
1.1. Rotation matrices
For three-dimensional modeling, it is essential to have a good understanding of the concepts related to rotation matrices, which are recalled in this section. It is by using this tool that we will perform our coordinate system transformations and position our objects in space.
1.1.1. Definition
Let us recall that the jth column of the matrix of a linear application of Rn Rn represents the image of the jth vector ej of the standard basis (see Figure 1.1). Thus, the expression of a rotation matrix of angle ? in the plane R2 is given by:
Figure 1.1. Rotation of angle ? in a plane
Concerning rotations in the space R3 (see Figure 1.2), it is important to specify the axis of rotation. We distinguish three main rotations: the rotation around the Ox axis, around the Oy axis and around the Oz axis.
Figure 1.2. Rotations in R3 following various viewing angles
The associated matrices are respectively given by:
Let us recall the formal definition of a rotation. A rotation is a linear application which is an isometry (i.e. it preserves the scalar product) and is direct (it does not change the orientation in space).
THEOREM.- A matrix R is a rotation matrix if and only if:
PROOF.- The scalar product is preserved by R if, for any u and v in Rn, we have:
Therefore RTR = I. The symmetries relative to a plane, as well as all the other improper isometries (isometries that change the orientation of space, such as a mirror), also verify the property RT·R = I. The condition det R = 1 allows us to be limited to the isometries which are direct. ■
1.1.2. Lie group
The set of rotation matrices of Rn forms a group with respect to the multiplication. It is referred to as a special orthogonal group (special because det R =1, orthogonal because RT·R = I) and denoted by SO(n). It is trivial to check that (SO(n), ·) is a group where I is the neutral element. Moreover, the multiplication and the inversion are both smooth. This makes SO(n) a Lie group which is a manifold of the set of matrices Rn×n.
The set Rn×n of n × n-matrices is of dimension n2. Since the matrix RT · R is always symmetric, the matrix equation RT · R = I can be decomposed into independent scalar equations. For instance, for n = 2, we have scalar equations:
As a consequence, the set SO(n) forms a manifold of dimension .
- - for n = 1, we get d = 0. The set SO (1) is a singleton which contains a single rotation matrix: R =1;
- - for n = 2, we get d =1. We need a unique parameter (or angle) to represent the rotations of SO(2);
- - for n = 3, we get d = 3. We need three parameters (or angles) to represent SO (3).
1.1.3. Lie algebra
An algebra is an algebraic structure over a body , if (i) is a vector space over ; (ii) the multiplication rule × of is left- and right-distributive with respect to +; and (iii) for all a, , and for all x, , a·x × ß ·y and (aß) · (x × y). Notice that in general, an algebra is non-commutative (x × y ? y × x) and non-associative ((x × y) × z ? x × (y × z)). A Lie algebra is a non-commutative and non-associative algebra in which multiplication, denoted by a so-called Lie bracket, verifies that (i) [·, ·] is bilinear, i.e. linear with respect to each variable; (ii) [x, y] = - [y, x] (antisymmetry) and (iii) [x, [y, z]] + [y, [z, x]] + [z, [x, y]] = 0 (Jacobi relation).
For Lie groups, we can define the associated Lie algebras. Lie algebras allow us to consider infinitesimal motions around a given element (i.e. a rotation matrix) in order to use derivatives or differential methods.
Consider the rotation matrix I of SO(n) corresponding to the identity. If we move I by adding a small matrix, say A · dt of Rn×n, we generally do not obtain a rotation matrix. We are interested in matrices A such that I + A · dt ? SO(n). We have
i.e. A · dt + AT · dt = 0 + o (dt). Therefore, A should be skew-symmetric. This means that we are able to move in SO(n) around I by adding infinitesimal skew-symmetric matrices A · dt that are not elements of SO(n). This corresponds to a new operation in SO(n) which is not the multiplication that we already had. Formally, we define the Lie algebra associated with SO(n) as follows:
and it corresponds to the skew-symmetric matrices of Rn×n.
If we now want to move around any matrix R of SO(n), we generate a rotation matrix around I and we transport it to R. We get R (I + A · dt) where A is skew-symmetric. This means that we add to R the matrix R · A · dt.
In robotics, Lie groups are often used to describe transformations (such as translations or rotations). The Lie algebra corresponds to velocities or equivalently to infinitesimal transformations. Lie group theory is useful, but requires some non-trivial mathematical backgrounds that are beyond the scope of this book. We will try to focus on SO (3) or use more classical tools such as Euler angles and rotation vectors, which are probably less general but are sufficient for control purposes.
1.1.4. Rotation vector
If R is a rotation matrix depending on time t, by differentiating the relation RRT = I, we get
Thus, the matrix is a skew-symmetric matrix (i.e. it satisfies AT = -A and therefore its diagonal contains only zeroes, and for each element of A, we have (aij = -aji). We may therefore write, in the case where R is of dimension 3 × 3:
[1.1] The vector ? = (?x, ?y, ?z) is called the rotation vector associated with the pair . It must be noted that is not a matrix with good properties (such as for instance the fact of being skew-symmetric). On the other hand, the matrix has the structure of equation [1.1] since it allows positioning within the coordinate system in which the rotation is performed, and this is due to the change of basis performed by RT. We will define the cross product between two vectors ? and x ? R3 as follows:
1.1.5. Adjoint
For each vector ? = (?x, ?y, ?z), we may adjoin the skew-symmetric matrix:
which can be interpreted as the matrix associated with a cross product by the vector ?. The matrix Ad (?) is also written ??.
PROPOSITION.- If R(t)...