Download Geometric Fundamentals in Robotics Rigid Motions in R3

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

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

Matrix calculus wikipedia , lookup

Four-vector 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