ROBOTICS An Introduction

advertisement
DIFFERENTIAL
KINEMATICS
Purpose:
The purpose of this chapter is to introduce you to robot motion.
Differential forms of the homogeneous transformation can be
used to examine the pose velocities of frames. This method will
be compared to a conventional dynamics vector approach. The
Jacobian is used to map motion between joint and Cartesian
space, an essential operation when curvilinear robot motion is
required in applications such as welding or assembly.
ME 537 - Robotics
ME EN 537 - Robotics
In particular, you will
1. Review the differential transformation.
2. Consider the screw velocity matrix.
3. Relate differential transformations to different coordinate
frames.
4. Use differential transformations to determines velocities in
frames.
5. Determine the Jacobian for serial robots using Waldron’s
method.
6. Determine the Jacobian for parallel robots.
7. Examine robot singularities.
ME 537 - Robotics
ME EN 537 - Robotics
Differential
transformations
T'
T
Now if we have a frame T relating a set of axes (primed axes) to
global or base axes, then a small differential displacement of
these axes (dp, dq = dq k) relative to the base axes results in a
new frame T' = T + dT = H(dq, dp) T. Although finite rotations
can't be considered vectors, differential (infinitesimal)
rotations can, thus dq = dq k. Thus, the form of dT can be
expressed as
dT = (H(dq, dp) - I) T = D T
ME 537 - Robotics
ME EN 537 - Robotics
(in base frame)
Differential
transformations
T'
T
Displacements made relative to the primed axes ( dp, dq
expressed in primed axes) change the form of dT to
dT = T (H(dq, dp) - I) = T TD
ME 537 - Robotics
ME EN 537 - Robotics
(in primed frame)
Differential transformations
Since dT = DT = T TD , we can relate the differential
transformation in either frame, given the other, as
D = T TD T-1
or
TD=
T-1 D T
Letting sin(dq)  dq, cos(dq)  1, the form of D (or TD ) can be
shown to be
 0
 k dq
D (dθ, dp)   z
 - k y dq
 0

- k z dq
0
k x dq
0
ME 537 - Robotics
ME EN 537 - Robotics
k y dq
- k x dq
0
0
dp x 
dp y 

dp z 
0 
Screw velocity matrix
In the case of pure rotation, the differential transformation,
depicted by D (or TD ), reduces to a screw rotation about the
unit vector k. Taking the derivative of the matrix we get the
screw (angular) velocity matrix:
 0
 
z


 - y
 0

- z
0
x
0
ME 537 - Robotics
ME EN 537 - Robotics
y
- x
0
0
0
0

0

0
Differential transformations
Given the relations
D = T TD T-1
or
TD=
T-1 D T
we can relate the differential transformations relative to the
base frame or relative to the offset frame T where T is known
as
a
b
c
p
ax bx cx px
ay by cy py
T = az bz cz pz
0
0
0
1
ME 537 - Robotics
ME EN 537 - Robotics
Differential transformations
Define the differential rotations and translations relative to the
base frame by
d = dx I + dy J + dz K
d = dx I + dy J + dz K
where
dx = dqx
dx = dpx
dy = dqy
dy = dpy ...giving ...
dz = dqz
dz = dpz
ME 537 - Robotics
ME EN 537 - Robotics
0
-dz
dy
dx
dz
0 - dx
dy
D = -dy
0
dx
0
0
0
dz
0
Differential transformations
Define the differential rotations and translations relative to the
offset frame by
d’ = dx’ i + dy’ j + dz’ k
d’ = dx’ i + dy’ j + dz’ k
It can be shown (see notes) that the differential displacements
in the offset frame can be related to those in the base frame by
dx' = d · a = dT a
dy' = d · b = dT b
dz' = d · c = dT c
dx' = d · (p x a) + d · a
dy' = d · (p x b) + d · b
dz' = d · (p x c) + d · c
ME 537 - Robotics
ME EN 537 - Robotics
Velocities
Vector w can be resolved into components p in the base frame
by the equation p = T w. Now under a small displacement,
frame T can be expressed by the new frame
T' = T + dT = T + ∆T
A vector w in frame T, once perturbed, can be located globally
z
w
by p' such that
p' = (T + DT) w
T
y
x
z'
w
T'
The delta move, p' - p, becomes
y'
p'
p' - p = (T + DT) w - T w = DT w
x'
Y
X
ME 537 - Robotics
ME EN 537 - Robotics
p
Z
Velocities
Dividing by Dt and taking the limit as Dt 0 (take derivative),
we determine the velocity in the base frame:
where
v  Δ Τ w
 0  k z θ k y θ p x 
 0
 
 
 p 
