* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Geometric Fundamentals in Robotics Rigid Motions in R3
Survey
Document related concepts
Euclidean vector wikipedia , lookup
Vector space wikipedia , lookup
Laplace–Runge–Lenz vector wikipedia , lookup
Eigenvalues and eigenvectors wikipedia , lookup
Perron–Frobenius theorem wikipedia , lookup
Non-negative matrix factorization wikipedia , lookup
Singular-value decomposition wikipedia , lookup
Gaussian elimination wikipedia , lookup
Rotation matrix wikipedia , lookup
Covariance and contravariance of vectors wikipedia , lookup
Cayley–Hamilton theorem wikipedia , lookup
Orthogonal matrix wikipedia , lookup
Matrix multiplication wikipedia , lookup
Transcript
Geometric Fundamentals in Robotics Rigid Motions in R3 Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 1 / 29 Introduction Isometries are transformations that preserve distances: if g is an isometric transformation that takes a point P and transforms in into another point −−− → −−−−−−−−→ g (P), then P1 P2 = g (P1 )g (P2 ). Rigid motions in R3 are a special type of isometry applied to rigid bodies. In other words, rigid motions act on orthogonal right-hand RF, moving their origin and changing their orientation (wrt to a “fixed” reference frame), but maintaining the unit vectors length. Moreover, the RF does not change “handedness”. Rigid motions include rotations and translations, while isometries, in addition to these, include also reflections, that reverse RF’s. Reflections are not physically admissible and will not be treated here rotations have been considered elsewhere, so now we will briefly introduce translations. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 2 / 29 Translations A translation is a rigid motion that takes the origin A of a RF and moves −→ it to a new origin B such that AB = tab . If we call Ra the original RF and Rb the new one, we define symbolically the translation as the operator Ra (A, i, j, k) → Rb (A + tab , i, j, k) = Rb (B, i, j, k) −→ If a geometric point P in Rb is described by the vector BP = pb , the representation of the same point in Ra is pa = Trasl(pb , tab ) = pb + tab Then one can conclude that the translation operator is represented by the vector sum. Composition of translations is simply the sum of its representation Trasl(v, tab ) · · · Trasl(v, tyz ) = Trasl(v, (tab + · · · + tyz )) Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 3 / 29 While a rotation is a linear transformation (it is represented by a matrix), a translation is not. Indeed, applying the definition of linear transformation we see that λ1 (a + t) + λ2 (b + t) = λ1 a + λ2 b + (λ1 + λ2 )t and λ1 (a + t1 ) + λ2 (a + t2 ) = (λ1 + λ2 )a + λ1 t1 + λ2 t2 The two relations are equal only under the additional constraint λ1 + λ2 = 1; this fact characterize the invariance property of affine spaces [Gallier]. Affine spaces, barycentric coordinates, and homogeneous coordinates are strictly connected, but this issue will be further investigated in another part of the course. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 4 / 29 Roto-translations We have already seen that a rotation is represented by a (orthogonal) matrix R, that transforms vectors as va = Rab vb . We use the matrix product for rotations and the vector sum for translations, i.e., a vector vb in a RF Rb that is roto-translated wrt Ra , is represented in Ra by va = Rab vb + tab Figure: A roto-translation. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 5 / 29 We can transform this nonlinear mapping into a linear one, embedding the space Rn into Rn+1 , using the homogeneous coordinates (see related slides). Given a vector v ∈ R3 , its homogeneous representation (or homogeneous coordinates) is written as ṽ, where wv1 ṽ1 /ṽ4 wv ṽ = 2 → v = ṽ2 /ṽ4 wv3 ṽ3 /ṽ4 w usually we choose w = 1, yielding v1 v1 v2 ṽ = → v = v2 v3 v3 1 Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 6 / 29 Using homogeneous vector representation, the generic displacement (R, t) (also called a roto-translation) is given by the following homogeneous matrix H ≡ H(R, t) = since Hṽ = " R 0T " R t 0T 1 # # v = Rv + t 1 1 t A configuration of the system consists of the pair (R, t), and the configuration space of the system is the product space called SE (3) SE (3) = (R, t) : t ∈ R3 , R ∈ SO(3) = R3 × SO(3) SE (3) is called the Euclidean group of dimension 3. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 7 / 29 A roto-translation is composed by a translation followed by a rotation wrt the mobile RF. Figure: A roto-translation factorization. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 8 / 29 From the homogeneous matrix it is possible to compute the 6 parameters of a rigid body. Figure: A homogeneous matrix. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 9 / 29 Twists Consider the following Figure, where a) represents a rigid body that rotates and b) a rigid body that translates around/along a unit axis u; q is a point on the axis, while p is a point of the rigid body. Figure: a) Rotation; b) Translation. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 10 / 29 Assuming the first case a) i.e., that the body rotates at unit velocity (ω = u, θ̇ = 1), the velocity of point p is given by ṗ(t) = ω × (p(t) − q) = ω × p(t) − ω × q that can be expressed in homogeneous coordinates, defining a new matrix T, called twist, as S(ω) −ω × q T= 0T 0 since ṗ1 S(ω) −ω × q p ṗ2 ˙ ṗ = p̃ = Tp̃ = 0T 1 0 3 0 If we set v = −ω × q, we can write S(ω) v T= 0T 0 Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 11 / 29 Assuming the second case b) i.e., that the body translates at unit velocity (v = u, v = 1), the velocity of point p is given by ṗ(t) = v Here the twist matrix is O v T= T 0 0 In analogy with the definition of so(3), we define se(3) := (v, S(ω)) : v ∈ R3 ; S(ω) ∈ so(3) and, in homogeneous coordinates, S(ω) T= 0T the twist T is v ⊂ se(3) ∈ R4×4 0 (v, ω) are called the twist coordinates of T, and are indicated also as T V= v ω . Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 12 / 29 Considering the spatial twist coordinates and the body twist coordinates T Vsab = vsab ω sab T Vbab = vbab ω bab the following adjoint transformation can be defined b s v vab = A ab ω sab ω bab where A is a 6 × 6 matrix given as Rab S(tab )Rab O Rab and tab is the translation between the two RF’s. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 13 / 29 As so(3) is the infinitesimal generator of SO(3), the twist T(3) is the infinitesimal generator of the (special) Euclidean group SE (3). Given a twist T ∈ se(3), and θ ∈ R1 , the exponential of T is an element of SE (3), i.e., e Tθ ∈ SE (3) where θ is the total amount of rotation and/or the total amount of translation Case 1): (ω = 0) e Tθ = " I vθ 0T 1 # Case 2): (ω = u 6= 0,) e where Tθ = " e S(uθ) 0T t̄ # 1 t̄ = (I − e S(uθ) )(ω × v) + ωω T vθ is a translation (integral of a linear velocity). Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 14 / 29 The transformation g = e Tθ is different from the exponential of the skew-symmetric matrix S, R(u, θ) = e S(u)θ since it shall be interpreted, not as a transformation mapping from one RF to another, but rather as a mapping from the initial homogeneous coordinates p̃(0) to the final ones (expressed in the same inertial RF) p̃(θ) = e Tθ p̃(0) where θ is normalized time, since we assumed unit velocities. Thus the exponential map for a twist gives the relative motion of a rigid body. We conclude saying that every rigid displacement can be represented as the exponential of some twist, i.e., given a g = (R, t) there exists T ∈ (3) and θ ∈ R1 such that g = e Tθ . The proof is constructive and will be omitted. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 15 / 29 Summary table so(3) 0 −ω3 ω2 0 −ω1 S(ω) = ω3 −ω2 ω1 0 SO(3) R(u, θ) = e S(ω) = e S(u)θ = se(3) SE (3) T= " # S(ω) v 0T H = e Tθ = ω = θu; Basilio Bona (DAUIN-Politecnico di Torino) 1 " e S(u)θ 0T v = v u; t̄ ∞ 1 P Sk (u)θ k=0 k! # 1 t̄ = (I − e S(u)θ )(ω × v) + ωω T vθ Rigid motions July 2009 16 / 29 Screws The notion of screw is introduced here only for completeness, but will not be detailed. Screws are useful as a geometrical descriptions of twists and wrenches (yet to be defined) that provide a characterization of the power exchanged when the robot is in contact with the environment, as in the case of robotic manipulation. The Chasles/Mozzi theorem says that the most general rigid body displacement can be reduced to a translation along a line followed (or preceded) by a rotation about that line. Because this displacement is reminiscent of the displacement of a screw, it is called a screw displacement, and the line or axis is called the screw axis. The proof is omitted, but it derives from a suitable factorization of a generic homogeneous transformation " # " ′ # R t R t′ ′ H= T →H = T ; R′ = Rot(k, θ); t′ = 0 0 t 0 1 0 1 Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 17 / 29 Figure: The geometry of a screw. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 18 / 29 Wrenches A wrench is a vector F ∈ R6 defined as f F= τ where f ia a force vector and τ is a torque vector. Similarly to a twist that is described by a screw, also a wrench may be described by a screw. Indeed a theorem dual to Mozzi/Chasles theorem exists, called Poinsot’s theorem that assert that every wrench is equivalent to a force and torque applied along the same axis. The dot product between twists and wrenches gives the instantaneous power associated to a motion of a rigid body by an applied force. A wrench F is said to be reciprocal to a twist V if F·V =0 Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 19 / 29 A note on complex, double and dual numbers Reference Kantor and Solodovnikov, Hypercomplex Numbers: An Elementary Introduction to Algebras. Springer 1989. Planar rotations are often represented using the complex number algebra, since it is well known that a unit complex number r = r1T + jr2 = e jθ , kr k2 = r12 + r22 = 1 act as a “rotator” in the plane, i.e., taking a generic complex number T c = x + jy , that represents the point (or vector) c = x y , the complex product rc produces a new vector c ′ with the same norm, but rotated counterclockwise by an angle equal to the rotator phase θ. c = kck e jα Basilio Bona (DAUIN-Politecnico di Torino) → c ′ = rc = kck e j(α+θ) Rigid motions July 2009 20 / 29 One particularly elegant representation interprets each complex number as a 2 × 2 matrix with real entries which stretches and rotates the points of the plane. Every such matrix has the form a −b c −s → → r = cos θ + j sin θ b a s c hence a −b 1 0 0 −1 =a +b b a 0 1 1 0 So we can associate 1 0 1→ 0 1 0 −1 j→ 1 0 where the 2 × 2 matrix representing j is a +π/2 rotation in the plane. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 21 / 29 Figure: Complex numbers as 2 × 2 matrices. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 22 / 29 Generalized imaginary unit Without entering into details, we can state that if we take two numbers a + bj and c + dj and their product ac + adj + bcj + bdj2 and try to generalize the value of j2 , only three number systems emerge 1 2 3 numbers a + bj, with j2 = −1 (the complex numbers) numbers a + bj, with j2 = 0 (the so-called dual numbers) numbers a + bj, with j2 = 1 (the so-called double or split-complex numbers) Unlike complex numbers, dual and double numbers do not, in general, admit division. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 23 / 29 Dual numbers Every dual number has the form z = a + εb with ε2 = 0 with a and b uniquely determined real numbers. 0 1 Using matrices, ε can be represented by the matrix and z by the 0 0 matrix a b z= 0 a The sum and product of dual numbers are computed with ordinary matrix addition and matrix multiplication; both operations are commutative and associative. This procedure is analogous to matrix representation of complex numbers. Geometrically a unit dual number (a2 + b 2 = 1) is a planar shear transformation. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 24 / 29 Double numbers Double numbers aka split-complex numbers (or hyperbolic numbers) are a number system where numbers have the form z = a + Jb J2 = 1 The use of split-complex numbers dates back to 1848 when James Cockle named them “Tessarines”. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 25 / 29 William Clifford pointed out the inadequacy of simple algebraic entities, like scalars and vectors, to represent important mechanical quantities and behaviours. Vectors well describe directed entities not associated to a particular position, like translations and couples. Nevertheless, there are mechnical quantities where position is important, as a rotational velocity of a rigid body around a definite axis, or a force on a rigid body, acting along a particular line of action. Clifford introduced the term rotor to quantities that have magnitude, direction and a position constrained to lie along an axis. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 26 / 29 William Clifford used double numbers to represent sums of spins. Clifford introduced the use of double numbers as coefficients in a quaternion algebra now called split-biquaternions. He called its elements motors, a term in parallel with the “rotor” action of an ordinary complex number taken from the circle group. Extending the analogy, functions of a motor variable contrast to functions of an ordinary complex variable. In the XX-century the double numbers became common to describe the Lorentz boosts of special relativity, in a spacetime plane, because a velocity change between frames of reference is essentially the action of a hyperbolic versor in a space of mixed signature. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 27 / 29 Figure: Unit complex, dual and double numbers multiplication. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 28 / 29 References [Gallier] J. Gallier, Geometric methods and applications. Springer, 2001. Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 29 / 29