Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

42
Spatial Modeling – some fundamentals for Robot Kinematics ME 3230

Transcript of Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Page 1: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Spatial Modeling – some fundamentals for Robot Kinematics

ME 3230

Page 2: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Considering Translation and Rotation

• Translation, in a simple sense, is just the movement of one point from another without changing the orientation of space.

• We can assign space frames (coordinate systems) to any object in space – (or all objects in space!).

• If we wish to relate one object (and its space frame) to any other space frame we should be able to write a set of equations that represent each axis of the remote space in another’s systems axes and write a vector that relate the positions of the origins of the ‘systems’ to each other.

Page 3: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Translational Transformation

• In physics we said to just add the two vectors (because the vector numbers are ‘the same’ since the axes point in the same directions)

• So if A1 is at (2,7,3) in ‘1th Space’ then it is at: (2,7,3) + (12,35,45) = (2+12, 7+35, 3+45) = (14,42,48) in Null Space

• But this (simple vector addition) – only works for simple translation where space

is not ‘reorientated’!• We must then Generalize the method (to

me this ‘general approach’ is easier – but it seems more cumbersome when we start thinking this way!)

Page 4: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Defining the Homogeneous Transformation Matrix

• It is a 4x4 Matrix that describes “3-Space” with information that relates Orientation and Position (pose) of a remote space to a local space

nx ox ax dx ny oy ay dy

nz oz az dz 0 0 0 1

N vector projects the Xrem Axis to the Local Coordinate System

O vector projects the Yrem Axis to the Local Coordinate System

A vector projects the Zrem Axis to the Local Coordinate System

D vector is the position of the origin of the remote space in Local Coordinate dimensions

This 3x3 ‘Sub-Matrix’ is the information that relates orientation of Framerem to Frame Local

(This is called R the rotational Submatrix)

Page 5: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Defining the Homogeneous Transformation Matrix

nx ox ax dx ny oy ay dy

nz oz az dz 0 0 0 1 Perspective

or Projection Vector

Scaling Factor

• This matrix is a transformation tool for space motion!

Page 6: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

HTM – A Physical Interpretation

1. A representation of a Coordinate Transformation relating the coordinates of a point ‘P’ between 2 like-geometrid (-- ie SO3 --) different coordinate systems

2. A representation of the Position and Orientation (POSE) of a transformed coordinate frame in the “space” defined by a fixed coordinate frame

3. An OPERATION that takes a vector P and rotates and/or translates it to a new vector Pt in the same coordinate frame

Page 7: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Lets use it on our ‘Translational’ problem

• What is the n vector here• Here, since X1 points in X0 direction, it

is simply: (1,0,0)• Using the same reasoning:

• The o vector is: (0,1,0)• And the a vector is: (0,0,1)

• Here the d vector is:• The definition of the origin of Frame1 in Frame0

coordinates: (12,35,45)

Page 8: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Solving:

• H. Transformation Matrix is:

• Point A1 to ‘1 space’:

1 0 0 12 0 1 0 35 0 0 1 45 0 0 0 1

1 0 0 2 0 1 0 7 0 0 1 3 0 0 0 1

The solution of where A1 is in Frame0 is the product of these two matrices!

T01 =

T1A =

Page 9: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

1 0 0 140 1 0 420 0 1 480 0 0 1

Solution is given by:

T01· T1

A =

Hey, This works! (we got the same answer)

-at least for this translational stuff!

Page 10: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

What about Rotational Transformations?

• Lets start with a “Pure Rotation”• A Pure Rotation is one about only 1 axis

(a separable rotation)• We will consider this about Z0 (Initially)

• This means: Rotate the ‘Remote’ Frame1 by an angle about the Z0 axis of ‘Local’ Frame0

Page 11: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

After Rotation we find this Relationship

Page 12: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

What is the Representation of P1 in Both Frames?

• Assume the (identical) point is at (2,4,6)1

• And we had rotated Frame 1 by 37 degrees about the Z0 Axis

• Where is the point as defined in Frame0?• We will employ the Method of Inner Products

to find this.

Page 13: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

By Inner Products:

1 1 1 1 1 1 1

0 0 0 0 0 0 0

p p p

p p p

P x i y j z k

P x i y j z k

0 1 0 1 1 1 1 1 1 0

0 1 0 1 1 1 1 1 1 0

0 1 0 1 1 1 1 1 1 0

( )

( )

( )

p p p p

p p p p

p p p p

x P i x i y j z k i

y P j x i y j z k j

z P k x i y j z k k

Relating these two definition of the SAME Point:

Page 14: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Collecting & Simplifying :

0 1 0 1 1 0 1 1 0 1

0 1 0 1 1 0 1 1 0 1

0 1 0 1 1 0 1 1 0 1

( ) ( ) ( )

( ) ( ) ( )

( ) ( ) ( )

p p p p

p p p p

p p p p

x i i x j i y k i z

y i j x j j y k j z

z i k x j k y k k z

0 1 0 1 0 1 0 1

0 1 0 1 0 1 0 1

0 1 0 1 0 1 0 1

p p

p p

p p

x i i j i k i x

y i j j j k j y

z i k j k k k z

Rewriting it in Matrix Form:

Psst:This is a R matrix!

Page 15: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

0 1

0 1

0 1

0 0

0 0

0 0 1 0

0 0 0 11 1

p p

p p

p p

Cos Sinx x

Sin Cosy y

z z

Converting it to a HTM Form (4x4)

1 0

1 0

For the Dot (inner) Product:

( ( ))

1 1 (360 )

where:

(360 ) (360) * (360) *

thus:

similarly for all other Dot Terms

a b a b Cos a b

i i Cos

Cos Cos Cos Sin Sin

Cos

i i Cos

Vector of origin1 to orgin0 is (0,0,0) – they are the same point!

Page 16: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Lets See? is 37deg and P1 is (2,4,6)

• Cos = 0.799• Sin = 0.602• HTM is:

• Model is:

0.799 0.601 0 0

0.601 0.799 0 0

0 0 1 0

0 0 0 1

0

0

0

0.799 0.601 0 0 2 .806

0.601 0.799 0 0 4 4.398

0 0 1 0 6 6

0 0 0 1 1 11

p

p

p

x

y

z

Computation is just like we observed physically!

Page 17: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

What about Pure Rotation about X or Y Axes?

• Uses the same Inner Product approach (Cosines of angles between vectors after rotation)

• Trotx =

• Troty =

1 0 0 0

0 0

0 0

0 0 0 1

Cos Sin

Sin Cos

0 0

0 1 0 0

0 0

0 0 0 1

Cos Sin

Sin Cos

Page 18: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Lets look at Another Issue!

• Since we are in Matrix Math now, We remember that the “order of multiplication” matters

• That is A*B B*A (in general)• When we deal with physical space this is

true as well. But it even offers one more added difficulty:

• Did we take motion Relatively (space is redefined after an operation)?

• Are all operations taken W.R.T. a fixed geometric space?

Page 19: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Now We Can Define 2 Cases:

• Case 1 is where we “redefine” Space after each operation

• Case 2 is where all operations are taken against a fixed (inertia) space frame

Page 20: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Check Order issue:

• 1st Translate (4,0,0) then rotate 90 about Z axis

• Its almost like drawing a cat!

Page 21: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Given P2 (1,1,0)2 Where is it in Space0?

• Lets Guess it is found by applying an (overall) Transformation given by:

20

20

20

1 0 0 4 0 1 0 0

0 1 0 0 1 0 0 0

0 0 1 0 0 0 1 0

0 0 0 1 0 0 0 1

0 1 0 4

1 0 0 0

0 0 1 0

0 0 0 1

A BT T T

T

T

Page 22: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Is (3,1,0,1)0 Equal to T20*(1,1,0,1)2?

?

3 0 1 0 4 1

1 1 0 0 0 1

0 0 0 1 0 0

1 0 0 0 1 1

Simplifying (RHS):

0 1 0 4 1 3

1 0 0 0 1 1

0 0 1 0 0 0

0 0 0 1 1 1

They are equal! (so its a good model!)

Page 23: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Check Order issue:

• Rotate then Translate• Should be different physically!• Lets See

Page 24: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Given P2 (1,1,0)2 Where is it in Space0?

• Lets Guess it is found by applying an (overall) Transformation given by:

20

20

20

0 1 0 0 1 0 0 4

1 0 0 0 0 1 0 0

0 0 1 0 0 0 1 0

0 0 0 1 0 0 0 1

0 1 0 0

1 0 0 4

0 0 1 0

0 0 0 1

B AT T T

T

T

Page 25: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Is (-1,5,0,1)0 Equal to T20*(1,1,0,1)2?

?

1 0 1 0 0 1

5 1 0 0 4 1

0 0 0 1 0 0

1 0 0 0 1 1

Simplifying (RHS):

0 1 0 0 1 1

1 0 0 4 1 (1 4) 5

0 0 1 0 0 0

0 0 0 1 1 1

They are equal! (so its a good model!)

Page 26: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Checking Case Two

• Here we don’t redefine space between operations

• That is, all operations are taken WRT a fixed coordinate system

Page 27: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

First, Lets Try Translate/RotateThis Looks Familiar!

• The effect is just like the Rotate then Translate operational order when we were in Case 1

• Therefore, To get the Transformation Model, we must write: Trot*Ttrans

• Yes, the order of multiplying is reversed from the order of operating!

Page 28: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Now lets Try Rotate/Translate: Looks Familiar Too!

• This is just like what happened in Case 1 when we did Translate then Rotate

• The overall effect here must be:Ttrans * Trot

• Yes the order of multiplying is again reversed from the order of operating!

Page 29: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

This can be Generalized

• For Case 1 operations (space is redefined between each operation), the OVERALL EFFECT is found by taking the product of the operations in the order they are taken

• For Case 2 operations (all operations taken W.R.T. a fixed Frame), the OVERALL EFFECT is found by forming the product of the individual operations taken in reverse order

Page 30: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

This Does Matter!

• Robotic Modeling is a Case 1 problem• Euler Orientation is a Case 1 problem• However, Roll-Pitch-Yaw Orientation is a

Case 2 problem• Finally, Robot Mapping is (typically) a

Case 1 problem– Lets look into robot mapping

Page 31: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

One Last General Idea: Robot Mapping

• This is an offline tool for finding Robot Targets (IKS targeting)

• Moves Robot programming ‘Upstairs’ – to the engineering office

• Relies on CAD models and geometry defined in increasingly complex spaces

• Looks at chains of Transforms to define targets and robot tooling in common coordinate frames

Page 32: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Robot Mapping:

CeTa

P

Ho

n

Tool

R

0

Note: Drill not shown, (the Tool frame is actually located at the drill tip!)

Page 33: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Robot Mapping• The idea here is to match up the

Tool’s geometric pose with the pose of a Target in our work space.

• If we have a part that needs a hole drilled at a certain location, we must get the tool, carried by the robot, to this location (actually a point right above the drilled hole and also at the bottom of the drilled hole will be needed).

• Remembering earlier, to equate poses, they must be defined in a common coordinate system.

Page 34: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Robot Mapping (cont.)

• Typically, we would have a lot of geometric information about our working environment ‘just laying around’

• This data would be in the CAD drawings of parts and in CAD facilities plans of our cells and factories

• Additionally the information is also provided in equipment drawings (tables, fixtures, even robots to some extent)

• But, if we are going to talk about a robot, that machine is a series of adjustable joints and links that can be moved around (in an IKS sense) to put the tool accurately at the working positions we need.

• The Necessary Pose is (within the robot): Tn

o

Page 35: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Robot Mapping (cont.)

• Thinking about what we know:– We would know where we want a hole in a part (in

part coordinates) or: TPHo

– We likely want to place the part at a specific location on a table or in a fixture or: TTa

P or TFP (known in

process documentation)

– The Table in the Cell (or fixture on a Table) TCeTa or

(TTaF and TCe

Ta) would be known in our facility designs and/or process documentation

Page 36: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Robot Mapping (cont.)

• Other thing we would know:– Were our robot is placed in the cell:

TCeR from facility drawings

– Were the robot Cartesian home frame is located in the Robot space: TR

0 from equipment drawings– And finally where a tool is mounted

to the end of the robot wrist: Tntool by

measuring the tool and holder• What we would like to find is: T0

n which contains the information about where the robot needs to ‘pose’ to do the hole drilling operation!

Page 37: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Robot Mapping (cont.)

• Knowing this stuff, we should be able to generate a kinematic chain (of HTM’s) – our map – that defines the hole in the cell:

TCeTa*TTa

P*TPHo

• At the same time we can build a kinematic chain for mapping the Tool (the drill) back to the Cell too:

TCER*TR

0*T0n*Tn

tool

• Now equate the two – they are defined in a common reference system – and isolate the desired information (T0

n)– That is, extract the ‘unknown’ from the ‘known stuff’Hey – Order matters in

the Case 1 Scheme!

Page 38: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Robot Mapping (cont.)

• Equating the two kinematic chains:

TCeTa*TTa

P*TPHo = TCE

R*TR0*T0

n*Tntool

• Now, to isolate the T0n information (our desired pose for the

robot), we must remove the “knowns” step-by-step on the RHS of this equation.

• To do this we multiply by their inverses. BUT we must maintain order when we do it!

Page 39: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Robot Mapping (cont.)

• 1st we move TCER

(TCER)-1*TCe

Ta*TTaP*TP

Ho = TR0*T0

n*Tntool

• Here we have to ‘pre-multiply’ both the LHS & RHS by the inverse of the TCE

R matrix

• Then we move TR0 by pre-multiplying by (TR

0)-1 on both sides

(TR0)-1*(TCE

R)-1*TCeTa*TTa

P*TPHo

=T0n*Tn

tool

Page 40: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Robot Mapping (cont.)

• Finally we isolate the T0n matrix by

‘post-multiplying’ both side by: (Tntool)-1

• (TR0)-1*(TCE

R)-1*TCeTa*TTa

P*TPHo* (Tn

tool)-1 = T0

n

• This T0n would contain the data we need

to solve the IKS (joint positioning) equations for any Robot type!

Page 41: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Robot Mapping – Inverses of HTM’s

• Taking the Inverse of a HTM is “EASY!!!” =

• Easy because, physically, it is the same as defining the original ‘close’ frame in the ‘remote’ frame’s space (we have changed – or inversed – our point of view!)

0 0 0 1

x y z

x y z

x y z

n n n n d

o o o o d

a a a a d

This is the Transpose of the R sub-matrix of the original HTM

Page 42: Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.

Now its your turn:

• Homework– Do Text problems from Chapter 2 in

Spong & Vidyasagar: #5, 7, 8, 15, and 18 (posted at library reserve)

– Approach problem 18 as a Mapping Problem – submit it for grading next Friday