40
ECE447: Robotics Engineering Lecture 3: Rigid Motions and Homogeneous Transformations (Part 1) Dr. Haitham El-Hussieny Electronics and Communications Engineering Faculty of Engineering (Shoubra) Benha University Spring 2019 Dr. Haitham El-Hussieny ECE447: Robotics Engineering 1 / 22

ECE447: Robotics Engineering

  • Upload
    others

  • View
    37

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ECE447: Robotics Engineering

ECE447: Robotics EngineeringLecture 3: Rigid Motions and Homogeneous Transformations (Part 1)

Dr. Haitham El-Hussieny

Electronics and Communications EngineeringFaculty of Engineering (Shoubra)

Benha University

Spring 2019

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 1 / 22

Page 2: ECE447: Robotics Engineering

Lecture Outline:

1 Introduction.

2 Representation of Translation.

3 Representation of Rotations.

4 Representation of Rotations in 3D.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 2 / 22

Page 3: ECE447: Robotics Engineering

Introduction.

Table of Contents

1 Introduction.

2 Representation of Translation.

3 Representation of Rotations.

4 Representation of Rotations in 3D.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 3 / 22

Page 4: ECE447: Robotics Engineering

Introduction.

Introduction:

A robot manipulator is schematically represented asa kinematic chain.

It is composed by a series of rigid bodies, the links,connected by joints.

The resulting end-effector motion is obtained bycomposition of the elementary motions of eachlink with respect to the previous one.

To manipulate an object in space, it is necessary todescribe the end-effector position and orientation.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 4 / 22

Page 5: ECE447: Robotics Engineering

Introduction.

Introduction:

Kinematics is the study of how the robot moves not why it moves (Dynamics).

In robotic manipulation we are concerned with two common kinematic problems:

Forward Kinematics Inverse Kinematics

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 5 / 22

Page 6: ECE447: Robotics Engineering

Introduction.

Introduction:

Kinematics is the study of how the robot moves not why it moves (Dynamics).

In robotic manipulation we are concerned with two common kinematic problems:

Forward Kinematics

Inverse Kinematics

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 5 / 22

Page 7: ECE447: Robotics Engineering

Introduction.

Introduction:

Kinematics is the study of how the robot moves not why it moves (Dynamics).

In robotic manipulation we are concerned with two common kinematic problems:

Forward Kinematics Inverse Kinematics

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 5 / 22

Page 8: ECE447: Robotics Engineering

Introduction.

Introduction:

Forward Kinematics

Given: Joint Variables q (θ or d)Required: Position and orientation ofend-effector, p.

p = f(q1, q2, . . . , qn) = f(q)

EASY!

Inverse Kinematics

Given: Position and orientation ofend-effector, p.Required: Joint Variables q (θ or d) to get p

q = f(p)

DIFFICULT (May be infinite solutions exist)!

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 6 / 22

Page 9: ECE447: Robotics Engineering

Introduction.

Introduction:

Forward Kinematics

Given: Joint Variables q (θ or d)Required: Position and orientation ofend-effector, p.

p = f(q1, q2, . . . , qn) = f(q)

EASY!

Inverse Kinematics

Given: Position and orientation ofend-effector, p.Required: Joint Variables q (θ or d) to get p

q = f(p)

DIFFICULT (May be infinite solutions exist)!

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 6 / 22

Page 10: ECE447: Robotics Engineering

Introduction.

Introduction:

Solving the manipulator kinematics requires the assignment of differentcoordinate frames on each joint and the end-effector.

The goal is to find the transformation between the end-effector andthe base frames.

In robotic manipulators, two basic transformations are used:Translation and Rotation.

T 02 = T 0

1 ∗ T 12

{0}

{1}

{2}

{0}

{1}

{2}

T01

T12

T02

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 7 / 22

Page 11: ECE447: Robotics Engineering

Introduction.

Introduction:

Solving the manipulator kinematics requires the assignment of differentcoordinate frames on each joint and the end-effector.

The goal is to find the transformation between the end-effector andthe base frames.

In robotic manipulators, two basic transformations are used:Translation and Rotation.

T 02 = T 0

1 ∗ T 12

{0}

{1}

{2}

{0}

{1}

{2}

T01

T12

T02

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 7 / 22

Page 12: ECE447: Robotics Engineering

Introduction.

Introduction:

Solving the manipulator kinematics requires the assignment of differentcoordinate frames on each joint and the end-effector.