k
θ
0

k
θ
z
  z
x
y  
Δ
 - y
- k y θ k x θ
0 p z 
 0
 0

0
0
0


ME 537 - Robotics
ME EN 537 - Robotics
- z
0
x
0
y
- x
0
0
vx 
vy 

vz 
0 
Example
A point P is located by vector r in
an offset frame C as shown. At
this instant the frame C origin is
being translated by the velocity vt
= 2 I + 2J m/s relative to the base
frame. The frame is also being
rotated relative to the base frame
by the angular velocity  = 2
rad/s K where I, J, K are the unit
vectors for the base frame.
y
r
p
Y
P (3,5,0) relative
to frame C
Frame C
O
(2,3,0)
r
2 rad/s
X
Determine the instantaneous velocity of point P using both the
conventional vector dynamics approach and the differential
methods in this chapter.
ME 537 - Robotics
ME EN 537 - Robotics
x
Example: conventional solution
v = vo +  x r
y
where vo = vt +  x r. At this
instant note that frame C is
aligned with the base frame so
that the unit vectors are parallel.
r
p
Y
P (3,5,0) relative
to frame C
O
(2,3,0)
r
It can be shown that  x r = -6I +
4J so that
vo = 2 I + 2 J -6 I + 4 J
= -4 I + 6 J m/s
2 rad/s
X
It can be shown that  x r = -10 I + 6 J, so that
v = -4 I + 6J -10 I + 6 J = -14 I + 12 J m/s (answer)
ME 537 - Robotics
ME EN 537 - Robotics
Frame C
x
Example: differential solution
Apply
v  Δ Τ w
where w = r and
. 0
Δ  2
0
0
2
0
0
0
0
0
0
0
2
2
0
0
1
Τ  0
0
0
0
1
0
0
0
0
1
0
2
3
0
1
 14
12
to give v   0  m/s


 0 
Note that the same values are obtained!
ME 537 - Robotics
ME EN 537 - Robotics
Jacobians - serial robots
The Jacobian is a mapping of differential changes in one space
to another space. Obviously, this is useful in robotics because
we are interested in the relationship between Cartesian
velocities and the robot joint rates.
ME 537 - Robotics
ME EN 537 - Robotics
Jacobians - serial robots
If we have a set of functions
yi = fi(xj)
i = 1,..,m
;
j = 1,..,n
then the differentials of yi can be written as
n
δyi  
j1
f i
δx j
x j
i = 1, . . .m
 f i 
or in matrix form, dy = J dx, where J = Jacobian = 

 x j 
ME 537 - Robotics
ME EN 537 - Robotics
Jacobians - serial robots
In the field of robotics, we determine the Jacobian which relates
the TCF velocity (position and orientation) to the joint speeds:
V  J q
 . 
q1 

V    J (q)  . 
 v 
.
q 
 m
where
v = TCF origin velocity
 = orientation angular velocity (equivalent Euler angles, etc.)
