• No results found

Reference Frames. The relation between references frames is essential to a successful system

N/A
N/A
Protected

Academic year: 2021

Share "Reference Frames. The relation between references frames is essential to a successful system"

Copied!
38
0
0

Loading.... (view fulltext now)

Full text

(1)

CS 3630

(2)

Reference Frames

โ€ข Robotics is all about management

of reference frames

โ€ข Perception is about estimation of reference frames

โ€ข Planning is how to move reference frames

โ€ข Control is the implementation of trajectories for reference frames

โ€ข The relation between references

frames is essential to a successful

system

(3)

Application to Drones

To characterize the position and orientation of a drone in flight,

โ€ข attach a coordinate frame to the drone (rigid attachment)

โ€ข specify the position and orientation of the frame.

(4)

Firstโ€ฆ a quick review

Nearly everything we learned about position and orientation in the

plane can be easily generalized to position and orientation in 3D.

Weโ€™ll start with a quick review of the 2D case, then generalize to 3D,

and show the corresponding mathematical formulations.

(5)

Specifying Orientation in the Plane

๐œฝ

๐œฝ

๐‘ฅ0 ๐‘ฆ0 ๐‘ฅ1 ๐‘ฆ1 sin ๐œƒ cos ๐œƒ

Given two coordinate frames with a common origin, how should we describe the orientation of Frame 1 w.r.t. Frame 0?

โžข Specify the directions of ๐‘ฅ1 and ๐‘ฆ1 with respect to Frame 0 by projecting onto ๐‘ฅ0 and ๐‘ฆ0.

Notation: ๐‘ฅ10 denotes the x-axis of Frame 1, specified w.r.t Frame 0.

๐‘ฆ

10

=

๐‘ฆ

๐‘ฆ

1

โ‹… ๐‘ฅ

0 1

โ‹… ๐‘ฆ

0

=

โˆ’sin ๐œƒ

cos ๐œƒ

We obtain ๐‘ฆ10 in the same way.

๐‘ฅ

10

=

๐‘ฅ

๐‘ฅ

1

โ‹… ๐‘ฅ

0 1

โ‹… ๐‘ฆ

0

=

cos ๐œƒ

sin ๐œƒ

(6)

Rotation Matrices (rotation in the plane)

We combine these two vectors to obtain a rotation matrix: ๐‘…10 = cos ๐œƒ sin ๐œƒ

โˆ’sin ๐œƒ cos ๐œƒ

All rotation matrices have certain properties: 1. The two columns are each unit vectors.

2. The two columns are orthogonal, e.g., ๐‘1 โ‹… ๐‘2 = 0.

3. det ๐‘… = +1

โžข The first two properties imply that the matrix ๐‘… is orthogonal.

โžข The third property implies that the matrix is special! (After all, there are plenty of orthogonal matrices whose determinant is -1, not at all special.)

The collection of 2 ร— 2 rotation matrices is called the Special Orthogonal Group of order 2, or, more commonly ๐‘บ๐‘ถ(๐Ÿ).

This concept generalizes to ๐‘บ๐‘ถ ๐’ for ๐‘› ร— ๐‘› rotation matrices.

(7)

Rotation Matrices (3D)

All of the properties of SO(2) apply as well to SO(3)! All rotation matrices have certain properties:

1. The two columns are each unit vectors.

2. The two columns are orthogonal, e.g., ๐‘1 โ‹… ๐‘2 = 0.

3. det ๐‘… = +1

โžข The first two properties imply that the matrix ๐‘… is orthogonal.

โžข The third property implies that the matrix is special! (After all, there are plenty of orthogonal matrices whose determinant is -1, not at all special.)

The collection of 3 ร— 3 rotation matrices is called the Special Orthogonal Group of order 3, or, more commonly ๐‘บ๐‘ถ(๐Ÿ‘).

(8)

Rotation Matrices for 3D rotations

๐‘…

10

= ๐‘ฅ

1

โ‹… ๐น

0

๐‘ฆ

1

โ‹… ๐น

0

๐‘ง

1

โ‹… ๐น

0

=

๐‘ฅ

1

โ‹… ๐‘ฅ

0

๐‘ฆ

1

โ‹… ๐‘ฅ

0

๐‘ง

1

โ‹… ๐‘ฅ

0

๐‘ฅ

1

โ‹… ๐‘ฆ

0

๐‘ฆ

1

