Geometric Fundamentals in Robotics Homogeneous Coordinates Basilio - - PowerPoint PPT Presentation

geometric fundamentals in robotics homogeneous coordinates
SMART_READER_LITE
LIVE PREVIEW

Geometric Fundamentals in Robotics Homogeneous Coordinates Basilio - - PowerPoint PPT Presentation

Geometric Fundamentals in Robotics Homogeneous Coordinates Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 1 / 32 Introduction Homogeneous coordinates are an augmented


slide-1
SLIDE 1

Geometric Fundamentals in Robotics Homogeneous Coordinates

Basilio Bona

DAUIN-Politecnico di Torino

July 2009

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 1 / 32

slide-2
SLIDE 2

Introduction

Homogeneous coordinates are an augmented representation of points and lines in Rn spaces, embedding them in Rn+1, hence using n +1 parameters. This representation is useful in dealing with perspective and projective transformation (computer graphics, etc.) and for rigid displacement representation. We start introducing the concept on 2D spaces. Given a point p in R2, represented as P = (p1, p2), i.e., the vector p = p1 p2 T its homogeneous representation (using homogeneous coordinates) is ˜ p = ˜ p1 ˜ p2 ˜ p3 T ; with 0T not allowed The vector representation is obtained dividing the first n homogeneous components by the (n + 1)-th, that is often called scale. p1 = ˜ p1/˜ p3; p2 = ˜ p2/˜ p3

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 2 / 32

slide-3
SLIDE 3

A geometric interpretation of the homogeneous coordinates is given in the following Figure.

Figure: Geometric interpretation of homogeneous coordinates.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 3 / 32

slide-4
SLIDE 4

We embed the plane π : z = 1 in a 3D space and we consider the planar coordinates as the intersection of a projection line that goes through the

  • rigin of the RF {i, j, k}.

As z goes to ∞ we can represent the origin, while as z goes to 0, we can represents points at infinity, along a well defined direction. The set of all points at infinity represents the line at infinity.

Figure: Points at ∞.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 4 / 32

slide-5
SLIDE 5

The same approach is valid for 3D homogeneous coordinates: given a point p in R3, represented as P = (p1, p2, p3), or else by a vector p = p1 p2 p3 T its homogeneous representation is ˜ p = p1 p2 p3 p4 T Hence p1 = ˜ p1/˜ p4; p2 = ˜ p2/˜ p4; p3 = ˜ p3/˜ p4 In robotics it is common to set ˜ p4 = 1. We will adhere to this convention.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 5 / 32

slide-6
SLIDE 6

Some author treats differently the homogeneous representation of a point (geometric vector vp) by that of an oriented segment (physical vector vab). In the first case ˜ vp =

  • vp

1

  • while in the second case

˜ vab =

  • vb

1

  • va

1

  • =
  • vab
  • Not all textbooks adhere to this convention, since in this case the sum of

two geometric vectors produces ˜ vp + ˜ vq =

  • vp

1

  • +
  • vq

1

  • =
  • vp + vq

2

  • This sum, once transformed back in 3D space, becomes not the usual

parallelogram sum of segments, but the midpoint of the parallelogram (see also Affine Spaces).

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 6 / 32

slide-7
SLIDE 7

Figure: Homogeneous sum of two geometric vectors.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 7 / 32

slide-8
SLIDE 8

Affine spaces

Briefly, affine spaces are spaces where the origin is not considered to be a special point, and homogeneous coordinates are used to characterize the affine elements (points and planes).

Figure: Linear and affine subspaces.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 8 / 32

slide-9
SLIDE 9

Rigid displacements and homogeneous coordinates

Using homogeneous representation, the generic displacement (R, t) is given by the following homogeneous transformation matrix H ≡ H(R, t) =

  • R

t 0T 1

  • since

H˜ v =

  • R

t 0T 1 v 1

  • = Rv + t

