Anda di halaman 1dari 55

ME 4135 Robotics & Control

Slide Set 3 – Review of Matrix


Methods Applicable to Robot
Control
Creating a Rational Approach to
Kinematics – A review of Matrix Methods
 As the robots got more and more
“Revolute” building Inertial models (FKS
& IKS) was increasingly complicated
 We would like a more logical approach
to this problem
 We will define a concept of
Homogeneous Matrices in S–O3 Space
to aid in this model building effort
 Consider, we only built Positional DOF
models to this point
 We need both Position & Orientation
models to drive real robots!
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.
Defining Transformations – here lets
consider translational transformations

A1 Lets say that we


have a point P1
O1
P1 sitting at the origin
(12,35,45) of Frame1, and a
second point A1
located at (2,7,3)1
tell me, What is the
pose of the
O0 coordinate frame
(0,0,0) attached to A1 as
described in the
space Fame 0?
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 simple vector addition techniques 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!)
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

This 3x3 ‘Sub-Matrix’ is nx ox ax dx


the information that
relates orientation of ny oy ay dy
Framerem to Frame Local
nz oz az dz D vector is the
position of the
(This is called R the
rotational Submatrix) 0 0 0 1 origin of the
remote space in
A vector Local Coordinate
N vector projects O vector projects the dimensions
the Xrem Axis to projects the Zrem Axis to the
the Local Yrem Axis to Local
Coordinate the Local Coordinate
System Coordinate System
System
Defining the Homogeneous
Transformation Matrix

nx ox ax dx
ny oy ay dy
nz oz az dz
0 0 0 1
Scaling
Perspective Factor
or Projection
Vector

• This matrix is a transformation


tool for space motion!
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
Lets use it on our
‘Translational’ problem
 What is the n vector here
 Well, 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)
Solving:
 H. Transformation Matrix is:
1 0 0 12
T01 = 0 1 0 35
0 0 1 45 The solution
0 0 0 1 of where A1 is
in Frame0 is
 Point A1 to ‘1 space’: the product
of these two
1 0 0 2
matrices!
T1A = 0 1 0 7
0 0 1 3
0 0 0 1
Solution is given by:

1 0 0 14
0 1 0 42
T01· T1A =
0 0 1 48
0 0 0 1
Hey, This works! (we got the
same answer)
-at least for this translational
stuff!
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 Q about the Z0 axis
of ‘Local’ Frame0
After Rotation we find this
Relationship
Y1 Y0
P1

X1



O0,O 1 X0

Z0,Z 1
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.
By Inner Products:
P1  x1p  i1  y1p  j1  z1p  k1
P0  x0p  i0  y0p  j0  z0p  k0
Relating these two definition of the SAME Point:

x0p  P1  i0  ( x1p  i1  y1p  j1  z1p  k1 )  i0


y0p  P1  j0  ( x1p  i1  y1p  j1  z1p  k1 )  j0
z0p  P1  k0  ( x1p  i1  y1p  j1  z1p  k1 )  k0
Collecting & Simplifying :
x0p  (i1 i0 ) x1p  ( j1 i0 ) y1p  (k1 i0 ) z1p
y0p  (i1 j0 ) x1p  ( j1 j0 ) y1p  (k1 j0 ) z1p
z0p  (i1 k0 ) x1p  ( j1 k0 ) y1p  (k1 k0 ) z1p
Rewriting it in Matrix Form:

 i1 i0 k1 i0  x
p p
x0 j1 i0 1
p 
y   i1 j0 j1 j0 
k1 j0  y p
0 1
p   p
z0  0
i1 k j1 k0 k1 k0  z 1
Psst:This is a R matrix!
Converting it to a HTM Form (4x4)

x0
p
 Cos  Sin 0 0  x1p
p  Sin Cos 
0 0 y1 p
y0
 
zp
0
 0 0 1 0  z1p
 
1  0 0 0 1 1
For the Dot (inner) Product:
a  b  a  b  Cos( (a  b))
Vector of
i1  i0  1 1  Cos(360   )
origin1 to
where:
orgin0 is
Cos(360   )  Cos(360) * Cos  Sin(360) * Sin
(0,0,0) – they
 Cos