The goal is to find the transformation between the end-effector andthe base frames.

In robotic manipulators, two basic transformations are used:Translation and Rotation.

T 02 = T 0

1 ∗ T 12

{0}

{1}

{2}

{0}

{1}

{2}

T01

T12

T02

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 7 / 22

Page 13: ECE447: Robotics Engineering

Representation of Translation.

Table of Contents

1 Introduction.

2 Representation of Translation.

3 Representation of Rotations.

4 Representation of Rotations in 3D.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 8 / 22

Page 14: ECE447: Robotics Engineering

Representation of Translation.

Representation of Translation:

Coordinate Frame:

The position and orientation of anobject in space is referred to as its pose.

Any description of an object’s pose mustalways be made in relation to somecoordinate frames.

In robotics, it is often convenient to keeptrack of multiple coordinate frames.(Camera, robot, user, world, . . . etc.)

Coordinate Frame:

A set n of orthonormal basis vectors spanning Rn.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 9 / 22

Page 15: ECE447: Robotics Engineering

Representation of Translation.

Representation of Translation:

Coordinate Frame:

The position and orientation of anobject in space is referred to as its pose.

Any description of an object’s pose mustalways be made in relation to somecoordinate frames.

In robotics, it is often convenient to keeptrack of multiple coordinate frames.(Camera, robot, user, world, . . . etc.)

Coordinate Frame:

A set n of orthonormal basis vectors spanning Rn.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 9 / 22

Page 16: ECE447: Robotics Engineering

Representation of Translation.

Representation of Translation:

Coordinate Frame:

The position and orientation of anobject in space is referred to as its pose.

Any description of an object’s pose mustalways be made in relation to somecoordinate frames.

In robotics, it is often convenient to keeptrack of multiple coordinate frames.(Camera, robot, user, world, . . . etc.)

Coordinate Frame:

A set n of orthonormal basis vectors spanning Rn.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 9 / 22

Page 17: ECE447: Robotics Engineering

Representation of Translation.

Representation of Translation:

Representation of a Point:

A point corresponds a particular location in thespace. For example the point p.

A point has different representation (coordinates) indifferent frames.

Example (Point p):

w.r.t. frame {0}: p0 = v1 =

[65

]

w.r.t. frame {1}: p1 = v2 =

[−2.84.2

]Note: the frame of reference is written in rightsuperscript style. pk, o01

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 10 / 22

Page 18: ECE447: Robotics Engineering

Representation of Translation.

Representation of Translation:

Representation of a Point:

A point corresponds a particular location in thespace. For example the point p.

A point has different representation (coordinates) indifferent frames.

Example (Point p):

w.r.t. frame {0}: p0 = v1 =

[65

]

w.r.t. frame {1}: p1 = v2 =

[−2.84.2

]Note: the frame of reference is written in rightsuperscript style. pk, o01

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 10 / 22

Page 19: ECE447: Robotics Engineering

Representation of Translation.

Representation of Translation:

Representation of a Point:

A point corresponds a particular location in thespace. For example the point p.

A point has different representation (coordinates) indifferent frames.

Example (Point p):

w.r.t. frame {0}: p0 = v1 =

[65

]

w.r.t. frame {1}: p1 = v2 =

[−2.84.2

]Note: the frame of reference is written in rightsuperscript style. pk, o01

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 10 / 22

Page 20: ECE447: Robotics Engineering

Representation of Translation.

Representation of Translation:

Representation of a Point:

Since the origin of a frame is just a point,we can express the origin of one framewith respect to another.

Example:

o01 =

[105

]o1 represented in frame {0}

o10 =

[−10.63.5

]o0 represented in frame {1}

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 11 / 22

Page 21: ECE447: Robotics Engineering

Representation of Translation.

Representation of Translation:

Representation of a Point:

The point translation could be alsorepresented in 3-dimensional space.

Example:

o01 =

x01y01z01

o1 represented in frame {0}

o10 =

x10y10z10

o0 represented in frame {1}

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 12 / 22

Page 22: ECE447: Robotics Engineering

Representation of Rotations.

Table of Contents

1 Introduction.

2 Representation of Translation.

3 Representation of Rotations.

4 Representation of Rotations in 3D.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 13 / 22

Page 23: ECE447: Robotics Engineering

Representation of Rotations.

Representation of Rotations:Rotation in 2D:

Frame {1} is obtained by rotating frame{0} by an angle θ.

We need to find the relative orientationbetween these two frames.