โ‹… ๐‘ฆ

0

๐‘ง

1

โ‹… ๐‘ฆ

0

๐‘ฅ

1

โ‹… ๐‘ง

0

๐‘ฆ

1

โ‹… ๐‘ง

0

๐‘ง

1

โ‹… ๐‘ง

0

To build a rotation matrix, say ๐‘…10: project the axes of Frame 1 onto Frame 0. Each column of ๐‘…10 corresponds to the projection of one axis of Frame 1 onto Frame 0.

(9)

๐‘…

10

= ๐‘ฅ

1

โ‹… ๐น

0

๐‘ฆ

1

โ‹… ๐น

0

๐‘ง

1

โ‹… ๐น

0

=

๐‘ฅ

1

โ‹… ๐‘ฅ

0

๐‘ฆ

1

โ‹… ๐‘ฅ

0

๐‘ง

1

โ‹… ๐‘ฅ

0

๐‘ฅ

1

โ‹… ๐‘ฆ

0

๐‘ฆ

1

โ‹… ๐‘ฆ

0

๐‘ง

1

โ‹… ๐‘ฆ

0

๐‘ฅ

1

โ‹… ๐‘ง

0

๐‘ฆ

1

โ‹… ๐‘ง

0

๐‘ง

1

โ‹… ๐‘ง

0

Rotation Matrices for 3D rotations

Project the x-axis of Frame 1 onto the axes of Frame 0

To build a rotation matrix, say ๐‘…10: project the axes of Frame 1 onto Frame 0. Each column of ๐‘…10 corresponds to the projection of one axis of Frame 1 onto Frame 0.

(10)

Rotation Matrices for 3D rotations

๐‘…

10

= ๐‘ฅ

1

โ‹… ๐น

0

๐‘ฆ

1

โ‹… ๐น

0

๐‘ง

1

โ‹… ๐น

0

=

๐‘ฅ

1

โ‹… ๐‘ฅ

0

๐‘ฆ

1

โ‹… ๐‘ฅ

0

๐‘ง

1

โ‹… ๐‘ฅ

0

๐‘ฅ

1

โ‹… ๐‘ฆ

0

๐‘ฆ

1

โ‹… ๐‘ฆ

0

๐‘ง

1

โ‹… ๐‘ฆ

0

๐‘ฅ

1

โ‹… ๐‘ง

0

๐‘ฆ

1

โ‹… ๐‘ง

0

๐‘ง

1

โ‹… ๐‘ง

0

Project the y-axis of Frame 1 onto the axes of Frame 0

To build a rotation matrix, say ๐‘…10: project the axes of Frame 1 onto Frame 0. Each column of ๐‘…10 corresponds to the projection of one axis of Frame 1 onto Frame 0.

(11)

Rotation Matrices for 3D rotations

๐‘…

10

= ๐‘ฅ

1

โ‹… ๐น

0

๐‘ฆ

1

โ‹… ๐น

0

๐‘ง

1

โ‹… ๐น

0

=

๐‘ฅ

1

โ‹… ๐‘ฅ

0

๐‘ฆ

1

โ‹… ๐‘ฅ

0

๐‘ง

1

โ‹… ๐‘ฅ

0

๐‘ฅ

1

โ‹… ๐‘ฆ

0

๐‘ฆ

1

โ‹… ๐‘ฆ

0

๐‘ง

1

โ‹… ๐‘ฆ

0

๐‘ฅ

1

โ‹… ๐‘ง

0

๐‘ฆ

1

โ‹… ๐‘ง

0

๐‘ง

1

โ‹… ๐‘ง

0

Project the z-axis of Frame 1 onto the axes of Frame 0

To build a rotation matrix, say ๐‘…10: project the axes of Frame 1 onto Frame 0. Each column of ๐‘…10 corresponds to the projection of one axis of Frame 1 onto Frame 0.

(12)

Rotation Matrices for 3D rotations

๐‘…

10

= ๐‘ฅ

1

โ‹… ๐น

0

๐‘ฆ

1

โ‹… ๐น

0

๐‘ง

1

โ‹… ๐น

0

=

๐‘ฅ

1

โ‹… ๐‘ฅ

0

๐‘ฆ

1

โ‹… ๐‘ฅ

0

๐‘ง

1

โ‹… ๐‘ฅ

0

๐‘ฅ

1

โ‹… ๐‘ฆ

0

