introduction to robotics 5/7/20151. general course information 5/7/20152 the course introduces the...

145
Introduction to Robotics 06/20/22 1

Upload: stella-mosley

Post on 16-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Introduction to Robotics

04/18/231

Page 2: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

General Course Information

04/18/232

The course introduces the basic concepts of robotic manipulators and autonomous systems. After a review of some fundamental mathematics the course examines the mechanics and dynamics of robot arms, mobile robots, their sensors and algorithms for controlling them.

two robotic arms everything in Matlab (and some Java)

Page 3: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

A150 Robotic Arm

04/18/233 Symbolic Representation of Manipulators

link 3link 2

Page 4: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Kinematics

04/18/234

the study of motion that ignores the forces that cause the motion “geometry of motion”

interested in position, velocity, acceleration, etc. of the various links of the manipulator e.g., where is the gripper relative to the base of the

manipulator? what direction is it pointing in? described using rigid transformations of the links

Page 5: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Kinematics

04/18/235

forward kinematics: given the link lengths and joint angles compute the

position and orientation of the gripper relative to the base for a serial manipulator there is only one solution

inverse kinematics: given the position (and possibly the orientation) of the

gripper and the dimensions of the links, what are the joint variables? for a serial manipulator there is often more than one

mathematical solution

Page 6: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Wheeled Mobile Robots

04/18/236

robot can have one or more wheels that can provide steering (directional control) power (exert a force against the ground)

an ideal wheel is perfectly round (perimeter 2πr) moves in the direction perpendicular to its axis

Page 7: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Wheel

04/18/237

Page 8: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Deviations from Ideal

04/18/238

Page 9: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

two independently driven wheels mounted on a common axis

Differential Drive

04/18/239

Page 10: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

for a robot starting with pose [0 0 0]T moving with velocity V(t) in a direction θ(t) :

Forward Kinematics

04/18/2310

t

t

t

dttt

dtttVty

dtttVtx

0

0

