In general, a vector can have the following two different types of definition:
1. Point Vector – A vector depends only on its length and direction, and is independent of where its tail-point is. Under this definition, any two parallel vectors with the same sign and length are equal to each other, no matter where the tail of each vector is located. To represent such a type of vector, we conventionally let its tail be placed at the origin of a reference coordinate frame and its arrow directs to the point, the coordinates of which are augmented to form a point vector.
2. Line Vector– A vector depends on, in addition to its length and direction, also the location of the straight line it lies on. Therefore, two line vectors that lie on two parallel but distinct straight lines even with the same sign and length are treated as different vectors. Intuitively, to uniquely repre- sent such a line vector, one has to define two independent point vectors, one of which determines its direction and length, and the other one de- termines its tail position, or the “moment” of the resided straight line. In other words, a line vector should be 6-dimensional in 3D (3-dimensional) space. A typical and also effective approach to the mathematical represen- tation of line vector is the so-called Dual-Number Algebra [1] that will be introduced later in this chapter.
Figure 2.1 depicts two parallel vectorsv1 andv2 with the same direction and length. Thus,v1=v2 under the point vector definition, whilev1=v2 if the two vectors are considered as line vectors, because they are separated with a nonzero distanced. As a default, we say a vector is a point vector, unless it is specifically indicated as a line vector. For example, in the later analysis and applications of robotics and digital human modeling, to uniquely determine an axis for a robot link coordinate system with respect to the common base, two point vectors have to be defined: one is a 3D unit vector indicating
X0
Z0
Y0
V1
V2
d O
B
Fig. 2.1 Two parallel vectors have a common length
its direction and the other one is a 3D position vector that determines the location of the origin of that link coordinate frame with respect to the base.
A 3D vector (of course, this is a point vector as default) is often denoted by a 3 by 1 column. The mathematical operations between two vectors include their addition, subtraction and multiplication. The vector multiplication has two different categories: the dot (or inner) product and the cross (or vector) product [2, 3]. Their definitions are given as follows:
1. Dot Product – For two 3D vectors v1=
⎛
⎝a1 b1
c1
⎞
⎠ and v2=
⎛
⎝a2 b2
c2
⎞
⎠,
v1ãv2=v2ãv1=v1Tv2=v2Tv1=a1a2+b1b2+c1c2, which is a scalar.
2. Cross Product – To determinev1×v2, first, let a 3 by 3 skew-symmetric matrix forv1be defined as
S(v1) =v1×=
⎛
⎝ 0 −c1 b1
c1 0 −a1
−b1 a1 0
⎞
⎠.
Then,v1ìv2=S(v1)ãv2which is still a 3 by 1 column vector.
The major properties for the two categories of vector multiplication are outlined as follows:
1. The dot productv1ãv2=v1v2cosθ, whereθis the angle between the positive directions of the two vectors, while the cross productv1×v2= v1v2sinθ, and its direction is perpendicular to both v1 and v2 and determined by the Right-Hand Rule.
2. For two non-zero vectors,v1ãv2= 0 if and only ifv1⊥v2, andv1ìv2= 0 if and only ifv1v2.
3. Dot product is commutable, as shown above, while the cross product is not but is skew-symmetric, i.e.,v1×v2=−v2×v1.
4. Both dot and cross products have no inverse. In other words, there is no identity vector in any of the two vector multiplication operations.
5. A successive cross product operation, in general, is not associative, i.e., for three arbitrary non-zero vectors, (v1×v2)×v3 =v1×(v2×v3). For instance, ifv2v3 but they both are not parallel tov1, and all the three vectors are non-zero, then, (v1×v2)×v3= 0, whilev1×(v2×v3) = 0.
6. ATriple Scalar Product is defined by (v1v2v3) =v1ã(v2ìv3). By using the skew-symmetric matrix for v2, it can be re-written as (v1v2v3) = v1TS(v2)v3. If taking the transpose, then,
(v1v2v3) =−vT3S(v2)v1=v3TS(v1)v2=v3ã(v1ìv2) = (v3v1v2).
Similarly,
(v1v2v3) = (v3v1v2) = (v2v3v1)
=−(v1v3v2) =−(v2v1v3) =−(v3v2v1).
Furthermore, if eachvi= (aibici)T fori= 1,2,3, then (v1v2v3) = det
⎛
⎝a1 b1 c1 a2 b2 c2 a3 b3 c3
⎞
⎠.
Therefore, the three vectors lie on a common plane if and only if (v1v2v3) = 0.
7. ATriple Vector Productis defined byv1×(v2×v3). Using a direct deriva- tion, it can be proven that
v1ì(v2ìv3) = (v1ãv3)v2−(v1ãv2)v3= (vT1v3)v2−(vT1v2)v3. (2.1) This triple vector product formula will be very useful in many later dis- cussions. Furthermore, based on this property, the following identity can be easily shown:
v1×(v2×v3) +v2×(v3×v1) +v3×(v1×v2)≡0.
As a numerical example, let v1=
⎛
⎝ 2
−1 0
⎞
⎠, v2=
⎛
⎝0 1 3
⎞
⎠ and v3=
⎛
⎝−4 0 2
⎞
⎠.
Then,
v1×v2=S(v1)v2=
⎛
⎝0 0 −1 0 0 −2
1 2 0
⎞
⎠
⎛
⎝0 1 3
⎞
⎠=
⎛
⎝−3
−6 2
⎞
⎠.
The triple scalar product becomes
(v3v1v2) =v3ã(v1ìv2) = (−4 0 2)
⎛
⎝−3
−6 2
⎞
⎠= 16.
On the other hand, det
⎛
⎝vT3 vT1 vT2
⎞
⎠= det
⎛
⎝−4 0 2 2 −1 0
0 1 3
⎞
⎠= 16.
Thus, both approaches to evaluating the triple scalar product agree with each other.
Furthermore, the triple vector product can be calculated by v3×(v1×v2) =S(v3)(v1×v2) =
⎛
⎝0 −2 0
2 0 4
0 −4 0
⎞
⎠
⎛
⎝−3
−6 2
⎞
⎠=
⎛
⎝12 2 24
⎞
⎠.
It can also be evaluated by
v3×(v1×v2) = (vT3v2)v1−(v3Tv1)v2= 6
⎛
⎝ 2
−1 0
⎞
⎠+ 8
⎛
⎝0 1 3
⎞
⎠=
⎛
⎝12 2 24
⎞
⎠.
Therefore, the two different ways for calculating the triple vector product match their answers with each other, too.
Both the two vector multiplication categories are very useful, especially in robotics and digital human modeling. In physics, the work W done by a force vectorf that drives an object along a vectorscan be evaluated by the dot-productW =f ãs =fTs. If a force vectorf is acting on an object for rotation and a radial vectorris tailed at the rotating center with its arrow at the force acting point, then the torque vectorτ is defined byτ =r×f.
After the vector definitions and operations are reviewed, we now turn our attention to 3D transformations. A linear transformation in vector space is a linear mappingT : Rn→Rm, which can be represented by anmbynmatrix.
In robotics, since rotation is one of the most frequently used operations, let us take a 3 by 3 rotation matrix as a typical example to introduce the 3D linear transformation.
Because a vector to be rotated should keep its length unchanged, a rotation matrix must be a length-preserved transformation [4, 5]. A 3 by 3 orthogo- nal matrix that is a member of the following Special Orthogonal Groupcan perfectly play such a unique role in performing a rotation as well as in rep- resenting the orientation of a coordinate frame:
SO(3) =
R∈R3×3|RRT =I and det(R) = +1 .
Based on the definition, a 3 by 3 rotation matrix R ∈ SO(3) has the following major properties and applications:
1. R−1=RT .
2. If a rotation matrixRis also symmetric, thenR2=RRT =I. This means that a vector rotated by such a symmetricRsuccessively twice will return to itself. This also implies that a symmetric rotation matrix acts either a 00rotation or a 1800rotation, and nothing but these two cases.
3. One of the three eigenvalues for a rotation matrix R ∈ SO(3) must be +1, and the other two are either both real or complex-conjugate such that their product must be +1. This means that there exists an eigenvector x∈R3such thatRx=x.
4. A 3 by 3 rotation matrixRibcan be used to uniquely represent, in addition to vector or frame rotations, the orientation of a coordinate frameiwith respect to a reference frameb. Namely, each column of the rotation matrix Rbi is a unit vector, and they represent, respectively in order, thex-axis, they-axis and thez-axis of frame iwith respect to frameb.
5. If a vector vi is currently projected on frame i and we want to know the same vector but projected on frame b, then vb = Ribvi if Rbi is the orientation of frameiwith respect to frameb.
The Lie groupSO(3) is also a 3D topological space, which can be spanned by the basis of three elementary rotations:R(x, α) that rotates a frame about its x-axis by an angle α, R(y, β) that rotates about the y-axis by β, and R(z, γ) to rotate about the z-axis by γ. The detailed equations of the basis are given as follows:
R(x, α) =
⎛
⎝1 0 0 0 cα −sα
0 sα cα
⎞
⎠, R(y, β) =
⎛
⎝ cβ 0 sβ
0 1 0
−sβ 0 cβ
⎞
⎠,
and
R(z, γ) =
⎛
⎝cγ −sγ 0 sγ cγ 0
0 0 1
⎞
⎠, (2.2)
where eachcα= cosαandsα= sinαas well as forcβ= cosβandcγ = cosγ as a conventional abbreviation in robotics.
It will be seen later that any orientation change for a frame can always be composed by a certain combination of the above three elementary rotations successively, such as the well-known Euler angles [7, 8] that will be discussed in the next chapter.
In contrast to rotation, a translation of either a vector tail-point or a co- ordinate frame is very straightforward without any complication, and we can simply use the addition of 3D vectors to perform any successive translations.
In general, for a 6 degrees of freedom (d.o.f.) motion in 3D space, one may desire to define a unified transformation to perform both translation and rotation simultaneously for a coordinate frame. Such unified 6-dimensional transformations will span the followingSpecial Euclidean Space:
SE(3) =
(p, R)|p∈R3, R∈SO(3)
=R3×SO(3), which is also a Lie group [8].