We can specify the orientation by findingthe representation of coordinate vectors offrame {1} w.r.t frame {0}.

R01 =

[x01| y01

]x01 and y01 are the unit vector x1 and y1represented in frame {0}.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 14 / 22

Page 24: ECE447: Robotics Engineering

Representation of Rotations.

Representation of Rotations:Rotation in 2D:

Frame {1} is obtained by rotating frame{0} by an angle θ.

We need to find the relative orientationbetween these two frames.

We can specify the orientation by findingthe representation of coordinate vectors offrame {1} w.r.t frame {0}.

R01 =

[x01| y01

]x01 and y01 are the unit vector x1 and y1represented in frame {0}.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 14 / 22

Page 25: ECE447: Robotics Engineering

Representation of Rotations.

Representation of Rotations:Rotation in 2D:

Frame {1} is obtained by rotating frame{0} by an angle θ.

We need to find the relative orientationbetween these two frames.

We can specify the orientation by findingthe representation of coordinate vectors offrame {1} w.r.t frame {0}.

R01 =

[x01| y01

]x01 and y01 are the unit vector x1 and y1represented in frame {0}.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 14 / 22

Page 26: ECE447: Robotics Engineering

Representation of Rotations.

Representation of Rotations:Rotation in 2D:

R01 =

[x01| y01

]=

[x1.x0 y1.x0x1.y0 y1.y0

]Projecting the axes of frame {1} onto the axesof frame {0}:

x01 =

[cos(θ)sin(θ)

]y01 =

[− sin(θ)cos(θ)

]

R01 =

[cos(θ) − sin(θ)sin(θ) cos(θ)

]Rotation Matrix

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 15 / 22

Page 27: ECE447: Robotics Engineering

Representation of Rotations.

Representation of Rotations:Rotation in 2D:

R01 =

[x01| y01

]=

[x1.x0 y1.x0x1.y0 y1.y0

]Projecting the axes of frame {1} onto the axesof frame {0}:

x01 =

[cos(θ)sin(θ)

]y01 =

[− sin(θ)cos(θ)

]

R01 =

[cos(θ) − sin(θ)sin(θ) cos(θ)

]Rotation Matrix

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 15 / 22

Page 28: ECE447: Robotics Engineering

Representation of Rotations.

Representation of Rotations:Rotation in 2D:

R01 =

[x01| y01

]=

[x1.x0 y1.x0x1.y0 y1.y0

]Projecting the axes of frame {1} onto the axesof frame {0}:

x01 =

[cos(θ)sin(θ)

]y01 =

[− sin(θ)cos(θ)

]

R01 =

[cos(θ) − sin(θ)sin(θ) cos(θ)

]Rotation Matrix

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 15 / 22

Page 29: ECE447: Robotics Engineering

Representation of Rotations.

Representation of Rotations:Rotation in 2D:

Properties of Rotation Matrices:

1 det(R01) = cos2(θ) + sin2(θ) = 1.

2 Inverse Rotation:

R10 =

[x10| y10

]=

[x0.x1 y0.x1x0.y1 y0.y1

]

R10 =

[cos(θ) sin(θ)− sin(θ) cos(θ)

]= (R0

1)T

Projecting the axes of frame {0} onto theaxes of frame {1}.

R01 =

[cos(θ) − sin(θ)sin(θ) cos(θ)

]Dr. Haitham El-Hussieny ECE447: Robotics Engineering 16 / 22

Page 30: ECE447: Robotics Engineering

Representation of Rotations.

Representation of Rotations:Rotation in 2D:

Properties of Rotation Matrices:

1 det(R01) = cos2(θ) + sin2(θ) = 1.

2 Inverse Rotation:

R10 =

[x10| y10

]=

[x0.x1 y0.x1x0.y1 y0.y1

]

R10 =

[cos(θ) sin(θ)− sin(θ) cos(θ)

]= (R0

1)T

Projecting the axes of frame {0} onto theaxes of frame {1}.

R01 =

[cos(θ) − sin(θ)sin(θ) cos(θ)

]Dr. Haitham El-Hussieny ECE447: Robotics Engineering 16 / 22

Page 31: ECE447: Robotics Engineering

Representation of Rotations.

Representation of Rotations:Rotation in 2D:

Properties of Rotation Matrices:

1 det(R01) = cos2(θ) + sin2(θ) = 1.

2 Inverse Rotation:

R10 =

[x10| y10

]=

[x0.x1 y0.x1x0.y1 y0.y1

]

R10 =

[cos(θ) sin(θ)− sin(θ) cos(θ)

]= (R0

1)T

Projecting the axes of frame {0} onto theaxes of frame {1}.

R01 =

[cos(θ) − sin(θ)sin(θ) cos(θ)

]Dr. Haitham El-Hussieny ECE447: Robotics Engineering 16 / 22

Page 32: ECE447: Robotics Engineering

Representation of Rotations.

Representation of Rotations:Rotation in 2D:

Properties of Rotation Matrices:

3 Inverse of Rotation Matrix:

(R01)

−1 =

[cos(θ) − sin(θ)sin(θ) cos(θ)

]−1

= (R01)T = (R1

0)

4 R is Special Orthogonal matrix SO(n):

R RT = In R01 =

[cos(θ) − sin(θ)sin(θ) cos(θ)

]

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 17 / 22

Page 33: ECE447: Robotics Engineering

Representation of Rotations.

Representation of Rotations:Rotation in 2D:

Properties of Rotation Matrices:

3 Inverse of Rotation Matrix:

(R01)

−1 =

[cos(θ) − sin(θ)sin(θ) cos(θ)

]−1

= (R01)T = (R1

0)

4 R is Special Orthogonal matrix SO(n):

R RT = In R01 =

[cos(θ) − sin(θ)sin(θ) cos(θ)

]

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 17 / 22

Page 34: ECE447: Robotics Engineering

Representation of Rotations in 3D.

Table of Contents

1 Introduction.

2 Representation of Translation.

3 Representation of Rotations.

4 Representation of Rotations in 3D.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 18 / 22

Page 35: ECE447: Robotics Engineering

Representation of Rotations in 3D.

Representation of Rotations in 3D:

We need to project frame {1} into frame {0}:

R01 =

[x01| y01| z01

]=

x1.x0 y1.x0 z1.x0x1.y0 y1.y0 z1.y0x1.z0 y1.z0 z1.z0

(R01) =

cos(θ) − sin(θ) 0sin(θ) cos(θ) 0

0 0 1

= Rz,θ

Rz,θ is the basic rotation matrix around z-axis.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 19 / 22

Page 36: ECE447: Robotics Engineering

Representation of Rotations in 3D.

Representation of Rotations in 3D:

We need to project frame {1} into frame {0}:

R01 =

[x01| y01| z01

]=

x1.x0 y1.x0 z1.x0x1.y0 y1.y0 z1.y0x1.z0 y1.z0 z1.z0

(R01) =

cos(θ) − sin(θ) 0sin(θ) cos(θ) 0

0 0 1

= Rz,θ

Rz,θ is the basic rotation matrix around z-axis.

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 19 / 22

Page 37: ECE447: Robotics Engineering

Representation of Rotations in 3D.

Representation of Rotations in 3D:Basic Rotation Matrices:

Rx,θ =

1 0 00 cos(θ) − sin(θ)0 sin(θ) cos(θ)

Ry,θ =

cos(θ) 0 sin(θ)0 1 0

− sin(θ) 0 cos(θ)

x0

y 0

θ

Rx,θ

x0

y 0y 1

θ

Ry,θ

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 20 / 22

Page 38: ECE447: Robotics Engineering

Representation of Rotations in 3D.

Representation of Rotations in 3D:Basic Rotation Matrices:

Rx,θ =

1 0 00 cos(θ) − sin(θ)0 sin(θ) cos(θ)

Ry,θ =

cos(θ) 0 sin(θ)0 1 0

− sin(θ) 0 cos(θ)

x0

y 0

θ

Rx,θ

x0

y 0y 1

θ

Ry,θ

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 20 / 22

Page 39: ECE447: Robotics Engineering

Representation of Rotations in 3D.

Robot Operating System (ROS)

Problem: Lack of standard for robots.

ROS: is an open-source robot operatingsystem:

A set of software libraries and tools thathelp you build robot applications that workacross a wide variety of robotic platforms.Originally developed in 2007 at the StanfordArtificial Intelligence Laboratory anddevelopment continued at Willow Garage.Since 2013 managed by OSRF (Open SourceRobotics Foundation).ROS is working under Linux (RecommendedUbuntu).

ROS official page

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 21 / 22

Page 40: ECE447: Robotics Engineering

Questions?

[email protected]

Dr. Haitham El-Hussieny ECE447: Robotics Engineering 22 / 22