Hence, the SE(3) group transformation g = (R, t) ∈ SE(3), is represented by the 4 × 4 homogeneous matrix H through the use of homogeneous coordinates: pa = gabpb ↔ ˜ pa = Hab(Rab, tab)˜ pb

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 9 / 32

slide-10
SLIDE 10

Transformation composition gabgbc is obtained by the homogeneous matrix product Hab(Rab, tab)Hbc(Rbc, tbc) i.e.,

  • Rab

tab 0T 1 Rbc tbc 0T 1

  • =
  • RabRbc

Rabtbc + tab 0T 1

  • Often it is convenient to write the time derivative of a homogeneous

vector as ˙ ˜ p =    ˙ p1 ˙ p2 ˙ p3    This notation will prove useful when dealing with twists.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 10 / 32

slide-11
SLIDE 11

Introduction to projective/perspective geometry

Homogeneous coordinates ˜ p are used for describing point in projective spaces Pn of dimension n. Two points ˜ a and ˜ b are “equal” (˜ a ∼ ˜ b) if there exist a real λ = 0 such that ˜ a = λ˜ b → ˜ b ∼ λ˜ b collinear points are equal this also means that vectors are equal up to a scale factor. We say that ˜ a and ˜ b belong to the same line, i.e., to the same affine subspace of Rn+1. Consider the planar (2D) projection through a pinhole camera of a 3D point P, p = x y

  • zT. The ray of light intercepts the image plane in

the 2D image point Pi, whose homogeneous coordinates on the image plane are ˜ pi =   x y f   → pi =

  • x/f

y/f T = 1 f

  • x

y T where f is the focal distance

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 11 / 32

slide-12
SLIDE 12

Figure: Example of projection through a pinhole camera.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 12 / 32

slide-13
SLIDE 13

Considering the similar triangles in Figure, we have: x f = X Z ; y f = Y Z If we set λ = Z/f , where f is known and the distance Z from π of the point p is unknown, we have X = λx, Y = λy, Z = λf Hence, if we compute the cartesian coordinates of pi on π from homogeneous coordinates, we have pi =

  • x/f

y/f

˜ pi =   fX fY Z   ∼ λ   x y 1   ∼   x y f   and every 3D point with homogeneous coordinates λ x y f T is projected onto the same point pi of the image plane π. Notice that the above transformation is a nonlinear one.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 13 / 32

slide-14
SLIDE 14

The nonlinear mapping R3 → R2 can be expressed as a (linear) matrix transformation between the homogeneous spaces R4 → R3 as   fX fY Z   ∼ λ   x y 1   =   f f 1  

  • P

   X Y Z 1    ⇔ λ˜ pi = P

  • p

1

  • Nonsingular (i.e., invertible) mappings between projective spaces are

described by products of full rank square matrices T by homogeneous coordinates, ˜ pa = Tab˜ pb An invertible mapping from Pn onto itself preserves collinearities, i.e., if two points belong to a line, also the transformed points will belong to a line. Affine transformations preserve not only collinearities, but also parallelism between lines and ratios of distances. Similarity transformations preserves also angles, but not scales, while Euclidean (rigid) transformations preserve also scales

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 14 / 32

slide-15
SLIDE 15

Figure: Examples of different mappings.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 15 / 32

slide-16
SLIDE 16

Hyperplanes

A hyperplane in Rn is defined by the equation between a set of points pi and a set of (real) coefficients ℓi ℓ1p1 + ℓ2p2 + · · · + ℓnpn + ℓn+1 = 0 Using the homogeneous coordinates we obtain an homogeneous linear equation in Pn ˜ ℓ

p = 0 where ˜ ℓ =     ℓ1 . . . ℓn ℓn+1     ; ˜ p =     p1 . . . pn 1     The two homogeneous vectors can exchange their roles; we say that they are dual.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 16 / 32

slide-17
SLIDE 17