q = joint velocities (joint rotational or translation speeds)
ME 537 - Robotics
ME EN 537 - Robotics
Jacobians - serial robots
Waldron in the paper "A Study
of the Jacobian Matrix of Serial
Manipulators", June, 1985,
ASME Journal of Mechanisms,
Transmissions, and Automation
in Design, determines simple
recursive forms of the Jacobian,
given points on the joint axes (ri)
and joint direction vectors (ei)
for the joint axes
ME 537 - Robotics
ME EN 537 - Robotics
r1
rn
P
en
Joint n
ri
r i+1
ri
ei
e1
Joint 1
e i+1
Joint i+1
Joint i
Jacobians - serial robots
The velocity of point P, a point on
some end-effector, can be
determined by
n
en
r1
.
v  q ei x ri
ri
ei
and also reduced to the form
v   i x r i
Joint n
e1
Joint 1
i1
where i is the absolute angular
velocity of link i and ri is the position
vector between joint axes i+1 and i :
ME 537 - Robotics
ME EN 537 - Robotics
r i+1
ri
i1
n
P
rn

i   q je j
i
j 1
e i+1
Joint i+1
Joint i
Jacobians - serial robots
The Jacobian is determined by
collecting the velocities for each
joint into the form:
en
r1
ei
J=
e i x ri
Joint n
ri
r i+1
ri
ei
and the velocity relationship
becomes:
"R"
"P"
 ei



V

 v  e i x ri
P
rn
0 
q

ei 
ME 537 - Robotics
ME EN 537 - Robotics
e1
Joint 1
e i+1
Joint i+1
Joint i
Jacobians - serial robots
Given the Jacobian, what are we really interested in
calculating for tasks like seam welding, painting, etc.?
q=
-1
J V
Note that J-1 only exists for a six-axis robot. Robots with less
than 6 joints map the joint space into a subspace of Cartesian
space.
ME 537 - Robotics
ME EN 537 - Robotics
Jacobians and Singularities
The case where J-1 loses full rank, i.e., det (J) = 0 is
referred to as a singularity. Previously we have
introduced the robot redundancy.
The picture shows a
singularity occurring.
Can you explain the
problem?
ME 537 - Robotics
ME EN 537 - Robotics
Singularities
Near a singularity the
mechanism loses mobility
in one or more directions.
These directions are
degenerate directions.
ME 537 - Robotics
ME EN 537 - Robotics
Nearness to Singularities
The Jacobian determinant can always be expanded into the form
|J| = s(q) = s1(q) s2(q)…sk(q)
If one or more si(q) = 0, then we are at one or more singular
configurations. If any si(q) are small then we are near singular
configuration(s). Joint rates will increase near singularities.
ME 537 - Robotics
ME EN 537 - Robotics
Nearness to Singularities
The Jacobian can also be decomposed into the following form
by Singular Value Decomposition (SVD)
J = U S VT
where U is a matrix of basis vectors in Cartesian Space, VT is a
matrix of basis vectors in joint space, and S is a diagonal matrix
of singular values that decrease down the diagonal. When the
diagonal singular values approach zero the mechanism
approaches singular configurations. Methods for computing
SVD are computationally expensive.
ME 537 - Robotics
ME EN 537 - Robotics
How do we work around singularities?
By tooling design and work placement
By robot designs
By changing to joint space motion around the
singularity
By slowing down Cartesian motion near
singularity, if feasible
By planning paths carefully near singularity,
if feasible, perhaps allowing path deviation.
ME 537 - Robotics
ME EN 537 - Robotics
Differential motion summary
1.
Differential forms can calculate velocities of frames and be simpler to
apply than the conventional vector equations.
2.
Jacobian is important in robotics because the robot is controlled in
joint space, whereas the robot tool is applied in physical Cartesian
space. Unfortunately, motion in Cartesian space must be mapped to
motion in joint space through an inverse Jacobian relation. This
relation might be difficult to obtain and many robots have singular
configurations that must be avoided.
The equations for the Jacobian are easy to determine for a robot, given
the current robot configuration, as outlined by Waldron et. al in the
paper "A Study of the Jacobian Matrix of Serial Manipulators", June,
1985, ASME Journal of Mechanisms, Transmissions, and Automation in
Design.
3.
ME 537 - Robotics
ME EN 537 - Robotics
Jacobians - parallel robots
Let us define two vectors:
x is a vector that locates the moving platform
q is a vector of the n actuator joint values.
In general the number of actuated joints is equal to the
degrees-of-freedom of the robot.
The kinematics constraints imposed by the limbs will lead to a
series of n constraint equations:
f(x,q) = 0
ME 537 - Robotics
ME EN 537 - Robotics
Eqn (4.42) in notes
Inverse kinematics for picker robot
Expressing the previous limb vector loop equation in the limb i
coordinate frame, we get the matrix equations: in terms of the
limb vector c shown by the green vector in the figure:
a cq1i  b sq 3i c(q1i  q 2i )  c xi 

  c yi 