0

)()(

))(sin()()(

))(cos()()(

Page 11: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Sensitivity to Wheel Velocity

04/18/2311

2.0

100

0)0(

),0(1)(

),0(1)(2

2

t

tv

tvr

N

N

σ = 0.05

σ = 0.01

Page 12: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Localization using Landmarks: RoboSoccer

04/18/2312

Page 13: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Maps

04/18/2313

*

*start

goal

Page 14: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Path Finding

04/18/2314

start

goal

Page 15: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Localization

04/18/2315

start

goal

Page 16: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

EKF SLAM Application

16

[MIT B21, courtesy by John Leonard]www.probabilistic-robotics.org

Page 17: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

EKF SLAM Application

17

raw odometry estimated trajectory

[courtesy by John Leonard]

www.probabilistic-robotics.org

Page 18: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Day 02

Introduction to manipulator kinematics

04/18/2318

Page 19: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Robotic Manipulators

04/18/2319

a robotic manipulator is a kinematic chain i.e. an assembly of pairs of rigid bodies that can move

respect to one another via a mechanical constraint the rigid bodies are called links the mechanical constraints are called joints

Symbolic Representation of Manipulators

Page 20: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

A150 Robotic Arm

04/18/2320 Symbolic Representation of Manipulators

link 3link 2

Page 21: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Joints

04/18/2321 Symbolic Representation of Manipulators

most manipulator joints are one of two types1.revolute (or rotary)

like a hinge allows relative rotation about a fixed axis between

two links axis of rotation is the z axis by convention

2.prismatic (or linear) like a piston allows relative translation along a fixed axis between

two links axis of translation is the z axis by convention

3.our convention: joint i connects link i – 1 to link i 1. when joint i is actuated, link i moves

Page 22: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Joint Variables

04/18/2322 Symbolic Representation of Manipulators

revolute and prismatic joints are one degree of freedom (DOF) joints; thus, they can be described using a single numeric value called a joint variable

qi : joint variable for joint i

1. revolute qi = i : angle of rotation of link i relative to link i – 1

2. prismatic qi = di : displacement of link i relative to link i – 1

Page 23: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Revolute Joint Variable

04/18/2323 Symbolic Representation of Manipulators

revolute qi = i : angle of rotation of link i relative to link i – 1

link i – 1

link i

i

Page 24: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Prismatic Joint Variable

04/18/2324 Symbolic Representation of Manipulators

prismatic qi = di : displacement of link i relative to link i – 1

link i – 1 link i

di

Page 25: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Common Manipulator Arrangments

04/18/2325

most industrial manipulators have six or fewer joints the first three joints are the arm the remaining joints are the wrist

it is common to describe such manipulators using the joints of the arm R: revolute joint P: prismatic joint

Common Manipulator Arrangements

Page 26: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Articulated Manipulator

04/18/2326

RRR (first three joints are all revolute) joint axes

z0 : waist z1 : shoulder (perpendicular to z0) z2 : elbow (parallel to z1)

Common Manipulator Arrangements

z0z1 z2

waist

shoulder

elbow

forearm

1

2 3

Page 27: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Spherical Manipulator

04/18/2327

RRP Stanford arm

http://infolab.stanford.edu/pub/voy/museum/pictures/display/robots/IMG_2404ArmFrontPeekingOut.JPG

Common Manipulator Arrangements

z0z1

z2

waist

shoulder

1

2

d3

Page 28: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

SCARA Manipulator

04/18/2328

RRP Selective Compliant Articulated Robot for

Assembly http://www.robots.epson.com/products/g-series.htm

Common Manipulator Arrangements

z0

z1 z2

1

2

d3

Page 29: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2329

given the joint variables and dimensions of the links what is the position and orientation of the end effector?

Forward Kinematics

2

1

a1

a2

Page 30: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2330

choose the base coordinate frame of the robot we want (x, y) to be expressed in this frame

Forward Kinematics

2

1

a1

a2

(x, y) ?

x0

y0

Page 31: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2331

notice that link 1 moves in a circle centered on the base frame origin

Forward Kinematics

2

1

a1

a2

(x, y) ?

x0

y0

( a1 cos 1 , a1 sin 1 )

Page 32: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2332

choose a coordinate frame with origin located on joint 2 with the same orientation as the base frame

Forward Kinematics

2

1

a1

a2

(x, y) ?

x0

y0

( a1 cos 1 , a1 sin 1 )

1

x1

y1

Page 33: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2333

notice that link 2 moves in a circle centered on frame 1

Forward Kinematics

2

1

a1

a2

(x, y) ?

x0

y0

( a1 cos 1 , a1 sin 1 )

1

x1

y1

( a2 cos (1 + 2), a2 sin (1 + 2) )

Page 34: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2334

because the base frame and frame 1 have the same orientation, we can sum the coordinates to find the position of the end effector in the base frame

Forward Kinematics

2

1

a1

a2

x0

y0

( a1 cos 1 , a1 sin 1 )

1

x1

y1

( a2 cos (1 + 2), a2 sin (1 + 2) )

(a1 cos 1 + a2 cos (1 + 2), a1 sin 1 + a2 sin (1 + 2) )

Page 35: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2335

we also want the orientation of frame 2 with respect to the base frame x2 and y2 expressed in terms

of x0 and y0

Forward Kinematics

2

1

a1

a2

x0

y0

1

x2y2

Page 36: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2336

without proof I claim:

Forward Kinematics

2

1

a1

a2

x0

y0

1

x2 = (cos (1 + 2), sin (1 + 2) )

y2 = (-sin (1 + 2), cos (1 + 2) )

x2y2

Page 37: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Inverse Kinematics

04/18/2337

given the position (and possiblythe orientation) of the endeffector, and the dimensionsof the links, what are the jointvariables?

Inverse Kinematics

2 ?

1 ?

a1

a2

x0

y0

x2y2

(x, y)

Page 38: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Inverse Kinematics

04/18/2338

harder than forward kinematics because there is often more than one possible solution

Inverse Kinematics

a1

a2

x0

y0

(x, y)

Page 39: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Inverse Kinematics

04/18/2339

law of cosines

Inverse Kinematics

2 ?

a1

a2

x0

y0

(x, y)

22221

22

21

2 )cos(2 yxaaaab

b

Page 40: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Inverse Kinematics

04/18/2340 Inverse Kinematics

21

22

21

22

2 2)cos(

aa

aayx

)cos()cos( 22

and we have the trigonometric identity

221

22

21

22

2 2cos C

aa

aayx

therefore,

We could take the inverse cosine, but this gives only one of the two solutions.

Page 41: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Inverse Kinematics

04/18/2341 Inverse Kinematics

1cossin 222

to obtain

Instead, use the two trigonometric identities:

cos

sintan

2

221

2

1tan

C

C

which yields both solutions for 2 . In many programming languages you would use thefour quadrant inverse tangent function atan2

c2 = (x*x + y*y – a1*a1 – a2*a2) / (2*a1*a2);s2 = sqrt(1 – c2*c2);theta21 = atan2(s2, c2);theta22 = atan2(-s2, c2);

Page 42: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Inverse Kinematics

04/18/2342

Exercise for the student: show that

Inverse Kinematics

221

22111 cos

sintantan

aa

a

x

y

Page 43: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Day 03

Spatial Descriptions

04/18/2343

Page 44: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Points and Vectors

04/18/2344

point : a location in space vector : magnitude (length) and direction

between two points

p

qv

Page 45: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Coordinate Frames

04/18/2345

choosing a frame (a point and two perpendicular vectors of unit length) allows us to assign coordinates

0p

0q

1

2000 qpv0x

0y

0o 0

5.1

20q

5.2

40p

Page 46: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Coordinate Frames

04/18/2346

the coordinates change depending on the choice of frame

1p

1q

2

1111 qpv

1x

1y1o 1

2

5.01q

4

5.01p

Page 47: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Dot Product

04/18/2347

the dot product of two vectors

nu

u

u

u2

1

nv

v

v

v2

1

vuvuvuvuvu Tnn 2211

u

v

cosu

cosvuvu

Page 48: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Translation

04/18/2348

suppose we are given o1 expressed in {0}

1x

1y

1o

10x

0y

0o

0

0

301o

Page 49: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Translation 1

04/18/2349

the location of {1} expressed in {0}

1x

1y

1o

10x

0y

0o

0

0

3

0

0

0

300

01

01 ood

Page 50: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Translation 1

04/18/2350

1. the translation vector can be interpreted as the location of frame {j} expressed in frame {i}

ijd

Page 51: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Translation 2

04/18/2351

p1 expressed in {0}

1x

1y

1o

10x

0y

0o

0

1

4

1

1

0

3101

0 pdp

1

11p

a point expressedin frame {1}

Page 52: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Translation 2

04/18/2352

2. the translation vector can be interpreted as a coordinate transformation of a point from frame {j} to frame {i}

ijd

Page 53: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Translation 3

04/18/2353

q0 expressed in {0}

0x

0y

0o

0

1

2

1

1

0

300 pdq

1

10p

1

20q

Page 54: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Translation 3

04/18/2354

3. the translation vector can be interpreted as an operator that takes a point and moves it to a new point in the same frame

d

Page 55: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation

04/18/2355

suppose that frame {1} is rotated relative to frame {0}

1x

1y

0x

0y

10 oo

sin

cos

Page 56: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation 1

04/18/2356

the orientation of frame {1} expressed in {0}

1x

1y

0x

0y

10 oo

0101

010101 yyyx

xyxxR

Page 57: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation 1

04/18/2357

1. the rotation matrix can be interpreted as the orientation of frame {j} expressed in frame {i}

ijR

Page 58: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation 2

04/18/2358

p1 expressed in {0}

1x

1y

0x

0y

10 oo

1

1

cossin

sincos101

0

pRp

1

11p

Page 59: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation 2

04/18/2359

2. the rotation matrix can be interpreted as a coordinate transformation of a point from frame {j} to frame {i}

ijR

Page 60: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation 3

04/18/2360

q0 expressed in {0}

0x

0y

0o

1

1

cossin

sincos00

pRq

0q

0p

Page 61: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation 3

04/18/2361

3. the rotation matrix can be interpreted as an operator that takes a point and moves it to a new point in the same frame

R

Page 62: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Properties of Rotation Matrices

04/18/2362

RT = R-1 the columns of R are mutually orthogonal each column of R is a unit vector det R = 1 (the determinant is equal to 1)

Page 63: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation and Translation

04/18/2363

1x1y

1o

10x

0y

0o

0

Page 64: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotations in 3D

04/18/2364

010101

010101

01010101

zzzyzx

yzyyyx

xzxyxx

R

Page 65: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Day 04

Rotations

04/18/2365

Page 66: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Properties of Rotation Matrices

04/18/2366

RT = R-1 the columns of R are mutually orthogonal each column of R is a unit vector det R = 1 (the determinant is equal to 1)

Page 67: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotations in 3D

04/18/2367

010101

010101

01010101

zzzyzx

yzyyyx

xzxyxx

R0x

0y10 oo

0z

1x

1y1z

Page 68: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation About z-axis

04/18/2368

0x

0y

10 ˆˆ zz

1x

1y

+'ve rotation

Page 69: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation About x-axis

04/18/2369

0x

0y

0z

1x

1y

+'ve rotation

1z

Page 70: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation About y-axis

04/18/2370

0x

10 ˆˆ yy

0z

1x

+'ve rotation

1z

Page 71: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Relative Orientation Example

04/18/2371

0x

10 ˆˆ zy

0z

1x

1y

45

Page 72: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Successive Rotations in Moving Frames

04/18/2372

1. Suppose you perform a rotation in frame {0} to obtain {1}.

2. Then you perform a rotation in frame {1} to obtain {2}.

What is the orientation of {2} relative to {0}?

?02 R

0x

1z

1x10 ˆˆ yy

0z

2x

21 ˆˆ zz

1x

1y

2y

2x

2y

0z

0x

0y

2z

,12 zRR ,

01 yRR

Page 73: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Successive Rotations in a Fixed Frame

04/18/2373

1. Suppose you perform a rotation in frame {0} to obtain {1}.

2. Then you rotate {1} in frame {0} to obtain {2}.

What is the orientation of {2} relative to {0}?

?02 R

0x

1z

1x10 ˆˆ yy

0z

1x

1z

0y

1y

2x

2y

0z

0x

0y

2z

,zRR ,01 yRR

0z

0x

Page 74: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Composition of Rotations

04/18/2374

1. Given a fixed frame {0} and a current frame {1} and

if {2} is obtained by a rotation R in the current frame {1} then use postmulitplication to obtain:

2. Given a fixed frame {0} and a frame {1} and if {2} is obtained by a rotation R in the fixed frame

{0} then use premultiplication to obtain:

01R

01

02 RRR

12

01

02

12 and RRRRR

Page 75: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rotation About a Unit Axis

04/18/2375

cvkskvkkskvkk

skvkkcvkskvkk

skvkkskvkkcvk

R

zxzyyzx

xzyyzyx

yzxzyxx

k2

2

2

,

0x

0y

0z

xk

yk

zkk

cos1

sin

cos

v

s

c

Page 76: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Day 05

Rigid Body Transformations

04/18/2376

Page 77: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Homogeneous Representation

04/18/2377

translation represented by a vector d vector addition

rotation represented by a matrix R matrix-matrix and matrix-vector multiplication

convenient to have a uniform representation of translation and rotation obviously vector addition will not work for rotation can we use matrix multiplication to represent

translation?

Page 78: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Homogeneous Representation

04/18/2378

consider moving a point p by a translation vector d

zz

yy

xx

z

y

x

z

y

x

dp

dp

dp

d

d

d

p

p

p

dp

zz

yy

xx

z

y

x

dp

dp

dp

p

p

p

?

not possible as matrix-vector multiplication always leaves the origin unchanged

Page 79: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Homogeneous Representation

04/18/2379

consider an augmented vector ph and an augmented matrix D

1000

100

010

001

z

y

x

d

d

d

D

1z

y

x

h p

p

p

p

111000

100

010

001

zz

yy

xx

z

y

x

z

y

x

h dp

dp

dp

p

p

p

d

d

d

Dp

Page 80: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Homogeneous Representation

04/18/2380

the augmented form of a rotation matrix R3x3

10000

0

0

3x3RR

1110000

0

0

3x33x3 pRp

p

p

RRp

z

y

x

h

Page 81: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rigid Body Transformations in 3D

04/18/2381

p

01d

12d{0}

{1}

{2}

Page 82: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rigid Body Transformations in 3D

04/18/2382

suppose {1} is a rotated and translated relative to {0}

what is the pose (the orientation and position) of {1} expressed in {0} ?

d

{0}

{1}

?01T

Page 83: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rigid Body Transformations in 3D

04/18/2383

suppose we use the moving frame interpretation (postmultiply transformation matrices)1. translate in {0} to get {0’} 2. and then rotate in {0’} to get {1}

d

{0}

{1}

0'0D

d

{0}

{0’}

{0’}

Step 1

Step 2

'01

0'0 RD

Page 84: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rigid Body Transformations in 3D

04/18/2384

suppose we use the fixed frame interpretation (premultiply transformation matrices)1. rotate in {0} to get {0’} 2. and then translate in {0} in to get {1}

d

{0}

R

{0}

{0’}

{0’}

{1}

Step 1

Step 2

RD

Page 85: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Rigid Body Transformations in 3D

04/18/2385

both interpretations yield the same transformation

1000

10000

0

0

1000100

010

001

3x3

3x3

01

dR

Rd

RDT

Page 86: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Homogeneous Representation

04/18/2386

every rigid-body transformation can be represented as a rotation followed by a translation in the same frame as a 4x4 matrix

where R is a 3x3 rotation matrix and d is a 3x1 translation vector

1000

dRT

Page 87: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Homogeneous Representation

04/18/2387

in some frame i points

vectors

1

ii p

P

0

ii v

V

Page 88: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Inverse Transformation

04/18/2388

the inverse of a transformation undoes the original transformation if

then

1000

dRT

10001 dRR

TTT

Page 89: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Day 06

Forward Kinematics

04/18/2389

Page 90: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Transform Equations

04/18/2390

{0}

{1}{2}

{3}

{4}

01T

12T

03T

34T

42T

Page 91: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Transform Equations

04/18/2391

give expressions for:02T

34T

Page 92: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Transform Equations

04/18/2392

{0}

{1}

01T

02T

{2}

{3}

23T

Page 93: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Transform Equations

04/18/2393

how can you find

01T

23T

02T

13T

Page 94: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Links and Joints

04/18/2394

n joints, n + 1 links link 0 is fixed (the base) joint i connects link i – 1 to link i

link i moves when joint i is actuated

joint 1

joint 2

joint 3 joint 4 joint n-1 joint n

link 0

link 1

link

2

link 3

link n-1

link n

.................

prismatic

revolute

i

ii d

q

Page 95: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2395

given the joint variables and dimensions of the links what is the position and orientation of the end effector?

Forward Kinematics

2

1

a1

a2

x0

y0

p0 ?

Page 96: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2396

because the base frame and frame 1 have the same orientation, we can sum the coordinates to find the position of the end effector in the base frame

Forward Kinematics

2

1

a1

a2

x0

y0

( a1 cos 1 , a1 sin 1 )

1

x1

y1

( a2 cos (1 + 2), a2 sin (1 + 2) )

(a1 cos 1 + a2 cos (1 + 2), a1 sin 1 + a2 sin (1 + 2) )

Page 97: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2397

from Day 02

Forward Kinematics

2

1

a1

a2

x0

y0

1

x2 = (cos (1 + 2), sin (1 + 2) )

y2 = (-sin (1 + 2), cos (1 + 2) )

x2y2

p0 = (a1 cos 1 + a2 cos (1 + 2), a1 sin 1 + a2 sin (1 + 2) )

Page 98: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Frames

04/18/2398 Forward Kinematics

2

1

a1

a2

x0

y0 x1

y1

x2y2

Page 99: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/2399

using transformation matrices

11 ,,01 axz DRT

22 ,,12 axz DRT

12

01

02 TTT

Page 100: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Day 07

Denavit-Hartenberg

04/18/23100

Page 101: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Links and Joints

04/18/23101

n joints, n + 1 links link 0 is fixed (the base) joint i connects link i – 1 to link i

link i moves when joint i is actuated

joint 1

joint 2

joint 3 joint 4 joint n-1 joint n

link 0

link 1

link

2

link 3

link n-1

link n

.................

prismatic

revolute

i

ii d

q

Page 102: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/23102

attach a frame {i} to link i all points on link i are constant when expressed in {i} if joint i is actuated then frame {i} moves relative to

frame {i - 1} motion is described by the rigid transformation

the state of joint i is a function of its joint variable qi (i.e., is a function of qi)

this makes it easy to find the last frame with respect to the base frame

1iiT

)(11i

ii

ii qTT

123

12

01

0 nnn TTTTT

Page 103: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/23103

more generally

the forward kinematics problem has been reduced to matrix multiplication

ji

ji

ji

T

I

TTT

Tij

jj

ij

ii

ij

if

if

if

1

1121

Page 104: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Forward Kinematics

04/18/23104

Denavit J and Hartenberg RS, “A kinematic notation for lower-pair mechanisms based on matrices.” Trans ASME J. Appl. Mech, 23:215–221, 1955 described a convention for standardizing the

attachment of frames on links of a serial linkage common convention for attaching reference

frames on links of a serial manipulator and computing the transformations between frames

Page 105: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Denavit-Hartenberg

04/18/23105

Page 106: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Denavit-Hartenberg

04/18/23106

notice the form of the rotation component

this does not look like it can represent arbitrary rotations

can the DH convention actually describe every physically possible link configuration?

ii

iiiii

iiiii

cs

scccs

sscsc

0

Page 107: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Denavit-Hartenberg

04/18/23107

yes, but we must choose the orientation and position of the frames in a certain way

(DH1)

(DH2)

claim: if DH1 and DH2 are true then there exists unique numbers

01 ˆˆ zx

01 ˆ intersects ˆ zx

,,,,0

1 such that ,,, xaxdzz RDDRTda

Page 108: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Denavit-Hartenberg

04/18/23108

iiii xaxdzzii RTTRT ,,,,

1

1000

0 i

i

i

dcs

sascccs

casscsc

ii

iiiiii

iiiiii

anglejoint

offsetlink

link twist

lengthlink

i

i

i

i

d

a

Page 109: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Denavit-Hartenberg

04/18/23109

proof: on blackboard in class

Page 110: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Day 08

Denavit-Hartenberg

04/18/23110

Page 111: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Denavit-Hartenberg Forward Kinematics

04/18/23111

RPP cylindrical manipulator http://strobotics.com/cylindrical-format-robot.htm

Page 112: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Denavit-Hartenberg Forward Kinematics

04/18/23112

How do we place the frames?

Page 113: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 1: Choose the z-axis for each frame

04/18/23113

recall the DH transformation matrix

iiii xaxdzzii RTTRT ,,,,

1

1000

0 i

i

i

dcs

sascccs

casscsc

ii

iiiiii

iiiiii

1ˆ iix 1ˆ i

iy 1ˆ iiz

Page 114: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 1: Choose the z-axis for each frame

04/18/23114

axis of actuation for joint i+1

iz

link i link i link i+1 link i+1

joint i+1 joint i+1

iz

iz

Page 115: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 1: Choose the z-axis for each frame

04/18/23115

Warning: the picture is deceiving. We do not yet know the origin of the frames; all we know at this point is that each zi points along a joint axis

Page 116: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 2: Establish frame {0}

04/18/23116

place the origin o0 anywhere on z0 often the choice of location is obvious

choose x0 and y0 so that {0} is right-handed often the choice of directions is obvious

Page 117: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 2: Establish frame {0}

04/18/23117

Page 118: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 3: Iteratively construct {1}, {2}, ... {n-1}

04/18/23118

using frame {i-1} construct frame {i} DH1: xi is perpendicular to zi-1

DH2: xi intersects zi-1

3 cases to consider depending on the relationship between zi-1 and zi

Page 119: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 3: Iteratively construct {1}, {2}, ... {n-1}

04/18/23119

Case 1 zi-1 and zi are not coplanar (skew)

i angle from zi-1 to zi measured about xi

iz

1ˆ iz

(out of page)shortest line betweenand1ˆ iz iz

ix

iopoint of intersection

ia

Page 120: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 3: Iteratively construct {1}, {2}, ... {n-1}

04/18/23120

Case 2 zi-1 and zi are parallel ( i = 0 )

notice that this choice results in di = 0

iz1ˆ iz

ix

iopoint of intersection

1ioia

Page 121: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 3: Iteratively construct {1}, {2}, ... {n-1}

04/18/23121

Case 3 zi-1 and zi intersect ( ai = 0 )

iz

1ˆ iz

ixiopoint of intersection

(out of page)

Page 122: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 3: Iteratively construct {1}, {2}, ... {n-1}

04/18/23122

Page 123: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 3: Iteratively construct {1}, {2}, ... {n-1}

04/18/23123

Page 124: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 4: Place the end effector frame

04/18/23124

“approach”

“sliding”

“normal”

Page 125: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 4: Place the end effector frame

04/18/23125

Page 126: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 5: Find the DH parameters

04/18/23126

ai : distance between zi-1 and zi measured along xi

i : angle from zi-1 and zi measured about xi

di : distance between oi-1 to the intersection of xi and zi-1 measured along zi-1

i : angle from xi-1 and xi measured about zi-1

Page 127: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 5: Find the DH parameters

04/18/23127

Link ai i di i

1 0 0 d1 1*

2 0 -90 d2* 0

3 0 0 d3* 0* joint variable

Page 128: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Day 09

More Denavit-Hartenberg Examples

04/18/23128

Page 129: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 5: Find the DH parameters

04/18/23129

Link ai i di i

1 0 0 d1 1*

2 0 -90 d2* 0

3 0 0 d3* 0* joint variable

Page 130: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 6: Compute the transformation

04/18/23130

once the DH parameters are known, it is easy to construct the overall transformation

Link ai i di i

1 0 0 d1 1*

2 0 -90 d2* 0

3 0 0 d3* 0* joint variable

1000

100

00

00

1

11

11

,,,,01 1111 d

cs

sc

RTTRT xaxdzz

Page 131: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 6: Compute the transformation

04/18/23131

Link ai i di i

1 0 0 d1 1*

2 0 -90 d2* 0

3 0 0 d3* 0* joint variable

1000

010

0100

0001

2,,,,

12 2222 d

RTTRT xaxdzz

Page 132: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 6: Compute the transformation

04/18/23132

Link ai i di i

1 0 0 d1 1*

2 0 -90 d2* 0

3 0 0 d3* 0* joint variable

1000

100

0010

0001

3,,,,

23 3333 d

RTTRT xaxdzz

Page 133: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 6: Compute the transformation

04/18/23133

1000

010

0

0

21

3111

3111

23

12

01

03 dd

dccs

dssc

TTTT

Page 134: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Spherical Wrist

04/18/23134

Page 135: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Spherical Wrist

04/18/23135

Page 136: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Spherical Wrist: Step 1

04/18/23136

Page 137: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Spherical Wrist: Step 2

04/18/23137

Page 138: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Spherical Wrist: Step 2

04/18/23138

Page 139: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Spherical Wrist: Step 4

04/18/23139

Page 140: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 5: DH Parameters

04/18/23140

Link ai i di i

4 0 -90 0 4*

5 0 90 0 5*

6 0 0 d6 6** joint variable

Page 141: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Step 6: Compute the transformation

04/18/23141

10006556565

654546465464654

654546465464654

56

45

34

36 dccsscs

dssssccscsscccs

dscsccssccssccc

TTTT

Page 142: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

RPP + Spherical Wrist

04/18/23142

Page 143: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

RPP + Spherical Wrist

04/18/23143

1000333231

232221

131211

36

03

06

z

y

x

drrr

drrr

drrr

TTT

21654

651641654111

dddssd

csssscccccr

z

Page 144: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

Stanford Manipulator + Spherical Wrist

04/18/23144

Link ai i di i

1 0 -90 0 1*

2 0 90 d2 2*

3 0 0 d3* 0

4 0 -90 0 4*

5 0 90 0 5*

6 0 0 d6 6** joint variable

Page 145: Introduction to Robotics 5/7/20151. General Course Information 5/7/20152  The course introduces the basic concepts of robotic manipulators and autonomous

SCARA + 1DOF Wrist

04/18/23145

Link ai i di i

1 a1 0 d1 1*

2 a2 180 0 2*

3 0 0 d3* 0

4 0 0 d4 4** joint variable