Remember that, given a vector p ∈ V(F), the set of all linear transformations f (p) : V → R1 form another vector space V∗, and f ∈ V∗ are called dual vectors or 1−forms. For example, the total time derivative of a scalar function f (p) on R3 is df (p(t)) dt = ∇pφ(p)˙ p(t) is a dual vector wrt ˙

  • p. Another dual vector is the divergence

∇ · p = ∂ ∂p1 · · · ∂ ∂pn T   p1 . . . pn  

  • r the Laplacian (gradient of the divergence)

∇2f = ∇ · ∇f = ∂ ∂p1 · · · ∂ ∂pn T       ∂f ∂p1 . . . ∂f ∂pn      

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 17 / 32

slide-18
SLIDE 18

Duality in projective spaces

The space of all hyperplanes in Rn defines another perspective space, called the dual of the original Pn Duality principle: for all projective results established using points and planes, a symmetrical result holds interchanging the role of planes and points. Example: two points define a line ↔ two lines define a point Notice that the projective plane P2 whose point are defined by homogeneous coordinates, has more point that the usual R2 plane, since it includes also points at ∞.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 18 / 32

slide-19
SLIDE 19

A collineation given by a full rank matrix T transforms points as ˜ pa = Tab˜ pb A hyperplane ˜ ℓ

T b ˜

pb = 0 is transformed as ˜ ℓ

T b ˜

pb = 0 ⇔ ˜ ℓ

T a ˜

pa = 0 hence ˜ ℓ

T a Tab˜

pb ⇒ ˜ ℓ

T b = ˜

T a Tab

yielding ˜ ℓa = T−

ab T˜

T b

Matrix T−

ab T is called the dual of Tab

Comparing this last equation with the first one, we conclude that points and lines can be transformed, but using different (dual) collineation matrices Tab and T−

ab T.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 19 / 32

slide-20
SLIDE 20

Points and lines

We restrict our analysis on the 2D projective space P2; for the sake of clarity, we drop the ˜ sign on top of the homogeneous vectors, i.e., ˜ a is now indicated as a. A line ℓ = ℓ1 ℓ2 ℓ3

  • can be characterized by three parameters:

1

the slope −ℓ1/ℓ2

2

the x-intercept −ℓ3/ℓ1

3

the y-intercept −ℓ3/ℓ2 Points p and lines ℓ are related by ℓTp = 0 in the sense that a point is on a line or a line include a point iff the previous relation holds.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 20 / 32

slide-21
SLIDE 21

Duality A line ℓ passing for two points p1 and p2 is defined as ℓ = p1 × p2 = S(p1)p2 A point p belonging to two lines (intercept) ℓ1 and ℓ2 is defined as p = ℓ1 × ℓ2 = S(ℓ1)ℓ2 Points at infinity or ideal points have the following representation p∞ = p1 p2 0T All ideal points lie on the ideal line, represented by ℓ∞ = 1T

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 21 / 32

slide-22
SLIDE 22

Three points p1, p2, p3 lie on the same line (they are collinear) iff det p1 p2 p3

  • = 0

Since the duality principle holds, three lines ℓ1, ℓ2, ℓ3 meet at the same point (they are concurrent) iff det ℓ1 ℓ2 ℓ3

  • = 0

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 22 / 32

slide-23
SLIDE 23

Parallelism

Two lines m =   m1 m2 m3   ; n =   n1 n2 n3   are parallel when the intersection point is at infinity, i.e., p = m × n =   p1 p2   This reduces to the conditions m1 m2 = n1 n2

  • r

det

  • m1

n1 m2 n2

  • = 0

The direction k

  • p1

p2

  • points toward the point at infinity.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 23 / 32

slide-24
SLIDE 24

Summary

point p = p1 p2 p3 T line ℓ = ℓ1 ℓ2 ℓ3 T incidence pTℓ = 0 incidence ℓTp = 0 line ℓ = p1 × p2 point p = ℓ1 × ℓ2 collinearity det p1 p2 p3

  • = 0