๐‘ฆ

1

โ‹… ๐‘ฆ

0

๐‘ง

1

โ‹… ๐‘ฆ

0

๐‘ฅ

1

โ‹… ๐‘ง

0

๐‘ฆ

1

โ‹… ๐‘ง

0

๐‘ง

1

โ‹… ๐‘ง

0

Project the x-axis of Frame 1 onto the axes of Frame 0

To build a rotation matrix, say ๐‘…10: project the axes of Frame 1 onto Frame 0. Each column of ๐‘…10 corresponds to the projection of one axis of Frame 1 onto Frame 0.

Project the x-axis of Frame 1 onto the axes of Frame 0

Project the x-axis of Frame 1 onto the axes of Frame 0

This process is exactly the same as the process for building rotation matrices in SO(2), even though it can be more difficult to visualize in 3D for rotation matrices in SO(3).

(13)

The simplest example: rotation about the z axis

๐œฝ

๐œฝ

๐‘ฅ0 ๐‘ฆ0 ๐‘ฅ1 ๐‘ฆ1 ๐‘ง0 ๐‘ง1

Recall: for rotation in the plane, we built a rotation matrix as a function of ๐œƒ, the angle between ๐‘ฅ1 and ๐‘ฅ0 (and also between ๐‘ฆ1 and ๐‘ฆ0):

โžข ๐‘…10 = cos ๐œƒ sin ๐œƒ

โˆ’sin ๐œƒ

cos ๐œƒ FOR ROTATION IN THE PLANE

This is easily extended to the case of rotation in 3D about the z-axis, since all of the interesting action is in the x-y plane (the two z-axes are the same)!

In fact, youโ€™ll see that the 2D rotation matrix shows up in the 3D rotation matrix:

โžข ๐‘…10 = cos ๐œƒsin ๐œƒ โˆ’ sin ๐œƒcos ๐œƒ 00

0 0 1

FOR ROTATION IN 3D

Projecting ๐‘ง1 onto Frame 0 involves three dot products:

๐‘ง1 โ‹… ๐‘ฅ0 = 0 ๐‘ง1 โ‹… ๐‘ฆ0 = 0 ๐‘ง1 โ‹… ๐‘ง0 = 1

(14)

A bunch of examples:

๐‘ฅ0 ๐‘ฆ0 ๐‘ง0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ฅ3 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ3 ๐‘ง1 ๐‘ง2 ๐‘ง3

A rectangular solid: all angles are multiples of ๐œ‹/2.

๐‘…๐‘—๐‘– = ๐‘ฅ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ง๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ง๐‘– ๐‘ง๐‘— โ‹… ๐‘ง๐‘–

๐‘…

10

=

โˆ’1 0 0

0 0 1

0 1 0

๐‘…

01

=

โˆ’1 0 0

0 0 1

0 1 0

(15)

A bunch of examples:

๐‘ฅ0 ๐‘ฆ0 ๐‘ง0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ฅ3 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ3 ๐‘ง1 ๐‘ง2 ๐‘ง3

A rectangular solid: all angles are multiples of ๐œ‹/2.

๐‘…๐‘—๐‘– = ๐‘ฅ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ง๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ง๐‘– ๐‘ง๐‘— โ‹… ๐‘ง๐‘– ๐‘…10 = โˆ’1 0 0 0 0 1 0 1 0 ๐‘…01 = โˆ’1 0 0 0 0 1 0 1 0 ๐‘…10๐‘…01= โˆ’1 0 0 0 0 1 0 1 0 โˆ’1 0 0 0 0 1 0 1 0 = 1 0 0 0 1 0 0 0 1

๐‘…

10 โˆ’1

=

๐‘…

01

= ๐‘…

10 ๐‘‡

(16)

A bunch of examples:

๐‘ฅ0 ๐‘ฆ0 ๐‘ง0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ฅ3 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ3 ๐‘ง1 ๐‘ง2 ๐‘ง3

A rectangular solid: all angles are multiples of ๐œ‹/2.

๐‘…๐‘—๐‘– = ๐‘ฅ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ง๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ง๐‘– ๐‘ง๐‘— โ‹… ๐‘ง๐‘–

๐‘…

20

=

1

0

0

0

โˆ’1 0

0

0 โˆ’1

๐‘…

21

=

โˆ’1

0

0

0

0

โˆ’1

0

โˆ’1

0

(17)

A bunch of examples:

๐‘ฅ0 ๐‘ฆ0 ๐‘ง0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ฅ3 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ3 ๐‘ง1 ๐‘ง2 ๐‘ง3

A rectangular solid: all angles are multiples of ๐œ‹/2.

๐‘…๐‘—๐‘– = ๐‘ฅ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ง๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ง๐‘– ๐‘ง๐‘— โ‹… ๐‘ง๐‘–

๐‘…

30

=

0

โˆ’1

0

โˆ’1

0

0

0

0

โˆ’1

(18)

Letโ€™s extend this to 3D rotational coordinate

transformations.

(19)

Coordinate Transformations (rotation only)

๐‘ฅ0 ๐‘ฆ0

๐‘ฅ1 ๐‘ฆ1

Suppose a point ๐‘ƒ is rigidly attached to coordinate Frame 1, with coordinates given by ๐‘ƒ1 = ๐‘๐‘๐‘ฅ

๐‘ฆ .

๐‘๐‘ฅ ๐‘๐‘ฆ

๐‘ƒ

We can express the location of the point ๐‘ƒ in terms of its coordinates ๐‘ƒ = ๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1

To obtain the coordinates of ๐‘ƒ w.r.t. Frame 0, we project ๐‘ƒ onto the ๐‘ฅ0 and ๐‘ฆ0 axes:

(20)

Coordinate Transformations (rotation only)

๐‘ฅ0 ๐‘ฆ0

๐‘ฅ1 ๐‘ฆ1

Suppose a point ๐‘ƒ is rigidly attached to coordinate Frame 1, with coordinates given by ๐‘ƒ1 = ๐‘๐‘๐‘ฅ

๐‘ฆ .

๐‘๐‘ฅ ๐‘๐‘ฆ

๐‘ƒ

We can express the location of the point ๐‘ƒ in terms of its coordinates ๐‘ƒ = ๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1

To obtain the coordinates of ๐‘ƒ w.r.t. Frame 0, we project ๐‘ƒ onto the ๐‘ฅ0 and ๐‘ฆ0 axes: ๐‘ƒ0 = ๐‘ƒ โ‹… ๐‘ฅ0 ๐‘ƒ โ‹… ๐‘ฆ0 = (๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1) โ‹… ๐‘ฅ0 (๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1) โ‹… ๐‘ฆ0 = ๐‘๐‘ฅ(๐‘ฅ1โ‹… ๐‘ฅ0) + ๐‘๐‘ฆ(๐‘ฆ1 โ‹… ๐‘ฅ0) ๐‘๐‘ฅ(๐‘ฅ1โ‹… ๐‘ฆ0) + ๐‘๐‘ฆ(๐‘ฆ1 โ‹… ๐‘ฆ0) = ๐‘ฅ๐‘ฅ1 โ‹… ๐‘ฅ0 ๐‘ฆ1 โ‹… ๐‘ฅ0 1 โ‹… ๐‘ฆ0 ๐‘ฆ1 โ‹… ๐‘ฆ0 ๐‘๐‘ฅ ๐‘๐‘ฆ = ๐ŸŽ๐‘น๐Ÿ ๐Ÿ๐‘ท

(21)

Coordinate Transformations (rotation only)

๐‘ฅ0 ๐‘ฆ0

๐‘ฅ1 ๐‘ฆ1

Suppose a point ๐‘ƒ is rigidly attached to coordinate Frame 1, with coordinates given by 1๐‘ƒ = ๐‘๐‘๐‘ฅ

๐‘ฆ .

๐‘๐‘ฅ ๐‘๐‘ฆ

๐‘ƒ

We can express the location of the point ๐‘ƒ in terms of its coordinates ๐‘ƒ = ๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1

To obtain the coordinates of ๐‘ƒ w.r.t. Frame 0, we project ๐‘ƒ onto the ๐‘ฅ0 and ๐‘ฆ0 axes: ๐‘ƒ0 = ๐‘ƒ โ‹… ๐‘ฅ0 ๐‘ƒ โ‹… ๐‘ฆ0 = (๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1) โ‹… ๐‘ฅ0 (๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1) โ‹… ๐‘ฆ0 = ๐‘๐‘ฅ(๐‘ฅ1โ‹… ๐‘ฅ0) + ๐‘๐‘ฆ(๐‘ฆ1 โ‹… ๐‘ฅ0) ๐‘๐‘ฅ(๐‘ฅ1โ‹… ๐‘ฆ0) + ๐‘๐‘ฆ(๐‘ฆ1 โ‹… ๐‘ฆ0) = ๐‘ฅ๐‘ฅ1 โ‹… ๐‘ฅ0 ๐‘ฆ1 โ‹… ๐‘ฅ0 1 โ‹… ๐‘ฆ0 ๐‘ฆ1 โ‹… ๐‘ฆ0 ๐‘๐‘ฅ ๐‘๐‘ฆ = ๐ŸŽ๐‘น๐Ÿ ๐Ÿ๐‘ท

(22)

Coordinate Transformations (rotation only)

๐‘ฅ0 ๐‘ฆ0

๐‘ฅ1 ๐‘ฆ1

Suppose a point ๐‘ƒ is rigidly attached to coordinate Frame 1, with coordinates given by 1๐‘ƒ = ๐‘๐‘๐‘ฅ

๐‘ฆ .

๐‘๐‘ฅ ๐‘๐‘ฆ

๐‘ƒ

We can express the location of the point ๐‘ƒ in terms of its coordinates ๐‘ƒ = ๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1

To obtain the coordinates of ๐‘ƒ w.r.t. Frame 0, we project ๐‘ƒ onto the ๐‘ฅ0 and ๐‘ฆ0 axes: ๐‘ƒ0 = ๐‘ƒ โ‹… ๐‘ฅ0 ๐‘ƒ โ‹… ๐‘ฆ0 = (๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1) โ‹… ๐‘ฅ0 (๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1) โ‹… ๐‘ฆ0 = ๐‘๐‘ฅ(๐‘ฅ1โ‹… ๐‘ฅ0) + ๐‘๐‘ฆ(๐‘ฆ1 โ‹… ๐‘ฅ0) ๐‘๐‘ฅ(๐‘ฅ1โ‹… ๐‘ฆ0) + ๐‘๐‘ฆ(๐‘ฆ1 โ‹… ๐‘ฆ0) = ๐‘ฅ๐‘ฅ1 โ‹… ๐‘ฅ0 ๐‘ฆ1 โ‹… ๐‘ฅ0 1 โ‹… ๐‘ฆ0 ๐‘ฆ1 โ‹… ๐‘ฆ0 ๐‘๐‘ฅ ๐‘๐‘ฆ = ๐ŸŽ๐‘น๐Ÿ ๐Ÿ๐‘ท

(23)

To obtain the coordinates of ๐‘ƒ w.r.t. Frame 0, we project ๐‘ƒ onto the ๐‘ฅ0 and ๐‘ฆ0 axes: ๐‘ƒ0 = ๐‘ƒ โ‹… ๐‘ฅ0 ๐‘ƒ โ‹… ๐‘ฆ0 = (๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1) โ‹… ๐‘ฅ0 (๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1) โ‹… ๐‘ฆ0 = ๐‘๐‘ฅ(๐‘ฅ1โ‹… ๐‘ฅ0) + ๐‘๐‘ฆ(๐‘ฆ1 โ‹… ๐‘ฅ0) ๐‘๐‘ฅ(๐‘ฅ1โ‹… ๐‘ฆ0) + ๐‘๐‘ฆ(๐‘ฆ1 โ‹… ๐‘ฆ0) = ๐‘ฅ๐‘ฅ1 โ‹… ๐‘ฅ0 ๐‘ฆ1 โ‹… ๐‘ฅ0 1 โ‹… ๐‘ฆ0 ๐‘ฆ1 โ‹… ๐‘ฆ0 ๐‘๐‘ฅ ๐‘๐‘ฆ = ๐‘น๐Ÿ๐ŸŽ ๐‘ท๐Ÿ

Coordinate Transformations (rotation only)

๐‘ฅ0 ๐‘ฆ0

๐‘ฅ1 ๐‘ฆ1

Suppose a point ๐‘ƒ is rigidly attached to coordinate Frame 1, with coordinates given by 1๐‘ƒ = ๐‘๐‘๐‘ฅ

๐‘ฆ .

๐‘๐‘ฅ ๐‘๐‘ฆ

๐‘ƒ

We can express the location of the point ๐‘ƒ in terms of its coordinates ๐‘ƒ = ๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1

(24)

๐‘ฅ1 ๐‘ฆ1

Coordinate Transformations (rotation only)

๐‘ฅ0 ๐‘ฆ0

