Slide Series 6
R. R. Lindeke, Ph.D.
Considering motion:
K x i
K Ky j
K z k
We can define a
General Rotation of a
vector K:
By a general matrix
defined as:
Rot ( X , x )gRot (Y , y )gRot ( Z , z )
Rot ( X , x )
0 Sin( x ) Cos ( x ) 0
0
0
1
0
0 0
0
x
1
0
0
0
0 y
1 0
0 1
0 0
0
0
z
1
0
0
Rot ( Z , z )
0 0
0 0
1 0
0 1
z
1
x
0
Gen.Rot
1
z
y 0
x 0
1 0
0 1
We define it as a matrix:
1 0 0 dx
0 1 0 dy
Trans (dx, dy , dz )
0 0 1 dz
0
0
0
1
1
Gen _ Movement z
y
z
1
x
0
y
x
1
0
dx
dy
dz
x
0
T T
1
z
y
x
1
0
dx
dy
T
dz
1
T z
y
z
1
x
0
y
x
1
0
dx
dy
T T
dz
1 z
z
1
T
y x
0
0
y
x
1
0
dx
dy
dz
1 0 0 0
0 1 0 0
T
0 0 1 0
0 0 0 1
Further Simplifying:
z
x
0
0
z
y
x
0
0
dx
dy
T
dz
(T) = T
Where: = {[Trans(dx,dy,dz)*Rot(K,d)] I}
Thus we see that this operator is analogous
to the derivative operator d( )/dx but now
taken with respect to HTMs!
Given:
T0n curr
1
0
0
1
0
0
0
0
1
0
3
5
Graphically:
Here:
Rinit = (32 + 52) .5 =
5.831 units
init = Atan2(3,5) =
R
1.0304 rad
Position:
Effect of Translation:
X=3.0002
and Y = 5.000
New Rf = (3.00022 + 5.02).5 = 5.83105 u
Effect of Rotation
fin
Considering
Orientation:
Cos (V )
r
n Sin V
.9999995
.000999998
Sin V
.000999998
r
o Cos V .9999995
0
0
0
r
a 0
1
.9999995 .000999998
.000999998
.9999995
Tnew
0
0
0
0
0 2.99505
0 5.00309
1
0
0
1
Where:
dT Tinit
0 .001
.001
0
0
0
0
0
0 .001
.001
0
0
0
0
0
0 .0048
0 .003
0
0
0
0
0 .0002 1 0
0
0 0 1
0
0 0 0
0
0 0 0
0
0
1
0
3
5
0 0 0
.001 0 2.9952
1
.001
1
0 5.003
0
0
1
0
0
0
0
1
3
5
.001 0 .0048
.001
0
0 .003
0
0
0
0
0
0
0
0
Comparing:
Exact:
Approximate:
Tnew
0
0
1
0
0
0
0
1
.001
1
.001
1
Tnew
0
0
0
0
0 2.9952
0 5.003
1
0
0
1
Realistically these are all but equal but using the del
approximation, but finding it was much easier!
(1)
dT = T
dT = TT (2)
Here T implies motion w.r.t. itself a moving frame but could be
motion w.r.t. any other non-inertia space (robot or camera, etc.)
effects in
z
T
y
0
x
0
y
T
x
0
0
T
dx
T
dy
T
dz
0
T
TRpart
TCamPart
TWCR
If the Part is moving along a conveyor and
we measure its motion in the Camera
Frame (let the camera measure it at
various times) and we would need to pick
the part with the robot, we must track wrt
to the robot, so we need part motion del
in the robots space.
Pa
WC Ca
R
WC Ca
Pa
C
Pa
Pa
Knowns:
C
Robot
in WC
Camera in WC
And of course Part in Camera (But we dont need it for now!)
WC
Ca
WC
Ca
g T g
R 1
WC
Cam
WC
Cam
g T
g T
Cam 1
WC
R
WC
= (B-1*A)-1 (1)
Or B-1*A = (A-1*B)-1 (2)
If,
as A and TWCR as B,
Then,
Continuing:
is given by simplifying:
1st: (TwcCam)-1*TWCR = T
uuuuu
r uur r
dx g d n d p gn
uuuuu
r uur r
R
dy g d o d p go
u
u
u
u
u
r
u
u
r
r
R
dz g d a d p ga
r
R
x gn
r
R
y go
r
R
z ga
R
Fundamentally:
g
D J Dq
and, If it 'exists' we can define the
Inverse Jacobian as:
g
Dq J D
x
g
y
g
z ; Cartesian Velocity
x
y
z
g
q1
g
q 2
g
q3
; Joint Velocity
g
q4
g
q5
g
q6
Dq
Z = R*Sin()
X = R*Cos()*Cos()
Y = R*Cos()*Sin()
dz
dt
Sin R ( Sin )
dt
S R RC
dx
C C RC (C )
g
C C R RC S RC S
dy
dt
R
g
C S RS (C )
g
C
t
RC
C S R RS S RC C
S
t
RC
Writing it as a Matrix:
g
X
RC S
g
RC C
Y
0
Z
RC S
RS S
RC
C C
g
S C
S g
R
'2
g
zx
'
2
R
x
R
R
R x y
'
x
zy
R '2
R' R2
0 xg
g
'
R 2 y
R
g
z z
R
2 .5
A Cartesian Velocity
Term V0n:
g
x
g
g
n
y V0 J v Dq
g
z
An Angular Velocity
Term 0n:
x
n J Dg
0
q
y
z
follow 3 stipulations:
Velocities
To
Considering any joint i, its Axis of motion is: Zi-1 (Z in Frame i-1)
The (modeling) effect of a joint is to drive the very next frame (frame i)
If Joint i is revolute:
i
i 1
ki 1 gqi Z i 1 gqi
i
i 1
ki 1 gqi Z i 1 gqi
i Z i 1 qi
n
0
i 1
i 1 (revolute joint)
i 0 (prismatic joint)
we state:
n
0
Therefore:
J gD q
uur uu
r
J Z 0 Z1
and (always):
0
uur
Z0 0
1
r
0
Here, Z1 depends
on the Frame
Skeleton drawn!
d 0n g
d
gq i
qi
i 1
g
n
0
Jv
n
0
q
i i 1 to n
This
Zi-1 X di-1n
[with Magnitude
equal to joint
speed!]
Note the Green
Vector is equal to
the red DR vector!
X (On Oi-1)
Where:
Zi-1 is
Oi-1
On
NOTE
Prismatic
Joint: Zi-1
And
notice: select Zi-1 and Oi-1 for the frame before the
current joint column
J v
J
u
r
uu
uu
uruuuuu
uu
uruuuuuuuuuu
ru
Z i 1 On Oi 1
uuur
Z i 1
J v
J
J
uuur
Z i 1
r
0
Z1
0
Z 2 O6 O2
Z2
Z 3 O6 O3
Z3
Z 4 O6 O4
Z4
Z 5 O6 O5
Z5
d3
2
1
Link
Var
01
90
C1
S1
12
2+90
90
-S2
C2
2n
d3
Ais:
C1 0 S1
S1 0 C1
A1
0 1 0
0 0 0
S 2 0 C 2
C2 0 S2
A2
0
1 0
0 0
0
1 0 0 0
0 1 0 0
A3
0 0 1 d3
0
0
0
1
0
0
1
0
0
T1 = A1!
T2 = A1 * A2
T0n = T3 = A1*A2*A3
C1S 2 S1 C1C 2
S1S 2 C1 S1C 2
T2
C2
0
S2
0
0
0
0
0
T0n T 3
C2
0
S2
d3S 2
0
0
0
1
Z 0 O3 O0
Z0
Z1 O3 O1
Z1
Z 2
r
0
Here:
d3C1C 2
0
Z 0 O3 O0 0 d3S1C 2
1
d3 S 2
d3 S1C 2
d C1C 2
3
0
0
0
d3C1C 2
S1
Z1 O3 O1 C1 d3S1C 2
0
d3 S 2
d3C1S 2
d S1S 2
3
d 3C 2
0
0
0
0
d3C 2
S2
J
0
S1
0
0
C1
0
1
0
0