b cq 3i

  
a
s
q

b
s
q
s(
q

q
)
 c zi 
1i
3i
1i
2i 

ci
c xi   c i s i 0 p x  h - r 
c   - s c 0 p    0 
 yi   0 i 0 i 1  y   0 

 p z  
 c zi  
ME 537 - Robotics
ME EN 537 - Robotics
Jacobians - parallel robots
We can differentiate (4.42) with respect to time to generate a
relationship between joint rates and moving table velocities:
J x  J q
x
q
where Jx = f/x and Jq = - f/q. Thus, the Jacobian equation
can be written in the form
q  J x
where J = Jq-1 Jx. Note that the equation is already in the
desired inverse form, given that we can determine Jq-1 and Jx.
ME 537 - Robotics
ME EN 537 - Robotics
Singularity conditions - parallel robots
A parallel manipulator is singular when either Jq or Jx or
both are singular. If det(Jq) = 0, we refer to the singularity as
an inverse kinematics singularity. This is the kind of
singularity where motion of the actuation joints causes no
motion of the platform along
certain directions. For the
picker robot this occurs when
the limb links all lie in a plane
(q2i = 0 or p) or when upper
arm links are colinear
(q3i = 0 or p).
ME 537 - Robotics
ME EN 537 - Robotics
Singularity conditions - parallel robots
If det(Jx) = 0, we refer to the
singularity as a direct kinematics
singularity. This case occurs for the
picker robot when all upper arm
linkages are in the plane of the
moving platform. Note that the
actuators cannot resist any force
applied to the moving platform in
the z direction
ME 537 - Robotics
ME EN 537 - Robotics
Jacobian for the picker robot
Referring to the figure
OP + PCi = OAi + AiBi + BiCi
(4.37)
to close the vector from the base
frame to the center of the moving
platform. We obtain the equation
vp = 1i x ai + 2i x bi
for the velocity of the moving platform at point P and where ai
= AiBi and bi = BiCi.
ME 537 - Robotics
ME EN 537 - Robotics
Jacobian for the picker robot
The term 2i x bi is a function of the non-actuated joints. We
can eliminate these joints from the equation by dot multiplying
by bi (and using the scalar triple product permutation) to get
bi  vp = 1i  (ai x bi)
ME 537 - Robotics
ME EN 537 - Robotics
Jacobian for the picker robot
ME 537 - Robotics
ME EN 537 - Robotics
Jacobian for the picker robot
We can assemble these terms into equations for each limb by
the matrix equation:
Jx vp = Jq q
where
 j1x j1y j1z 
j j j 
Jx =  2x 2y 2z 
 j3x j31y j3z 
0
0 
sq21sq31
sq22sq32
0 
and Jq = 0

0
0
s
q
s
q
23
33 

Since Jq is diagonal, it is easy to determine the joint rates
given the desired Cartesian velocity of the tool point.
ME 537 - Robotics
ME EN 537 - Robotics
Jacobian summary
1. The Jacobian in robotics is particularly important because
it represents the rate mapping between joint and Cartesian
space. Unfortunately, for serial robots the desire is to
determine the joint rates to get desired motion in
Cartesian space as the tool is moved along some line in
space. This usually requires the inverse of the Jacobian,
which may be difficult for some mechanisms.
1. The Jacobian for parallel robots may be easier to find, as is
the case for the Picker robot.
ME 537 - Robotics
ME EN 537 - Robotics
Download