are the same
thus:
point!
i1  i0  Cos
similarly for all other Dot Terms
Lets See?  is 37deg and P1 is (2,4,6)

 Cos = 0.799
 Sin = 0.602  0.799 0.601 0 0
 0.601 0.799 0 0
 HTM is:  
 0 0 1 0
 
 0 0 0 1

x0p  0.799 0.601 0 02


 0.601 0.799 0 04
 Model is: 0 
y p


z0  0
p
0 1 06
 
1  0 0 0 11
Solving then:
 XP0 = (row1 * P1) =
.799*2-.601*4+0*6+0*1=-0.806
 YP0 = (row2*P1) =
.601*2+.799*4+0*6+0*1 = 4.398
 ZP0 = (row3*P1) = 0*2+0*4+1*6+0*1
=6
 This is the same as we Observed!
What about Pure Rotation about
X or Y Axes?
 Uses the same Inner Product
approach (Cosines of angles between
vectors after rotation)
1 0 0 0
0 Cos  Sin 0
 Trotx =  
0 Sin Cos 0
0 1 
 0 0

 Cos 0 Sin 0
 0 1 0 0
 
 Troty =   Sin 0 Cos 0
 0 1 
 0 0
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) or are all operations taken W.R.T. a fixed
geometric space?
First Define two simple Operations:
 Simple Translation of (4,0,0)
1 0 0 4
0 1 0 0
A=  
0 0 1 0
0 0 0 1 

 Simple Rotation of 90 about Zaxis


0 1 0 0
B= 1 0

0 0

0 0 1 0
0 0 0 1

Now 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
Check Order issue:

 1st Translate then rotate


 Its almost like drawing a cat!
Autocad Here! (Case 1:Trans –
rot)
Given P2 (1,1,0)2 Where is it in
Space0?
 Let’s Guess it is found by applying an (overall)
Transformation given by:
T02  TA  TB
1 0 0 4  0 1 0 0
0 1 0 0  1 0 0 0
T02    
0 0 1 0  0 0 1 0
0 1  0 0 1 
 0 0 0
0 1 0 4
1 0 0 0
T02   
0 0 1 0
0 0 1 
 0
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 1  1  1 
 0
They are equal! (so its a good model!)
Check Order issue:

 2nd – Rotate then Translate


 Should be different physically!
 Lets See
AutoCad Again (Case1: Rot-Trans)
Given P2 (1,1,0)2 Where is it in
Space0?
 Lets Guess it is found by applying an
(overall) Transformation given by:
T02  TB  TA
0 1 0 0 1 0 0 4
1 0 0 0 0 1 0 0
T02    
0 0 1 0 0 0 1 0
0 0 1  0 1 
 0 0 0
0 1 0 0
1 0 0 4
T02   
0 0 1 0
0 0 1 
 0
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 1  1   
 0 1 
They are equal! (so its a good model!)
Checking Case Two

 Now we don’t redefine space between


operations
 That is, all operations are taken WRT a
fixed coordinate system
Autocad: (Case2 Trans – Rot)
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!
Case 2: Rot - Translate

 What about here?


 Lets see what we get
Autocad: (Case 2, Rot-Trans)
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!
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
This can be Generalized in an
Algorithm!
 As an Algorithm, we would say, when
considering any and all additional
individual Operations:
 Initially Place the First Operation (must
have been taken WRT Frame 0!)
 Then write each successive operation as
a matrix and place it in “multiply order”
by the iterative application of the two
steps below (for Operations 2 thru j)
 Step 1: Considering Operation i (taken wrt any
Frame n), its effect is modeled AFTER all prior
operations taken WRT any Frames < n
 And
 Step 2: Considering the same Operation i
(taken about frame n), its effect is modeled
BEFORE all prior operations taken WRT Frame
n or any frame > n
Looking at our earlier
“modeling”
 When we studied Case I (First Time)
 Model Pure Rotation about Z – Call it OpA
 Model Translation along X – Call it OpB
 1st Op A about Z0; then 2nd OpB along X1
 By the Algorithm: Place A first then
Determine placement of B –
 Step 1: place B after A if Frame 1 > Frame 0 (yes!)
 Step 2: place B before A if Frame 1 0 (No!)
 Correct order is A*B (as we saw)
If Operational Order was
reversed (but still Case I)
 What of: Op B along X0 Op B about Z1?
 Place A first then determine placement of B
– again by the algorithm:
 Step 1 place B after A if Frame 0 > Frame 1
(no!)
 Step 2: place B before A if Fr0 Fr 1 (Yes!)
 Correct order is B*A (as seen)
Setting Case II by Algorithm
 Op A is Rot about Z0; Op B is Translation wrt
X in Fr0
 Place A then apply algorithm to place B
 Step 1: Place B after A if Fr 0 > Fr 0 (no!)
 Step 2: Place B before A if Fr 0 Fr 0 (yes!)
 Correct order is B*A (as we observed)
 BUT REMEMBER:
 The algorithm can easily be extended to any
number of operations (remembering that the a
higher number frame results after each successive
operation!) regardless of if the individual operation
are purely Case I or Case II
This Does Matter!
 Robotic Modeling is a Case 1 problem
 Euler Orientation is a Case 1 problem
 However, RPY Orientation is a Case 2
problem
 Finally, Robot Mapping is (typically) a
Case 1 problem
 Lets look into robot mapping
One Last (cool!) 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
Robot Mapping:

Note: Drill not shown,


n
(the Tool frame is
actually located at the 0
drill tip!)
Tool

Ho
R

Ce
Ta
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 Dynamics, to equate poses,
they must be defined in a common coordinate
system.
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): Tno
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: TTaP or TFP
(known in process documentation)

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


or (TTaF and TCeTa) would be known in our facility
designs and/or process documentation
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: TR0 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: T0n which
contains the information about where the
robot needs to ‘pose’ to do the hole
drilling operation!
Robot Mapping (cont.)

 Knowing this stuff, we should be able to generate a


kinemetic chain (of HTM’s)– or map – that defines the
hole in the cell:
TCeTa*TTaP*TPHo
 At the same time we can build a kinematic chain for
mapping the Tool (the drill) back to the Cell too:
TCER*TR0*T0n*Tntool

 Now equate the two – they are defined in a common


reference system – and isolate the desired information
(T0n)
 That is, extract the ‘unknown’ from the ‘known stuff’
Robot Mapping (cont.)

 Equating the two kinematic chains:


TCeTa*TTaP*TPHo = TCER*TR0*T0n*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!
Robot Mapping (cont.)
 1st we move TCER

(TCER)-1*TCeTa*TTaP*TPHo = TR0*T0n*Tntool
 Here we have to ‘pre-multiply’ both the LHS & RHS by
the inverse of the TCER matrix

 Then we move TR0 by pre-multiplying by (TR0)-1 -- both


sides

(TR0)-1*(TCER)-1*TCeTa*TTaP*TPHo
=T0n*Tntool
Robot Mapping (cont.)

 Finally we isolate the T0n matrix by


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

 (TR0)-1*(TCER)-1*TCeTa*TTaP*TPHo* (Tntool)-
1 = T n
0

 This T0n would contain the data we


need to solve the IKS equations for any
Robot type!
Robot Mapping (cont.)

 Taking the Inverse of a HTM


is “EASY!!!” =  nx

ny nz 
 nd 


o
 x
oy oz 
 od 
 
 Easy because, physically, it is

 ax ay az  
 ad  
the same as defining the 0 
 0 0 1 
original ‘close’ frame in the
‘remote’ frame’s space (we
This is the
have changed – or inversed Transpose of the R
– our point of view!) sub-matrix of the
original HTM
Now its your turn:
 Homework
 Do Text problems from Chapter 2 in Spong
& Vidyasagar: #5, 7, 8, 15, and 18
 Approach Problem 18 as a Mapping
Problem

Anda mungkin juga menyukai