Suppose a point ๐‘ƒ is rigidly attached to coordinate Frame 1, with coordinates given by ๐‘ƒ1 = ๐‘๐‘๐‘ฅ

๐‘ฆ .

๐‘๐‘ฅ ๐‘๐‘ฆ

๐‘ƒ

We can express the location of the point ๐‘ƒ in terms of its coordinates ๐‘ƒ = ๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1

To obtain the coordinates of ๐‘ƒ w.r.t. Frame 0, we project ๐‘ƒ onto the ๐‘ฅ0 and ๐‘ฆ0 axes: ๐‘0 = ๐‘ƒ โ‹… ๐‘ฅ0 ๐‘ƒ โ‹… ๐‘ฆ0 = (๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1) โ‹… ๐‘ฅ0 (๐‘๐‘ฅ๐‘ฅ1 + ๐‘๐‘ฆ๐‘ฆ1) โ‹… ๐‘ฆ0 = ๐‘๐‘ฅ(๐‘ฅ1โ‹… ๐‘ฅ0) + ๐‘๐‘ฆ(๐‘ฆ1 โ‹… ๐‘ฅ0) ๐‘๐‘ฅ(๐‘ฅ1โ‹… ๐‘ฆ0) + ๐‘๐‘ฆ(๐‘ฆ1 โ‹… ๐‘ฆ0) = ๐‘ฅ๐‘ฅ1 โ‹… ๐‘ฅ0 ๐‘ฆ1 โ‹… ๐‘ฅ0 1 โ‹… ๐‘ฆ0 ๐‘ฆ1 โ‹… ๐‘ฆ0 ๐‘๐‘ฅ ๐‘๐‘ฆ = ๐‘น๐Ÿ๐ŸŽ ๐‘ท๐Ÿ

๐‘ท

๐ŸŽ

= ๐‘น

๐Ÿ

๐ŸŽ

๐‘ท

๐Ÿ

(25)

The simplest example: rotation about the z axis

๐œฝ

๐œฝ

๐‘ฅ0 ๐‘ฆ0 ๐‘ฅ1 ๐‘ฆ1 ๐‘ง0 ๐‘ง1 As we saw above: ๐‘…10 = cos ๐œƒ โˆ’ sin ๐œƒ 0 sin ๐œƒ cos ๐œƒ 0 0 0 1

The equation for rotational coordinate transformations generalizes immediately to the 3D case!

๐‘ท๐ŸŽ = ๐‘น๐Ÿ๐ŸŽ ๐‘ท๐Ÿ = cos ๐œƒ โˆ’ sin ๐œƒ 0 sin ๐œƒ cos ๐œƒ 0 0 0 1 ๐‘๐‘ฅ ๐‘๐‘ฆ 0 ๐‘๐‘ฅ ๐‘๐‘ฆ ๐‘ƒ

(26)

Composition of Rotations

๐‘ฅ0 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ƒ ๐‘ƒ1 = ๐‘…21๐‘ƒ2 ๐‘ƒ0 = ๐‘…10๐‘ƒ1

From our previous results, we know:

๐‘ƒ0 = ๐‘…10๐‘…21๐‘ƒ2 ๐‘ƒ0 = ๐‘…20๐‘ƒ2

๐‘…20 = ๐‘…10๐‘…21

But we also know:

๐‘…10

๐‘…21

๐‘…20

This is the composition law for rotation transformations.

For now, only consider the rotation, not the translation!

This is an โ€œexplodedโ€ view of three coordinate frames that share the same origin.

๐‘ง0

๐‘ง1

(27)

A bunch of examples:

๐‘ฅ0 ๐‘ฆ0 ๐‘ง0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ฅ3 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ3 ๐‘ง1 ๐‘ง2 ๐‘ง3

A rectangular solid: all angles are multiples of ๐œ‹/2.

๐‘…๐‘—๐‘– = ๐‘ฅ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ง๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ง๐‘– ๐‘ง๐‘— โ‹… ๐‘ง๐‘–

๐‘…

10

=

โˆ’1

0 0

0

0 1

0

1 0

๐‘…

21

=

โˆ’1

0

0

0

0

โˆ’1

0

โˆ’1

0

๐‘…

20

=

โˆ’1

0 0

0

0 1

0

1 0

โˆ’1

0

0

0

0

โˆ’1

0

โˆ’1

0

=

1

0

0

