Professional Documents
Culture Documents
Diff Motion Jacobian Part1 S06
Diff Motion Jacobian Part1 S06
Slide Series 6
R. R. Lindeke, Ph.D.
Lets develop the differential Operator –
bringing calculus to Robots
We can define a
General Rotation of a
Kx i
vector K:
K Ky j
K z k
By a general matrix
defined as: Rot ( X , x ) Rot (Y , y ) Rot (Z , z )
These Rotation are given as:
1 0 0 0
0 Cos ( ) Sin( ) 0
Rot ( X , x ) x x
0 Sin( x ) Cos ( x ) 0
0 0 0 1
But lets remember for our purposes that this angle
is very small (a ‘tiny rotation’) in radians
If the angle is small we can have use some
simplifications:
Cos small 1 Sin small small
Substituting the Small angle
Approximation:
1 0 0 0
0 1 x 0
Rot ( X , x )
0 x 1 0
0 0 0 1
1 z y 0
1 x 0
Gen.Rot z
y x 1 0
0 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 z y dx
General ‘Tiny Motion’ is x dy
1
then (including both Rot. Gen _ Movement z
and Translation): y x 1 dz
0 0 0 1
So using this idea:
1 z y dx
1 x dy
T z T T
y x 1 dz
0 0 0 1
Factoring T (on the RHS)
1 z y dx 1 0 0 0
z 1 x dy
0 1 0 0
T
T
y x 1 dz 0 0 1 0
0 0 0 1 0 0 0 1
Further Simplifying:
0 z y dx
0 x dy
T z T
y x 0 dz
0 0 0 0
dT (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 HTM’s!
Lets look into an application:
Given:
1 0 0 3
0 1 0 5
T0n curr
0 0 1 0
0 0 0 1
Y0
Here:
Rinit = (32 + 52) .5 =
Yn 5.831 units
init = Atan2(3,5) =
Xn
R 1.0304 rad
X0
Where is the Frame n after one time
step?
Considering 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 = 1.0304 + 0.001 = 1.0314 rad
1 0 0 3 0 .001 0 .0048
0 1 0 5 .001 0 0 .003
Tnew Tinit Tinit
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
1 .001 0 2.9952
.001 1 0 5.003
0 0 1 0
0 0 0 1
Comparing:
1 .001 0 2.9952
Approximate: .001 1 0 5.003
Tnew
0 0 1 0
0 0 0 1
Realistically these are all but equal but using the ‘del’
approximation, but finding it was much easier!
We can (might!) use the ‘del’ approach
to move a robot in space:
dy d o d
w.r.t. (any) Tspace:
T
p o
T
dz d a d p a
x n
T d, n, o & a vectors
are extracts from the
Angular effects wrt Tspace:
T Matrix
T
y o dp is the translation
vector in
T
z a is the rotational
effects in
Subbing into a ‘del’ Form:
0 z
T T
y T
dx
T
z 0 x
T T
dy
T
T
y T
x 0 T
dz
0 0 0 0
An Application of this issue:
Camera
R
TRpart TCamPart
PART
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
WC to the robot, so we need part motion “del”
in the robot’s space.
This is a Motion “Mapping” Issue:
Pa R WC Ca Pa
Pa R C Pa
Pa R WC Ca Pa
Knowns:
C
Robot in WC
Camera in WC
And of course Part in Camera (But we don’t need it for
now!)
Lets Isolate the “Middle”
R WC Ca
R C
R WC Ca
R
TR 1
WC T
Cam
WC
Cam
T
WC T
Cam 1 R
WC
Rewriting into a Standard Form:
1st: (TwcCam)-1*TWCR = “T”
Then these Scalars:
R
dx d n d p n
R
dy d o d p o
WHERE:
dz d a d
d, n, o & a vectors are R
extracts from the “T” Matrix p a
above
in Cam
y o
R
Fundamentally:
D J Dq
and, If it 'exists' we can define the
1
Dq J D
In This Model, Ddot & Dq,dot are:
x
y
D z ; Cartesian Velocity
x
y We state, then, that the
Jacobian is a mapping
z
tool that relates
q1 Cartesian Velocities (of
q2 the n frame) to the
q
Dq 3 ; Joint Velocity
movement of the
q4 individual Robot Joints
q5
q
6
Lets build one from ‘1st Principles’ –
Here is a Spherical Arm:
Z0
R
Lets start with only
linear motion ----
equations are
straight forward!
Y0
X0
Writing the Position Models:
Z = R*Sin()
X = R*Cos()*Cos()
Y = R*Cos()*Sin()
dz
dt
R
t
Sin R ( Sin )
t
S R RC
To find velocity, differentiate
these as seen here: dx
dt
R
t
C C RC (C )
t C
RC
t
C C R RC S RC S
dy
dt
R
t
C S RS (C )
t S
RC
t
C S R RS S RC C
Writing it as a Matrix:
X RC S
RC S C C
Y RC C RS S S C
0 RC S
Z R
This is the Jacobian; It is built as the Matrix of
partial joint contributions (coefficients of the
velocity equations) to Velocity of the End Frame
Here we could develop an Inverse
Jacobian:
y '2 x 0 x
R R '2
zx zy '
R 2 y
'
2
R' R2 R
R R
R x y z z
R R R
R x y
' 2
2 .5
It was formed by taking
the partial derivatives of
the IKS equations
The process we just did is limited to finding Linear Velocity!
… and We need both linear and angular velocities for full
functioned robots!
A Cartesian Velocity
Term V0n: x
0 J v Dq
n
y V
z
An Angular Velocity x
Term 0n: n J D
y 0 q
z
We follow 3 stipulations:
Velocities can only be added if they are defined in the
same space – as we know from dynamics
Motion of the end effector (n frame) is taken w.r.t. the
base space (0 frame)
Linear Velocity effects are physically separable from
angular velocity effects
To address the problem we will consider
moving a single joint at a time (using DH
separation ideas!)
Lets start with the Angular Velocity (!)
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:
ki1 qi Zi1 qi
i
i 1
ki1 qi Zi1 qi
i
i 1
n
i Z i 1 qi
n
0 Note Zi-1 for
Jointi – per DH
i 1
algorithm!
i 1 (revolute joint)
i 0 (prismatic joint)
As stated previously, Zi-1 is the 3rd col. of A1*…Ai-1 (rows
1,2 & 3). And we will have a term in the sum for each joint
Going Back to the Spherical Device:
0n 1 Z 0 1 Z1 0
we state: 0 J D q
n
Therefore:
0 Here, Z1 depends
Z 0 0 on the Frame
1 Skeleton drawn!
Building the Linear Jacobian
n
d 0 is linear velocity of the end frame wrt the base
n
d0
n
d 0
n
qi
i 1
qi
d n
Jv
0
qi i 1 to n
Building the Linear Jacobian – for
Prismatic Joints
This is the
directional
resultant (DR)
vector given by:
Zi-1 X di-1n
[with Magnitude
equal to joint
speed!]
Summarizing:
– The Jv is a 3-row by n columned matrix
– Each column is given by joint type:
Revolute Joint: Zi-1 X (On – Oi-1)
Prismatic Joint: Zi-1
And notice: select Zi-1 and Oi-1 for the frame before the
current joint column
Combining Both Halves of the
Jacobian:
J v Zi 1 On Oi 1
J
J
Zi 1
For Prismatic Joints:
J v Zi 1
J
J 0
What is the Form of the Jacobian?
Z Z1 Z 2 O6 O2 Z 3 O6 O3 Z 4 O6 O4 Z 5 O6 O5
J 0
0 0 Z2 Z3 Z4 Z5
X2
Y1
d3 Z0
Z0
Z1 Y2
2 Z2
Y0 Y0
X1
X0
X0
1
Xn
The robot indicates
this frame skeleton: Yn
Zn
Lets try this on the Spherical ARM we
did earlier:
LP Table:
Fr Link Var d a C S C S
0→1 1 R 1 0 0 90 0 1 C1 S1
2→n 3 P 0 d3 0 0 1 0 1 0
Lets try this on the Spherical ARM we
did earlier:
Ai’s: C1 0 S1 0
S1 0 C1 0
A1
0 1 0 0
0 0 0 1
S 2 0 C2 0
C2 0 S2 0
A2
0 1 0 0
0 0 0 1
1 0 0 0
0 1 0 0
A3
0 0 1 d3
0 0 0 1
Lets try this on the Spherical ARM we
did earlier:
Z 0 O3 O0 Z1 O3 O1 Z 2
J
Z0 Z1 0
Lets try this on the Spherical ARM we
did earlier: THE JACOBIAN
S1 d3C1C 2 0
Z1 O3 O1 C1 d3S1C 2 0
0 d3 S 2 0
d3C1S 2
d S1S 2
3
d3C 2
After total Simplification, THE Full
JACOBIAN is: