Download Spatial Modeling – some fundamentals for Robot Kinematics

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Lorentz transformation wikipedia , lookup

Frame fields in general relativity wikipedia , lookup

Four-vector wikipedia , lookup

Transcript
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.
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!)
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
the information that
relates orientation of
Framerem to Frame Local
(This is called R the
rotational Submatrix)
N vector projects
the Xrem Axis to
the Local
Coordinate
System
nx
ny
nz
0
ox ax dx
oy ay dy
oz az dz
0 0 1
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
Defining the Homogeneous Transformation
Matrix
• This matrix is a transformation
tool for space motion!
Perspective
or Projection
Vector
nx
ny
nz
0
ox ax dx
oy ay dy
oz az dz
0 0 1
Scaling
Factor
HTM – A Physical Interpretation
1.
2.
3.
A representation of a Coordinate Transformation
relating the coordinates of a point ‘P’ between 2 likegeometrid (-- ie SO3 --) different coordinate systems
A representation of the Position and Orientation
(POSE) of a transformed coordinate frame in the
“space” defined by a fixed coordinate frame
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
• 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)
Solving:
• H. Transformation Matrix is:
1
0
1
T0 =
0
0
• Point A1
0
1
0
0
to
1
0
0
0
0
1
0
0
T1A =
0 12
0 35
1 45
0 1
‘1 space’:
0
0
1
0
2
7
3
1
The solution
of where A1 is
in Frame0 is
the product
of these two
matrices!
Solution is given by:
1
T01· T1A = 0
0
0
Hey, This works!
same answer)
0 0 14
1 0 42
0 1 48
0 0 1
(we got the
-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  about the Z0 axis of ‘Local’ Frame0
After Rotation we find this Relationship
Y0
Y1
P1
X1


O0,O 1
Z0,Z 1
X0
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  x  i1  y  j1  z  k1
p
1
p
1
p
1
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

y  i1  j0


z  i1  k0
p
0
p
0
p
0
x
j1  i0
j1  j0
j1  k0
k1  i0  x

k1  j0 y


k1  k0  z
p
1
p
1
p
1
Psst:This is a R matrix!
Converting it to a HTM Form (4x4)
p
0
p
0
p
0
x
y
z
1
 Cos
 Sin

 0

 0
 Sin
Cos
0
0
0 0  x1p

p
0 0 y1

1 0  z1p

0 1 1
For the Dot (inner) Product:
a  b  a  b  Cos ( (a  b))
i1  i0  1 1  Cos(360   )
where:
Cos(360   )  Cos(360) * Cos  Sin(360) * Sin
 Cos
thus:
i1  i0  Cos
similarly for all other Dot Terms
Vector of origin1
to orgin0 is
(0,0,0) – they are
the same point!
Lets See?
 is 37deg and P1 is (2,4,6)
• Cos = 0.799
• Sin = 0.602
 0.799 0.601
 0.601 0.799

0
 0

0
 0
• HTM is:
• Model is:
 0.799 0.601

y0p  0.601 0.799

p
0
z0  0

0
1  0
x0p
0 0
0 0

1 0

0 1
0 0  2 .806
0 0  4 4.398

1 06
6

0 11
1
Computation is just like we observed physically!
What about Pure Rotation about X or Y Axes?
• Uses the same Inner Product approach
(Cosines of angles between vectors after
rotation)
• Trotx =
• Troty =
0
1
0 Cos

0 Sin

0
0
 Cos
 0

  Sin
 0

0
 Sin
Cos
0
0
Sin
1
0
0 Cos
0
0
0
0

0

1
0
0

0
1
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?
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
Check Order issue:
• 1st Translate (4,0,0) then rotate 90 about
Z axis
• Its almost like drawing a cat!
Given P2 (1,1,0)2 Where is it in Space0?
•
Lets Guess it is found by applying an (overall) Transformation given
by:
2
T0  TA  TB
1
0
T02  
0
0

0
1
T02  
0
0

0 0 4  0 1
1 0 0  1 0

0 1 0  0 0
0 0 1  0 0
1 0 4 
0 0 0

0 1 0
0 0 1 
0 0
0 0

1 0
0 1 
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
1 0

0 0
0 0

0 4   1   3
0 0  1  1 
    
1 0   0  0
0 1  1  1
They are equal! (so its a good model!)
Check Order issue:
• Rotate then Translate
• Should be different physically!
• Lets See
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
1 0
T02  
0 0
0 0

0 0  1
0 0 0

1 0 0
0 1  0
 0 1
1 0
T02  
0 0
0 0

0 0
0 4

1 0
0 1 
0 0 4
1 0 0

0 1 0
0 0 1 
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
1 0

0 0
0 0

0 0  1  
1 
0 4  1  (1  4)  5
   

1 0  0 
0


0 1  1  
1

They are equal! (so its a good model!)
Checking Case Two
• Here we don’t redefine space between
operations
• That is, all operations are taken WRT a fixed
coordinate system
First, Lets Try Translate/Rotate
This 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!
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!
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 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
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
Robot Mapping:
Note: Drill not
shown, (the
Tool frame is
actually
located at the
drill tip!)
n
0
Tool
Ho
R
P
Ta
Ce
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.
•
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 kinematic chain
(of HTM’s) – our 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’
Hey – Order matters in
the Case 1 Scheme!
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 on 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 = T0n
• This T0n would contain the data we need to
solve the IKS (joint positioning) equations for
any Robot type!
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!)
 nx

 ox

 ax

 0
ny
nz
oy
oz
ay
az
0
0
  n  d 

  o  d 

  a  d 

1

This is the Transpose
of the R 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 (posted at
library reserve)
– Approach problem 18 as a Mapping Problem
– submit it for grading next Friday