0

โˆ’1

0

0

0

โˆ’1

This agrees with our earlier result!

(28)

A bunch of examples:

๐‘ฅ0 ๐‘ฆ0 ๐‘ง0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ฅ3 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ3 ๐‘ง1 ๐‘ง2 ๐‘ง3

A rectangular solid: all angles are multiples of ๐œ‹/2.

๐‘…๐‘—๐‘– =

๐‘ฅ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฅ๐‘–

๐‘ฅ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฆ๐‘–

๐‘ฅ๐‘— โ‹… ๐‘ง๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ง๐‘– ๐‘ง๐‘— โ‹… ๐‘ง๐‘–

In preceding examples, we have computed ๐‘…10, ๐‘…20, ๐‘…30. Can we compute ๐‘…32? ๐‘… 30 = ๐‘…20๐‘…32 ๐‘…20 โˆ’1 ๐‘…30 = ๐‘…32 ๐‘…20 ๐‘‡ ๐‘…30 = ๐‘…32 ๐‘…02๐‘…30 = ๐‘…32 ๐‘…32 = 1 0 0 0 โˆ’1 0 0 0 โˆ’1 0 โˆ’1 0 โˆ’1 0 0 0 0 โˆ’1 = 0 1 0 โˆ’1 0 0 0 0 1

(29)
(30)

Specifying Pose in the Plane

๐‘ฅ0

Suppose we now translate Frame 1 (no new rotatation). What are the coordinates of ๐‘ƒ w.r.t. Frame 0?

Since we merely translated ๐‘ƒ by a fixed vector ๐‘‘, simply add the offset to our previous result! ๐‘‘๐‘ฅ

๐’…

๐ŸŽ

=

๐’…

๐’…

๐’™ ๐’š ๐‘ฆ0 ๐‘ƒ ๐‘‘ ๐‘‘๐‘ฆ ๐‘ฅ1 ๐‘ฆ1 ๐‘‘

๐‘ท

๐ŸŽ

= ๐‘น

๐Ÿ

๐ŸŽ

๐‘ท

๐Ÿ

+ ๐’…

๐ŸŽ

(31)

Homogeneous Transformations

๐‘ท

๐ŸŽ

1

=

๐‘น

๐Ÿ๐ŸŽ

๐‘ท

๐Ÿ

+ ๐’…

๐ŸŽ

1

=

๐‘น

๐Ÿ๐ŸŽ

๐’…

๐ŸŽ

0

๐‘›

1

๐‘ท

๐Ÿ

1

We can simplify the equation for coordinate transformations by augmenting the vectors and matrices with an extra row:

The set of matrices of the form ๐‘… ๐‘‘

0๐‘› 1 , where ๐‘… โˆˆ ๐‘†๐‘‚(๐‘›) and ๐‘‘ โˆˆ โ„๐‘› is called the Special Euclidean Group of order ๐’, or ๐‘†๐ธ(๐‘›).

in which 0๐‘› = 0 โ‹ฏ 0

This is just our eqn from the previous page

(32)

A bunch of examples:

๐‘ฅ0 ๐‘ฆ0 ๐‘ง0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ฅ3 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ3 ๐‘ง1 ๐‘ง2 ๐‘ง3

A rectangular solid: all angles are multiples of ๐œ‹/2.

๐‘…๐‘—๐‘– = ๐‘ฅ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฅ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ง๐‘— โ‹… ๐‘ฆ๐‘– ๐‘ฅ๐‘— โ‹… ๐‘ง๐‘– ๐‘ฆ๐‘— โ‹… ๐‘ง๐‘– ๐‘ง๐‘— โ‹… ๐‘ง๐‘– 10 5

4 Now letโ€™s look at both the relative

(33)

A bunch of examples:

๐‘ฅ0 ๐‘ฆ0 ๐‘ง0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ฅ3 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ3 ๐‘ง1 ๐‘ง2 ๐‘ง3

A rectangular solid: all angles are multiples of ๐œ‹/2.

๐‘‡

10

=

โˆ’1

0

0

0

0

0

1

0

0

1

0

0

โˆ’5

0

4

1

10 5 4 ๐‘…10 = โˆ’1 0 0 0 0 1 0 1 0

(34)

A bunch of examples:

๐‘ฅ0 ๐‘ฆ0 ๐‘ง0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ฅ3 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ3 ๐‘ง1 ๐‘ง2 ๐‘ง3