collinearity det ℓ1 ℓ2 ℓ3

  • = 0

∞ point p1 p2 0T ∞ line ℓ3 T

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 24 / 32

slide-25
SLIDE 25

Transformations in P2

The generic projective transformation (also called homographies) in P2 is represented by a non singular 3 × 3 matrix (acting on homogeneous vectors), whose elements are T =   t11 t12 t13 t21 t22 t23 t31 t32 t33   Since the transformations are equivalent up to a scale factor, the number

  • f dof in T is 8.

According to structural constraint, we have a hierarchy of transformations, from the most general to the least one; in particular

Transformations in P2

(most general) projective → affine → similarity → Euclidean (rigid)

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 25 / 32

slide-26
SLIDE 26

The affine transformation must preserve the ideal line and the ideal points (as well as parallelism); hence, for any arbitrary scaling factor λ λ   p1 p2   = T   p1 p2   that implies T =   t11 t12 t13 t21 t22 t23 t33   → dof=6

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 26 / 32

slide-27
SLIDE 27

The similarity transformation must preserve angles and ratios of lengths; that implies T =   cos θ − sin θ t13 sin θ cos θ t23 t33   → dof=3 with t33 = 1. The effects of the last column in T is to produce a shear i.e., a scale variation that is non uniform in all directions.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 27 / 32

slide-28
SLIDE 28

The Euclidean (rigid) transformation must preserve also lengths; that implies T =   cos θ − sin θ t13 sin θ cos θ t23 1   → dof=3

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 28 / 32

slide-29
SLIDE 29

Historical notes

Homogeneous coordinates were introduced in 1827 by M¨

  • bius in the

context of barycentric coordinates. Given a triangle, the barycentric coordinates of a point P are the weights required at the triangle vertices such that P become the center of gravity of the triangle. The point is computed as p = wax wby wczT, with wa + wb + wc = 1

Figure: Example of barycentric coordinates.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 29 / 32

slide-30
SLIDE 30

From homogeneous coordinates to quaternions

There exist a link between homogeneous coordinates and quaternions that goes through the M¨

  • bius transformation.

Given two complex numbers x = x1 + jx2, y = y1 + jy2 ∈ C, the ordered pair of complex numbers ˜ z = x yT ∈ C2, ˜ z = 0T are the homogeneous coordinates of z = z1 + jz2 z = x y = z1 + jz2 = x1 + jx2 y1 + jy2 To every pair of complex numbers (x, y) a unique complex numbers z corresponds, while for every complex number z there is an infinite number

  • f complex pairs (projective transformation).

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 30 / 32

slide-31
SLIDE 31

Transformation between homogeneous representations ˜ z =

  • x

y

  • → ˜

w =

  • u

v

  • where
  • u

v

  • =
  • a

b c d x y

  • =
  • ax + by

cx + dy

  • where a, b, c, d are complex numbers.

We can compute the transformed complex number as w = u v = ax + by cx + dy = a x

y + b

c x

y + d = az + b

cz + d This is nothing else that the M¨

  • bius transformation.

  • bius transformation

w = az + b cz + d ; a, b, c, d, w, z ∈ C

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 31 / 32

slide-32
SLIDE 32

If we take a particular form of the M¨

  • bius transformation, due to Gauss:

w = az + b −b∗z + a∗ we know that every rotation of the sphere can be expressed by a complex function as the one above, and we notice that it can be represented by the matrix of its coefficients

  • a

b −b∗ a∗

  • =
  • α + jβ

γ + jδ −γ + jβ α − jβ

  • =

α

  • 1

1

  • + β
  • j

j

  • + γ
  • 1

−1

  • + δ
  • j

j

  • =

α1 + βi + γj + δk = a quaternion For further details see: T. Needham, Visual Complex Analysis, OUP, 1997.

Basilio Bona (DAUIN-Politecnico di Torino) Rigid motions July 2009 32 / 32