A rectangular solid: all angles are multiples of ๐œ‹/2.

๐‘‡21 = โˆ’1 0 0 0 0 0 โˆ’1 0 0 โˆ’1 0 0 0 0 10 1 10 5 4 ๐‘…21 = โˆ’1 0 0 0 0 โˆ’1 0 โˆ’1 0

(35)

Composition of Transformations

๐‘ฅ0 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ƒ ๐‘ƒ1 = ๐‘‡21๐‘ƒ2 ๐‘ƒ0 = ๐‘‡10๐‘ƒ1

From our previous results, we know:

๐‘ƒ0 = ๐‘‡10๐‘‡21๐‘ƒ2 ๐‘ƒ0 = ๐‘‡20๐‘ƒ2

๐‘‡20 = ๐‘‡10๐‘‡21

But we also know:

๐‘‡10

๐‘‡21

๐‘‡20

This is the composition law for homogeneous transformations.

Now, consider the rotation

and the translation!

๐‘ง0

๐‘ง1

(36)

A bunch of examples:

๐‘ฅ0 ๐‘ฆ0 ๐‘ง0 ๐‘ฅ1 ๐‘ฅ2 ๐‘ฅ3 ๐‘ฆ1 ๐‘ฆ2 ๐‘ฆ3 ๐‘ง1 ๐‘ง2 ๐‘ง3

A rectangular solid: all angles are multiples of ๐œ‹/2.

๐‘‡21 = โˆ’1 0 0 0 0 0 โˆ’1 0 0 โˆ’1 0 0 0 0 10 1 10 5 4 ๐‘‡10 = โˆ’1 0 0 0 0 0 1 0 0 1 0 0 โˆ’5 0 4 1 ๐‘‡20 = โˆ’1 0 0 0 0 0 1 0 0 1 0 0 โˆ’5 0 4 1 โˆ’1 0 0 0 0 0 โˆ’1 0 0 โˆ’1 0 0 0 0 10 1 = 1 0 0 0 0 โˆ’1 0 0 0 0 โˆ’1 0 โˆ’5 10 4 1

(37)

Inverse of a Homogeneous Transformation

What is the relationship between ๐‘‡๐‘—๐‘– and ๐‘‡๐‘–๐‘—?

In general, ๐‘‡

๐‘˜๐‘—

= ๐‘‡

๐‘—๐‘˜ โˆ’1

and

0

๐‘น

๐’…

๐‘›

1

โˆ’1

=

๐‘น

๐‘ป

โˆ’๐‘น

๐‘ป

๐’…

0

๐‘›

1

This is easy to verify:

๐‘น ๐’… 0๐‘› 1 ๐‘น๐‘ป โˆ’๐‘น๐‘ป๐’… 0๐‘› 1 = ๐‘น๐‘น๐‘ป โˆ’๐‘น๐‘น๐‘ป๐’… + ๐’… 0๐‘› 1 = ๐‘ฐ๐’ร—๐’ ๐ŸŽ๐’ 0๐‘› 1 = ๐ผ(๐‘›+1)ร—(๐‘›+1)

(38)

Next Lecture: Visual Slamโ€ฆ

โ€ฆhow to use all of these 3D coordinate transformations for the case of

a camera (e.g., mounted on a drone) moving through the world,

References

Related documents

Newby indicated that he had no problem with the Departmentโ€™s proposed language change.. Oโ€™Malley indicated that the language reflects the Departmentโ€™s policy for a number

The five factors that to measure employeesโ€™ retention intention were compensation, work-life balance, organizational commitment, career opportunity and supervisor

We discussed many examples of this interaction, for different types of institutions (such as political and legal institutions, regulation, and the welfare state) and

Cincturing in comparison with PCPA in this trial tends to increase the fresh and dried fruit yields of Zante currant, suggesting that the increase in currant production in the

If breastfeeding by itself doesnโ€™t effectively remove the thickened inspissated milk, then manual expression of the milk, or the use of an efficient breast pump after feeds will

MESH BACK: Half fi nger, breathable back, gusseted fi ngers for comfort, adjustable wrist with hook & loop closure ST8206 - Amara fabric palm ST8610 - Black leather

The Air Force contract specialistโ€™s 27 February 2001 facsimile to TCS sent a โ€œnew Statement of Workโ€ for the 12 February 2001 to 30 September 2003 period of performance, which