Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
half-angle
substitution
using
an
t tan
2
i.e. the tangent of half of the unknown angle , we need to derive cos and sin as functions of
parameter t. This derivation requires the trigonometric sum of angles formulae.
cos( a b ) cos a cos b sin a sin b
sin( a b ) sin a cos b cos a sin b
Multiplying by a 1, i.e. cos 2 over itself yields:
2
cos 2 sin 2
2
2 cos 2 1 tan 2 cos2
cos
2
2
2
cos2
2
The cosine squared term can be divided by another 1, i.e. cos 2 sin 2 1 .
2
2
cos 2
cos 1 tan 2
2 cos 2 sin 2
2
2
cos 1 tan 2
2 1 tan 2
Remembering the earlier definition for t, this result is the first derivation we need, i.e.:
cos
1 t2
1 t2
sin
2 cos 2 2 tan cos 2
sin 2
2
2
2
cos
2
From the first derivation we learned:
1
cos 2
2 1 tan 2
2
sin 2 tan
2 1 tan 2
Remembering the earlier definition for t, this result is the second derivation we need, i.e.:
sin
2t
1 t 2
The tangent half-angle substitution can also be derived using a graphical method as in the figure
below.
arises often in the position solutions for mechanisms and robots. It appeared in the 1 solution of the
Inverse Pose Kinematics solution for the planar 3R robot in the ME 4290/5290 NotesBook and was
solved using the tangent half-angle substitution.
Next we present an alternative and simpler solution to this equation. We make two simple
trigonometric substitutions based on the figure below.
cos
sin
E2 F 2
E
E F
2
F
E2 F 2
E 2 F 2 and rearrange:
cos
F
E F
2
sin
G
E2 F 2
G
E2 F 2
Applying the sum-of-angles formula cos(a b) cos a cos b sin a sin b yields:
cos( )
G
E2 F 2
2
2
E F
1,2 cos1
where
tan 1
E
and the quadrant-specific inverse tangent function atan2 must be used in the above expression for .
There are two solutions for , indicated by the subscripts 1,2, since the inverse cosine function is
double-valued. Both solutions are correct. We expected these two solutions from the tangent-half-angle
substitution approach. They correspond to the elbow-up and elbow-down solutions (the engineer must
determine which is which) for the planar 3R robot IPK solution.
For real solutions for to exist, we must have
G
E F
2
or
G
E F2
2
If this condition is violated for the planar 3R robot, this means that the given input pose x3, y3, is
beyond the robot workspace limits.
For the planar 3R robot IPK problem we now present a second alternate solution method that
does not initially result in the equation form E cos F sin G 0 . We still square and add the XY
position equations, but without isolating the 2 terms first. Here are the original XY equations:
x3 L1 cos1 L2 cos(1 2 )
y3 L1 sin 1 L2 sin(1 2 )
Squaring and adding these equations as-is yields:
x32 L12 cos 2 1 2 L1 L2 cos 1 cos(1 2 ) L22 cos 2 (1 2 )
y32 L12 sin 2 1 2 L1 L2 sin 1 sin(1 2 ) L22 sin 2 (1 2 )
x32 y32 L12 L22 2 L1 L2 cos 1 cos(1 2 ) sin 1 sin(1 2 )
Applying the sum-of-angles formula cos(a b) cos a cos b sin a sin b yields:
cos2
sin 2 1 cos 2 2
The solution for 2 is then:
Knowing 2 in this second alternative IPK solution method, we must return to the original XY
equations and solve for 1.
where
k1 L1 L2 cos 2
k2
L2 sin 2
Now, with 2 known, these two XY equations are not independent. Notice both have the form
E cos 1 F sin 1 G 0 . We know two methods to solve this type of equation (tangent half-angle
substitution, plus the cos and sin simple trigonometric substitution). Either equation can be solved
for 1 and will yield identical results, one unique 1 for each 2 branch (elbow-up and elbow-down).
However, if we continue to use both equations, an interesting geometric interpretation will
appear. Let us make the following polar substitution, very similar to the previous cos and sin
simple trigonometric substitution (see the figure below).
k1 r cos
k2 r sin
r k12 k22
where
tan1 2
k
1
We only use the positive square root term in r and the quadrant-specific inverse tangent function atan2
must be used in the above expression for .
10
r sin(1 ) y3
r cos(1 ) x3
1 atan2( y3 , x3 )
The interesting geometric interpretation in the planar 3R IPK solution via this method is shown
in the figure below. The entire k1k2r triangle shown above is rotated with 1 (and leads 1 for the
elbow-down solution). r is the distance from the origin of fixed frame {0} to the origin of moving frame
{3}.
k2
L2
r
Y0
k1
L1
X0
y3
x3
This is why 1 was able to cancel out of the equations and leave only 2 for solving first in this
solution method. The length r from the origin of {0} to the origin of {3} is only a function of the elbow
joint angle 2 and does not depend on 1 or 3.
11
Pieper proved that if a 6-dof robot has any three consecutive joint axes intersecting, there exists a
closed-form (analytical) solution to the inverse position kinematics. The majority of industrial robots
are in this category.
In particular, many robots have a spherical wrist, i.e. three wrist actuators that rotate about a axes
intersecting in a common point. In this case, the position and orientation sub-problems may be
decoupled. We solve for the first three joints first using the position vector input. Then we solve for the
second three joints next using the given orientation, based on the orientation caused by the first three
joints. The given position vector must point to the wrist point (the shared origin point of three
consecutive wrist frames). We can always transform any end-effector or other tool vector to this origin
point, since there are no more active joints beyond the last wrist joint.
PUMA Example (without details):
60 R (1 , 2 , 3 , 4 , 5 , 6 )
0
6T
0
0
0
P6 (1 , 2 , 3 )
Joints 4, 5, and 6 cannot affect the translation of the wrist origin point.
1) Translational equations: Given
63 R( 4 ,5 , 6 ) 30 R (1 , 2 ,3 ) 60 R
4 sets of (1 ,2 ,3 ) ; 2 sets of (4 ,5 ,6 ) for each. Therefore, there are 8 overall solutions to the
inverse position problem for the PUMA. Some solution sets may lie outside joint ranges. Generally one
would choose the closest solution to the previous position.
12
We can use homogeneous transformation equations to isolate and solve for the various
unknowns in turn. I call this peeling-off homogeneous transformations matrices with unknowns to
separate variables. The approach is to multiply by the inverse component homogeneous transformation
matrices as a function of one unknown joint variable each. Below the details are not shown so you must
try this for yourself. The original FPK transform equation is the starting point for IPK, as always.
06T 01T (1 ) 21T ( 2 ) 23T ( 3 ) 34T ( 4 ) 45T ( 5 ) 56T ( 6 )
The left-hand-side 06T is a set of valid given numbers, the input to the IPK problem. Inverting
the first matrix on the left yields:
1
from which we can solve for 1 and 3. Now we invert the homogeneous transformation matrix that
combines the first three matrices in the original equation.
1
We can solve for 2 with 1 and 3 already known. This completes the solution for the arm angle joints
(1 ,2 ,3 ) , possible because the position vector 0 P6 is only a function of (1 ,2 ,3 ) , as stated earlier.
Now we must solve for the wrist joint angles (4 ,5 ,6 ) knowing (1 ,2 ,3 ) . Performing one
more matrix inversion on the left will separate these unknowns sufficiently.
1
13
Calculate:
Since m = 6 (Cartesian dof) and n = 8 (joint dof) we have the underconstrained kinematicallyredundant case. There are infinite solutions (multiple as well). There are some great ways to make use
of this redundancy for performance optimization in addition to following commanded Cartesian
translational and rotational velocity trajectories. For inverse pose purposes we will here simplify instead
and lock out the redundancy so that m = n = 6; let us choose 3 5 0 for all motion to accomplish
this. Then we have a determined Inverse Pose Kinematics problem with finite solutions, still with
multiple joint angle solution sets.
14
So, the first step should be to simplify the equations as much as possible by calculating the required
08T to achieve the commanded HBT .
The problem can be decoupled between the arm joints 1-4 and the wrist joints 5-8 since the ARMII has a
spherical wrist (all 4 wrist joint Cartesian coordinate frames share the same origin). See the previous
section that explained the Pieper results for the 6-axis PUMA robot.
Now, we will further simplify by ignoring the wrist joints 6-8 (5 is already locked to zero) and solve the
Inverse Pose Kinematics problem only for the arm joints 1,2, and 4. The full inverse solution is given in
Williams 1.
0F
Inverse Pose Kinematics Symbolic Solution for Arm Joints Only, with 3 0
Reduced problem statement
Given B P5 x5 y5
That is, with only three active joints, we can only specify three Cartesian objectives, in this case the XYZ
location of the origin of {5} with respect to origin of {B} (and expressed in the basis of {B}). Note that
B P5 B P8 due to the spherical wrist.
The equations to solve for this problem come from the Forward Pose Kinematics relationships
for the ARMII robot, the translational portion only (further, with 3 0 ).
This equation yields (the derivation is left to student, use symbolic Forward Pose Kinematics):
x5 c1 (d3 s2 d5 s24 )
P5 y5 s1 (d3 s2 d5 s24 )
z d d c d c
3 2
5 24
5 B
where
c24 cos( 2 4 )
s24 sin( 2 4 )
(Since 3 0 always, the Z axes of 2 and 4 are always parallel and we used the sum-of-angles trig
formulas.)
1
R.L. Williams II, Kinematic Equations for Control of the Redundant Eight-Degree-of-Freedom Advanced Research Manipulator II,
NASA Technical Memorandum 4377, NASA Langley Research Center, Hampton, VA, July 1992.
15
Solution Process
1.
Since 1 is now known (two values), we can modify the Y and Z equations.
y5
s1
where:
Z z5 d B
Isolate the ( 2 4 ) terms:
where
F 2Yd3
G Y 2 Z 2 d32 d52
We can solve this equation for 2 by using the Tangent Half-Angle Substitution. We presented this
back in the Inverse Pose Solution of the planar 3R robot; we solve for 2 (in that section, it was for 1).
Solve for 2 by inverting the original Tangent Half-Angle definition.
16
Two 2 solutions result from the in the quadratic formula; both are correct (there are multiple
solutions elbow up and elbow down). To find 4, return to original (arranged) translational equations.
d5 s24 Y d3s2
d5c24 Z d3c2
Find the unique 4 for each 2 value (use the quadrant-specific atan2 function in MATLAB).
Solutions Summary
The solution is now complete for the ARMII robot reduced inverse pose problem (translational
joints only, plus 3 0 ).
There are multiple solutions since there are two values for 1. For each 1, there are two values
for 2; for each valid (1 , 2 ) , there is a unique 4. So there are a total of four (1 , 2 , 4 ) solution sets
for this reduced problem. We can show this with the PUMA model (its not the same robot, but it has
similar joints when 3 0 ).
These four solution sets occur in a very special arrangement pattern, summarized in the table
below.
i
1 180
2 2
1 180
21
In all numerical examples, you can check the results; plug all solution sets (1 , 2 , 4 ) one at a
time into the Forward Pose solution and verify that all sets yield the same, commanded
P .
B
You can
also calculate the associated 4B R . All of these resulting rotation matrices should be different (why?).
17
Given
P , calculate ( , , )
B
4 i
i 1, 2,3, 4 .
x5 0.6572
P5 y5 0.1159
z 1.6952
5
Answers (deg)
10
20
30
10
46.6
-30
190
-46.6
30
190
-20
-30
Check all solution sets via Forward Pose Kinematics to ensure all yield the correct, commanded
P .
B
18
We can achieve the same goals as the two third-order polynomials meeting at a via point much
more simply. We use a single polynomial, forced to go through a via point. Here are the constraints for
meeting the required angles with smooth motion (since we use a single continuous polynomial, the
velocity and accelerations are guaranteed to match at the via point). This is original work presented at
the 2011 ASME IDETC in Washington DC2.
Note in this case since there is only one time range, it is convenient to treat all times as absolute, rather
than relative as when we did matching of two third-order polynomials. With five constraints we can use
a single fourth-order polynomial.
a0 S
a1 0
The remaining coupled unknown polynomial coefficients linear equations may be expressed by the
following 3x3 matrix/vector equation.
tV2
2
tF
2tF
tV3
tF3
3tF2
a2 V S
a3 F S
4tF3 a4 0
tV4
tF4
1 tV
1 t F
2 3tF
a2 (V S ) tV2
2
a3 ( F S ) tF
4tF2 a4
0
tV2
tF2
R.L. Williams II, 2011, Improved Robotics Joint-Space Trajectory Generation with Via Point, Proceedings of the ASME
IDETC/CIE, Washington DC, August 28-31, 2011, DETC2011-47592.
19
tF 0 , this solution always exists. t F tV is required in this scenario, so that term cannot be zero.
Single Fourth-Order Polynomial with Via Point Analytical Solution
a0 S
a1 0
(V S )tF2 ( F S )(4t F 3tV )tV
1
tV2
tF2
(tF tV ) 2
2
2
(V S )tF ( F S )(2t F tV )
2
a3
2
tV2
tF3
(tF tV )
a2
a4
1
(tF tV ) 2
(V S ) ( F S )(3t F 2tV )
2
t F3
tV
For the special case of the via time being half the final time ( tV t F 2 ), the analytical solution is:
a0 S
a1 0
a2
1
16(V S ) 5( F S )
t F2
a3
2
16(V S ) 7( F S )
t F3
a4
8
2(V S ) ( F S )
t F4
20
Use a single fourth-order polynomial for smooth joint space trajectory generation, plus motion
through an additional via point (no need to stop at the via point, only ensure smooth motion), for one
joint only.
S 3 0 , V 1 8 0 , F 1 2 0 , tV 1.5, tF 3 sec
(t) for smooth trajectory generation and continuous motion through a via point. Plot
(t ),(t ),(t ),(t ) .
Given:
Find:
(t ) 497.78t 786.67
150
100
50
0
0.5
1.5
2.5
0.5
1.5
2.5
0.5
1.5
2.5
0.5
1.5
time (sec)
2.5
100
50
0
-50
0
dd
400
200
0
0
ddd
1000
-1000
0
The (t) shape for the single fourth-order polynomial is very similar to that for the two third-order
polynomials. Again the joint angle passes through the via point V 180 and keeps going briefly, due
21
to the fact that the velocity is still positive beyond the first 1.5 sec. The peak for this fourth-order case is
slightly greater and occurs in time slightly after the peak for the two third-order polynomials case. The
maximum angle is M A X 1 85 .4 , occurring at t = 1.74 sec. For the fourth-order polynomial, a side
benefit has arisen. The jerk is now continuous at the via time, where it was discontinuous for the two
matched third-order polynomials.
The jerk still has an infinite spike at the start and end as we saw with both previous third-order
polynomial examples, which is unacceptable. We correct this with a single sixth-order polynomial as
presented in Section 2.8.5 in the ME 4290/5290 NotesBook. Again, that work is original.
22
f vector of m Cartesian functions. This relationship holds only for translational part. That is, no
Cartesian orientation vector exists that we can differentiate to get the angular velocity vector.
4) Velocity recursion a'la Craig 3
Add translational and rotational velocities serially link-by-link from the base to the end-effector link.
1F
Revolute joint
i 1 i i1R ii
i 1
Prismatic joint
i 1
vi 1 i i1R
i 1
Z i 1 i 1
v P
i
i 1
i 1 i i1R ii
i 1
Start with
i 1
vi 1 i i1R
v 0
0
v P
i
i 1
i 1
Z i 1 di 1
Use the velocity recursion equations, i 0,1, 2,, N 1 . Then, factor out
to get the Jacobian matrix
from
v ,
N
J .
J.J. Craig, 2005, Introduction to Robotics: Mechanics and Control, Third edition, Pearson Prentice Hall, Upper Saddle River, NJ.
23
3) Derive
J via
J
f
px
P p
0
pi 3 pi d j 3 pi
j
t j 1 j dt
j 1 j
i = x, y
px
px
px
py
py
py
The angular velocity vector is found from the relative angular velocity equation.
0
0
1
c1
s1
0
s1
c1
0
0
2
0 0 c12
0 0 s12
1 1 0
s12
c12
0
0
3
0
H
0 0 c123
0 0 s123
1 2 0
0
0
0
1 2 3 Hz
s123
c123
0
0 0 c123
0 0 s123
1 3 0
s123
c123
0
0 0
0 0
1 0
24
A is the translational acceleration of the origin of frame {j} with respect to reference frame
i
Q
B
A
B
R BVQ AB BA R BQ
Position
A P A PB BA R B P
P
A
T B P
A
B
Velocity
A
V A PB BA R B P BA R
V V0 VP P
P
B
Acceleration
A A dtd AVB BA R BVP AB BA R B PP
A A
A
A
B
R B AP 2 A B BA R BVP A B BA R B PP A B
A A0 AP 2 V P P
A
B
R B PP
25
Rotational Acceleration
k
is the rotational acceleration of frame {j} with respect to reference frame {i}, expressed
i
in the basis (coordinates) of {k}. No angular orientation exists for which we can take the time derivative
to find the angular velocity. Instead we use relative velocity equations.
Rotational Velocity
A
C AB BAR
Rotational Acceleration
A C dtd AB BA R BC A B dtd BA R BC
A C A B BA R B C AB BA R BC
A
B
A
C
A
B
A
C
a
X
where
A
a
Acceleration Example
Planar 2R robot acceleration of end-effector frame with respect to {0}, also expressed in {0}.
1) Craig (2005) acceleration recursion
L1
P2 0
0
c2
R s2
L2
P3 0
0
2
1
0
0
1
s2
c2
0
0
00 0
0
0
00 0
0
0
0a0 0
0
0
1 0
1
0
1 0
1
0
a1 0
0
23 R I 3
26
a
2
0
2
2 0
1 2
0
2
2 0
2
1
P P a
1
3
2
0
3
R 3 a3
c2
0
P P a
2
1 1
2 12
1 0
0
s2
0
a3 L1 (c11 s112 ) L2 c12 (1 2 ) s12 (1 2 )2
a Lc L c
L2 (1 2 )2 L1c212 L1s21
3a3 L2 (1 2 ) L1s212 L1c21
a
0
c2
2 a2 s2
0
0
3
2
3 2 0
1 2
2
1
L2 s12 1 L1c11
L2 c12 2 L1s11
L1s11 L2 s12 (1 2 ) L2 s12 (1 2 ) 2
L2 c12 (1 2 ) 1
L2 s12 (1 2 ) (1 2 )
27
Planar 2R robot acceleration of the end-effector frame with respect to {0}, also expressed in
{0}. An alternative method is presented here.
2) Differentiation of rate equation
X J
X J J
1
0
L2 s12
L2 c12
1
d J dJ ij
J
dt
dt
dJij
dt
Jij d1 Jij d2
J d
ij N
1 dt 2 dt
N dt
( L1c1 L2c12 )1 L2c122
L1c11 L2 c12 (1 2 )
0 J L1 s11 L2 s12 (1 2 )
X
0
L1 s1 L2 s12
0
X L1c1 L2c12
dJij
dt
Jij
k
k 1 k
N
L2c121 L2c122
L2 s121 L2 s122
L2 c12 (1 2 )
L2 s12 (1 2 )
J 0 J
L1c11 L2 c12 (1 2 )
L2 s12
1 2
0
L2 c12 (1 2 )
L2 s12 (1 2 ) 1
2
0
28
X J
X J J
J X J
1
ii. Resolved Acceleration Control like resolved rate, but acceleration is commanded instead of
1
velocity. Solve J X J and double integrate to get the commanded joint
angles.
iii. Dynamics equations is required for the Newton/Euler dynamics recursion in this ME
4290/5290 Supplement, Chapter 5. If acceleration is calculated via numerical differentiation,
1
numerical instability can result, so the analytical approach J X J is better.
Now, if inverse dynamics control is being used in the resolved-rate control algorithm
framework, assume X is constant and so X 0 . In this case:
How can we find the time rate of change of the Jacobian matrix J ? See the previous page for a
specific example.
29
4. Parallel Robots
4.3 Planar 3-RPR Manipulator
4.3.1 Planar 3-RPR Manipulator Inverse Pose Kinematics
P
0
0
H
PCi 0 A i 0 Li
i 1, 2,3
L P
0
0
H
PCi 0 A i
i 1, 2,3
The inverse pose solution is straight-forward, found independently for each of the three legs. The
Euclidean norm is used in the equations below.
Li
L P
0
0
H
PCi 0 A i
i 1, 2,3
30
We can also calculate the intermediate passive joint variables 1,2 ,3 , (independently for each of the
three legs) for use in velocity and dynamics analyses. The quadrant-specific atan2 function must be
used in the equations below.
Ciy Aiy
Cix Aix
i tan 1
i 1, 2,3
31
L1 , L2 , L3
Find:
x, y,
This is a coupled, nonlinear problem to solve it is difficult to solve and multiple solutions generally
exist, like the Inverse Pose Kinematics problem for serial robots. We use the same vector loop-closure
equations from Inverse Pose Kinematics, repeated and with details filled in below:
L P
0
0
H
PCi 0 A i
i 1, 2,3
Li c i x c
Li si y s
s H Cix 0 Aix
c H Ciy 0 Aiy
Considering all three legs simultaneously (the problem is coupled and nonlinear), these represent six
scalar equations in the six unknowns x, y , , 1 , 2 , 3 .
We can use the Newton-Raphson numerical iteration technique to solve this Forward Pose
Kinematics Problem. We can directly solve the above six equations for the six unknowns.
i 1, 2,3
However, we dont always need the intermediate variables 1 ,2 ,3 (also, we can calculate these
angles later, using Inverse Pose Kinematics, if required for velocity, dynamics, or computer simulation).
So, to simplify the Forward Pose Kinematics Problem, square and add each XY equation pair (for all
three legs) to eliminate the intermediate variables 1 , 2 ,3 . Then we will have three equations to solve
for the three primary unknowns x , y , . This problem is solved via the Newton-Raphson iterative
numerical method in Section 4.4.
x 2 y 2 Aix2 Aiy2 Cix2 Ciy2 L2i 2( xAix yAiy ) 2c ( xCix yCiy AixCix AiyCiy )
2 s ( xCiy yCix AixCiy AiyCix ) 0
where known constants 0 Aix , 0 Aiy , H Cix , H Ciy were shortened to Aix , Aiy , Cix , Ciy for clarity.
i 1, 2,3
32
This 3-RPR robot forward pose problem is equivalent to finding the assembly configurations of
a four-bar mechanism with known input/output link lengths L1, L2 and an RR constraining dyad of
known length L3. By itself the four-bar mechanism has infinite assembly configurations because it has
one-dof. RR dyad A3 C 3 constrains the mechanism to a statically-determinate structure of 0-dof. Point
C 3 defines a four-bar coupler curve which is a tricircular sextic (sixth-degree algebraic curve) that has a
maximum of six intersections with the circle of radius L3 centered at A3 (Hunt, 1990).
Figure:
Branch A1C1C2 A2 is a 4-bar mechanism with input angle 1 and output angle 2 (both
unknowns). With given lengths L1 and L2, this four-bar mechanism has 1-dof, and it can trace out a
coupler curve for point C3 in the plane. In general, this coupler curve is a tricircular sextic. The
forward pose kinematics solution may be found by intersecting leg A3C3 (a circle of given radius L3,
centered at known centerpoint A3) with the coupler curve. There are at most six intersections between a
circle and tricircular sextic and so there may be up to six real multiple solutions to the 3-RPR parallel
robot forward pose kinematics problem. There are always six solutions, but 0, 2, 4, or 6 of these will be
real, depending on the commanded configuration and robot geometry.
33
First the pose configuration variables must all be known. Then we can define and solve two problems.
Forward velocity kinematics (for simulation)
Given:
L1 , L2 , L3
Find:
x , y , z
where z
x , y , z
Find:
L1 , L2 , L3
In both cases intermediate passive joint rate unknowns 1 , 2 , 3 are involved. Both velocity
kinematics problems use the same rate equations; we will derive these from looking at the three single
RPR legs separately (meeting at the end-effector). Here is the figure for the ith leg:
As usual, the velocity equations will be obtained by a time derivative of the applicable pose equations.
The vector loop-closure equation for leg i is:
P A L
0
L Hi
i 1, 2,3
34
i 1, 2,3
i i i
i 1, 2,3
i i
Hi
i 1, 2,3
i i
These equations are written in matrix-vector form to yield the RPR leg Jacobian matrix.
x Li s i LHi sin( i i ) c i
y Li c i LHi cos( i i ) s i
1
0
z
LHi sin( i i ) i
LHi cos( i i ) Li
1
i
X J
i
i 1, 2,3
i 1, 2,3
35
X x
y z is the same for all three legs (the Cartesian end-effector rates).
T
includes one
active and two passive joint rates for each of the three RPR legs, i 1, 2,3 . Let us now find the overall
robot Jacobian matrix, using only active rates and ignoring the passive rates. Invert the leg Jacobian
matrix symbolically:
s i
i Li
Li c i
i s i
Li
c i
Li
s i
c i
Li
LHi c i
x
Li
LHi s i y
L c
1 Hi i z
Li
i 1, 2,3
Clearly the only singularity condition for this operation is when Li 0 , which is generally impossible
by design for the 3-RPR parallel robot.
Extract only the active joint row of this result and assemble all three active joint rows into the
overall robot Jacobian matrix:
L1 c1
L2 c 2
L c
3 3
s1
s 2
s 3
LH 1 s1 x
LH 2 s 2 y
LH 3 s 3 z
L MX
This above equation solves the Inverse Velocity Problem. No inversion is required and so the Inverse
Velocity problem is never singular. Above it is expressed in compact notation. Note inverse velocity
Jacobian matrix [M] is closely related to the Newton-Raphson Jacobian matrix [JNR] from the numerical
FPK solution.
Forward Velocity Problem
X M L
1
Ironically, it is the Forward Velocity Problem that is subject to singularities for parallel robots.
36
Here is the MATLAB code that was used to symbolically invert the RPR leg Jacobian matrix as
presented above. Symbolic computing has a lot of power in robot kinematics, dynamics, and control.
%
%
%
clear; clc;
%
L
LH
t1
b1
c1
s1
cp
sp
=
=
=
=
=
=
=
=
%
j11
j21
j13
j23
Jacobian elements
= -L*s1-LH*sp;
= L*c1+LH*cp;
= -LH*sp;
= LH*cp;
%
Jacobian matrix
J = sym([j11 c1 j13;j21 s1 j23;1 0 1]);
%
Invert
Jinv = inv(J);
%
Simplify
Jinvsimp = simple(Jinv);
%
Check
Ident1 = simple(Jinvsimp * J);
Ident2 = simple(J * Jinvsimp);
Note: the first four lines of the declaration statements of the m-code above may be replaced succinctly
with:
syms L LH t1 b1;
37
F(X) 0
where the n functions are
F(X) F1 (X)
X x1
F2 (X) Fn (X)
x2 xn
Fi
x j O X2
x
j 1
j
Fi X X Fi X
i 1, 2, , n
F
Where J NR J NR ( X) i is the Newton-Raphson Jacobian Matrix, a multi-dimensional form of
x j
the derivative and a function of {X}. If X is small, the higher-order terms O X 2 from the
expansion are negligible. For solution, we require:
Fi X X 0
i 1, 2, , n
Fi
x j Fi X J NR X 0
j 1 x j
n
Fi X X Fi X
i 1, 2, , n
So to calculate the required correction factor X at each solution iteration step, we must solve
F X J NR X 0 .
X J NR
F X
38
0)
1)
2)
3)
4)
Iterate until
scalar solution tolerance. Also halt the iteration if the number of steps becomes too high
(which means the solution is diverging). Generally less than 10 iterations is required for
even very tight solution tolerances.
If the initial guess to the solution X0 is sufficiently close to an actual solution, the NewtonRaphson technique guarantees quadratic convergence.
Now, for manipulator forward pose problems, the Newton-Raphson technique requires a good
initial guess to ensure convergence and yields only one of the multiple solutions. However, this does
not present any difficulty since the existing known pose configuration makes an excellent initial guess
for the next solution step (if the control rate is high, many cycles per second, the robot cannot move too
far from this known initial guess). Also, except in the case of singularities where the multiple solution
branches converge, the one resulting solution is generally the one you want, closest to the initial guess,
most likely the actual configuration of the real robot.
There is a very interesting and beautiful relationship between numerical pose solution and the
velocity problem for parallel robots. The Newton-Raphson Jacobian Matrix is nearly identical to the
Inverse Velocity Jacobian Matrix for parallel robots. (In the planar case it is identical, in the spatial it is
related very closely.) This reduces computation if you need both forward pose computation and inversevelocity-based resolved-rate control.
3-RPR manipulator forward pose kinematics solution
X x
The three coupled, nonlinear, transcendental functions Fi are the squared and added equations for
each RPR leg, with L2i brought to the other side to equate the functions to zero.
39
F
J NR X i
x j
Fi
2 x 2(Cix c Ciy s ) 2 Aix
x
i 1, 2,3
Fi
2 y 2(C ix s C iy c ) 2 Aiy
y
i 1, 2,3
Fi
2 s ( xC ix yC iy Aix C ix Aiy C iy ) 2 c ( xC iy yC ix Aix C iy Aiy C ix )
i 1, 2,3
where
Aix
iy
A A
0
and
Cix
Ci
Ciy
Use i 1, 2,3 in the above definitions in the proper places in the overall Newton-Raphson
Jacobian Matrix. After the forward pose problem is solved at each motion step, we can calculate the
intermediate variables 1,2 ,3 as in inverse pose kinematics solution above.
40
1
0
1
J NR X
P1x s P1 y c
L1s1
1 P1x c P1 y s
0 P2 x s P2 y c
L1c1
0
0
L2 s 2
1 P2 x c P2 y s
0 P3 x s P3 y c
0
0
L2 c 2
0
P3 x c P3 y s
0
0
0
L3 s3
L3c3
0
41
42
The RRRRR designation means that there are five revolute joints in this parallel robot, and the
first and last (the two grounded revolute joints) are actuated via independent motors. The three
intermediate moving revolute joints are passive.
The planar five-bar has five total rigid links (four moving and one ground link) and five revolute
joints, each 1-dof joints (J1). Therefore the total number of degrees-of-freedom (dof), or Mobility M, is:
M 3( N 1) 2 J1 1J 2
M 3(5 1) 2(5) 1(0)
M 2 dof
Since M > 1, the planar five-bar qualifies as a robot, and it is a parallel robot since there are two paths
from the ground link to the end-effector.
The end-effector could be located on link 3 or link 4 (see kinematic diagram below). For
generality, we will place the end-effector point to coincide with Point B, the point where links 3 and 4
intersect with a revolute joint.
43
r1
r2
r3
r4
r5
1
2
3
4
5
Link 1 is the fixed ground link. All angles 1 through 5 are absolute, measured in a right-hand sense
from the horizontal X direction to each link.
4.5.1.1 Forward Pose Kinematics
r1, 1, r2, r3, r4, r5; plus 2 independent input angles 2 and 5
Find
end-effector point B Bx
By plus3 and 4
T
44
Step 3. Draw the Vector Diagram. Define all angles in a positive sense, measured with the right hand
from the right horizontal to the link vector (tail-to-head; your right-hand thumb is located at the vector
tail and your right-hand fingers point in the direction of the vector arrow).
Step 4. Derive the Vector-Loop-Closure Equation. Starting at one point, add vectors tail-to-head until
you reach a second point. Write the VLCE by starting and ending at the same points, but choosing a
different path.
r 2 r 3 r1 r 5 r 4
Step 5. Write the XY Components for the Vector-Loop-Closure Equation. Separate the one vector
equation into its two X and Y scalar components.
r2c2 r3c3 rc
1 1 r5c5 r4c4
r2 s2 r3s3 r1s1 r5 s5 r4 s4
where the following abbreviations have been used:
ci cosi
si sin i
i 1, 2,3, 4,5
45
Step 6. Solve for the Unknowns from the XY equations. Step 5 yielded two coupled nonlinear
transcendental equations in the two unknowns 3, 4. Though difficult, we can solve this problem
analytically. It is very similar to the planar 1-dof four-bar mechanism position analysis solution, since it
involves the intersection of two known circles.
Rewrite the above XY equations to isolate the 3 unknown on one side of both equations.
r3c3 rc
1 1 r5c5 r4 c4 r2c2 a r4c4 r2 c2
r3s3 r1s1 r5 s5 r4 s4 r2 s2 b r4 s4 r2 s2
where:
a rc
1 1 r5c5
b r1s1 r5s5
Then square and add the two XY pose kinematics equations and eliminate 3 using the trig identity
cos 2 3 sin 2 3 1 . This results in a single nonlinear transcendental equation in the single unknown 4:
E cos 4 F sin 4 G 0
where:
E 2r4 (a r2c2 )
F 2r4 (b r2 s2 )
G a 2 b2 r22 r32 r42 2r2 (ac2 bs2 )
We can solve this equation for 4 by using the Tangent Half-Angle Substitution (derived in this ME
4290/5290 Supplement).
If we define
t tan
4
2
then
1 t2
cos 4
1 t2
E (1 t 2 ) F (2t ) G (1 t 2 ) 0
and
sin 4
2t
1 t 2
46
(G E )t 2 (2 F )t (G E ) 0
This equation is easily solved using the quadratic formula:
t1,2
F E2 F 2 G2
GE
4 2 tan 1 (t1,2 )
1,2
The atan2 function need not be used in the above equation for 4, due to the multiple 2.
Two 4 solutions result, from the in the quadratic formula. Both are correct since there are two valid
solution branches end-effector up and end-effector down. To find 3, return to the translational pose
kinematics equations, with 3 terms isolated.
1,2
1,2
This equation calculates the unique 31,2 for each 41,2 value. In this case we must use the
quadrant-specific atan2 function in MATLAB.
Thus, there are two solution sets for the forward pose kinematics problem for the planar RRRRR
five-bar robot. Be sure to keep the solutions together, i.e. ( 3 , 4 )1 and ( 3 , 4 ) 2 .
The ultimate forward pose kinematics solution, point B, may now be found since the passive
angles for links 3 and 4 are now known. There will be two possible point B branch values, again
corresponding to end-effector up and end-effector down. Both equations below will yield the same
results for the point B values.
B r2 r3
r2c2 r3c31,2
Bx
By 1,2 r2 s2 r3 s31,2
B r1 r 5 r 4
rc
Bx
1 1 r5c5 r4c41,2
47
Given
Find
By
The actuator unknowns 2 and 5 can be found independently from the two vector loop-closure
equations presented at the end of the Forward Pose Kinematics section. Passive unknown angle 3 can
be found along with 2, and passive unknown angle 4 can be found along with 5.
B r2 r3
B r1 r 5 r 4
Bx r2c2 r3c3
By r2 s2 r3 s3
By r1s1 r5 s5 r4 s4
Isolate the passive unknown angle in each of the above XY scalar equations:
r3c3 Bx r2 c2
r4 c4 Bx r1c1 r5c5
r3 s3 By r2 s2
r4 s4 By r1s1 r5 s5
Squaring and adding both sets separately will eliminate the passive unknowns for now:
E2 cos2 F2 sin 2 G2 0
E5 cos5 F5 sin 5 G5 0
E2 2r2 Bx
E5 2r5 (Bx rc
1 1)
F2 2r2 By
Solving independently for the two actuator unknowns using the tangent half-angle substitution twice:
t 21,2
F2 E 22 F22 G22
G2 E 2
2 2 tan 1 (t 2 )
1,2
1,2
t51,2
5 2 tan 1 (t5 )
1,2
1,2
Now return to the original XY scalar equations to solve for the passive unknowns:
3 atan2( By r2 s2 , Bx r2c2 )
1,2
4 atan2( By r1s1 r5 s5 , Bx rc
1 1 r5c5 )
1,2
48
There are two possible values (left and right branches) for unknowns 2 and 3; independently
there are two possible values (left and right branches) for unknowns 5 and 4. Therefore, there are four
overall valid solutions to the Inverse Pose Kinematics problem for the planar parallel five-bar robot.
i i (i = 2,3,4,5) is the absolute angular velocity of link i. 1 1 0 since link 1, the fixed
ground link, cannot rotate.
The vector loop-closure equations developed in the Pose Kinematics section are the starting
point for deriving the velocity equations.
Find
y plus 3 and 4
T
Step 4. Derive the velocity equations. Take the first time derivative of the vector loop closure
equations from position analysis, in XY component form, repeated below.
r2c2 r3c3 rc
1 1 r5c5 r4c4
r2 s2 r3s3 r1s1 r5s5 r4 s4
The first time derivative of the position equations is given below:
3 3 3
5 5 5
4 4 4
Since all links are rigid (i.e. no links are changing lengths), all ri 0 and thus the four XY pairs
of terms above represent the absolute tangential velocities of the endpoint of each link.
Gathering unknowns on the LHS, and substituting the following terms yields the following matrixvector equations, two linear equations in two unknowns 3 and 4 :
49
a b 3 c
d e f
a r3 s3
d r3c3
b r4 s4
c r22 s2 r55 s5
e r4 c4
f r22 c2 r55c5
ce bf
ae bd
af cd
ae bd
x r s r s
B 2 2 2 3 3 3
y r22c2 r33c3
x r s r s
B 5 5 5 4 4 4
y r55c5 r44c4
50
Given r1, 1, r2, r3, r4, r5; angles 2, 3, 4, and 5; plus desired end-effector translational velocity
T
B x y
required actuator angular rates 2 and 5 , plus passive angular rates 3 and 4
Find
The actuator unknowns 2 and 5 can be found independently from the two vector loop-closure
equations presented at the end of the Forward Velocity Kinematics section. Passive unknown angular
rate can be found along with , and passive unknown angular rate can be found along with .
3
matrix-vector form:
r2 s2
r2c2
r3s3 2 x
r3c3 3 y
r4 s4
rc
4 4
r5 s5 4 x
r5c5 5 y
3 ys
3
xc
r2 sin(3 2 )
5 ys
5
xc
r4 sin(5 4 )
2 ys
2
xc
r3 sin(3 2 )
4 ys
4
xc
r5 sin(5 4 )
51
Physically, this happens when links 2 and 3 are collinear (straight out or folded on top of each other).
This corresponds to the boundary between the two Inverse Pose Kinematics solution branches for the
link2/link3 dyad. This also occurs when links 4 and 5 are collinear (straight out or folded on top of each
other). This corresponds to the boundary between the two Inverse Pose Kinematics solution branches
for the link5/link4 dyad.
Step 1. The five-bar robot Position and Velocity Analyses must first be complete.
Step 2. Identify the five-bar robot acceleration parameters.
i i (i = 2,3,4,5) is the absolute angular acceleration of link i. 1 1 0 since link 1, the fixed
ground link, cannot rotate.
The velocity equations developed in the Velocity Kinematics section are the starting point for
deriving the acceleration equations.
Given r1, 1, r2, r3, r4, r5; angles 2, 3, 4, and 5; angular rates 2 ,3 ,4 , 5 ; plus actuator angular
accelerations ,
2
T
x
y , plus passive angular accelerations
Find desired end-effector translational acceleration B
,
3
The acceleration equations come from the first time derivative of the velocity equations as shown below:
3 3 3
5 5 5
4 4 4
2 2 2
3 3 3
3 3 3
5 5 5
5 5 5
4 4 4
4 4 4
52
a r3 s3
b r4 s4
C r22 s2 r222c2 r332c3 r55 s5 r552c5 r442c4
a b 3 C
d e F
d r3c3
e r4 c4
F r22c2 r222 s2 r332 s3 r55c5 r552 s5 r442 s4
Ce bF
ae bd
aF Cd
ae bd
T
x
y can be found either
With 3 and 4 now known, the end-effector translational acceleration B
from the link2/link3 dyad or the link5/link4 dyad; both yield identical results.
Given r1, 1, r2, r3, r4, r5; angles 2, 3, 4, and 5; angular rates 2 ,3 ,4 , 5 ; plus desired end-effector
T
x
y
translational acceleration B
Find required actuator angular accelerations 2 , 5 , plus passive angular accelerations 3 , 4
The actuator unknowns 2 , 5 can be found independently from the two vector loop-closure
equations presented at the end of the Forward Acceleration Kinematics section. Passive unknown
angular acceleration 3 can be found along with 2 , and passive unknown angular acceleration 4 can be
T
x
y are
found along with 5 . The two independent equations for end-effector acceleration B
repeated below, written in matrix-vector form:
53
r3s3 2
x r222c2 r332c3
r3c3 3
y r222 s2 r332 s3
r2 s2
rc
2 2
r4 s4
rc
4 4
r5s5 4
x r552c5 r442c4
r5c5 5
y r552 s5 r442 s4
xc3
ys3 r222 cos(3 2 ) r332
r2 sin(3 2 )
xc2
ys2 r332 cos(3 2 ) r222
3
r3 sin(3 2 )
xc5
ys5 r442 cos(5 4 ) r552
r4 sin(5 4 )
xc4
ys4 r552 cos(5 4 ) r442
5
r5 sin(5 4 )
54
Step 1. The five-bar robot Position, Velocity, and Acceleration Analyses must first be complete.
Step 2. Draw the five-bar robot free-body diagrams (FBDs)
F ij
rij
known moment arm vector pointing to the joint connection with link i from the CG of link j.
55
CG2 , CG3 , CG4 , CG5 , mass moments of inertia IGZ 2 , IGZ 3 , IGZ 4 , IGZ 5 ), kinematic motion angles 2 ,3 ,4 ,5 ,
angular velocities 2 , 3 , 4 , 5 , angular accelerations 2 , 3 , 4 , 5 , translational CG accelerations
AG 2 , AG 3 , AG 4 , AG 5 , and external end-effector force F E
Find:
The driving actuator torques 2 and 5 , plus internal joint forces F 21, F 32 , F 43 , F 54 , F15
Count the number of scalar unknowns and the number of scalar equations:
Since this is planar problem there are three scalar dynamics equations per moving link (two
forces XY from Newtons Second Law and one moment Z from Eulers Rotational Dynamics
Equation) and there are four moving links, for a total of 3x4 = 12 scalar equations.
Two vector torques (of one component each) and ten vector internal joint forces (of two
components each) are identified above, for a total of 1+1+2x5 = 12 scalar unknowns.
56
Link 3
Link 4
Link 5
F 32 F 21 m2 AG 2
F 43 F 32 F E m3 AG 3
F 54 F 43 m4 AG 4
F 15 F 54 m5 AG5
Link 3
Link 4
Link 5
G2
2 r 32 F 32 r12 F 21 IG 2 Z 2
G3
r 43 F 43 r 23 F 32 r 43 F E IG 3Z 3
G4
r 54 F 54 r 34 F 43 IG 4 Z 4
G2
5 r15 F 15 r 45 F 54 IG 5Z 5
57
Step 5. Derive the XYZ scalar dynamics equations from the vector dynamics equations.
For each moving link we obtain
Link 2
F32 X F21 X m2 AG 2 X
F32Y F21Y m2 AG 2Y
(r43 X F43Y r43Y F43 X ) ( r23 X F32Y r23Y F32 X ) I G 3 Z 3 r43 X FEY r43Y FEX
Link 4
F14 X F43 X m4 AG 4 X
F14Y F43Y m4 AG 4Y
F15 X F54 X m5 AG 5 X
F15Y F54Y m5 AG 5Y
58
r12Y
0
0
0
0
0
0
0
0
1
r12 X
0
0
r32Y
1
1
r32 X
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
r43Y
r23Y
1
r23 X
r43 X
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
r34Y
0
1
r34 X
1
0
r54Y
0
1
r54 X
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
r45Y
r45 X
r15Y
r15 X
Av b
0 0 F21 X
m2 AG 2 X
0 0 F21Y
m2 AG 2Y
1 0 F32 X
IG 2Z 2
0 0 F32Y
m3 AG 3 X FEX
0 0 F43 X
m3 AG 3Y FEY
0 0 F54 X
m4 AG 4 X
0 0 F54Y
m4 AG 4Y
0 0 F15 X
IG 4Z 4
0 0 F15Y
m5 AG 5 X
0 0 2
m5 AG 5Y
IG5Z5
0 1 5
v A b
1
v = inv(A)*b;
v = A\b;
The solution to the unknown internal forces and input torque are contained in the components of v. To
save these values for plotting later, use the following MATLAB code, inside the for i loop.
F21x(i) = v(1);
F21y(i) = v(2);
F15y(i) = v(10);
tau2(i) = v(11);
tau5(i) = v(12);
AG 2
2
AG 2Y RG 2 2 cos 2 RG 22 sin 2
AG 3
2
2
AG 3Y r2 2 cos 2 r22 sin 2 RG 3 3 cos 3 RG 33 sin 3
AG 4
2
2
AG 4Y r5 5 cos 5 r55 sin 5 RG 4 4 cos 4 RG 44 sin 4
AG 5
2
AG 5Y RG 5 5 cos 5 RG 55 sin 5
60
cos 2
r12 X 2
r12
r12Y r2 sin
2
2
r34 X
r 34
r34Y
r2
cos 2
r32 X 2
r 32
r32Y r2 sin
2
2
r4
cos 4
r54 X 2
r 54
r54Y r4 sin
4
2
r3
cos 3
r 23 23 X
r23Y r3 sin
3
2
r5
cos 5
r 15 15 X
r15Y r5 sin
5
2
r 43 43 X
r43Y
r3
cos 3
r3
sin 3
2
r 45
45 X
r45Y
r4
cos 4
r4
sin 4
2
r5
cos 5
r5
sin 5
2
61
frc.ri.cmu.edu
4
J. Albus, R. Bostelman, and N. Dagalakis, 1993, The NIST RoboCrane, Journal of National Institute of Standards and
Technology, 10(5): 709-724.
62
RoboCrane Description
The six-dof RoboCrane is capable of XYZ translational and roll-pitch-yaw rotational control of
its moving platform within its workspace. As shown in the kinematics diagrams below, the RoboCrane
is essentially an inverted Stewart Platform parallel robot controlled by six active tensioning cables in
place of the six hydraulic actuators. The side length of the base equilateral triangle is sB and the side
length of the moving platform equilateral triangle is sP. At zero orientations, the moving platform
equilateral triangle is inverted with respect to the base equilateral triangle as shown.
The fixed base Cartesian reference frame is {0}, located on the ground, whose origin is the
center of the base equilateral triangle (from the top view). The base equilateral triangle is located at a
height H above the ground. The three ground-fixed cable connection points are Bi , i 1, 2,3 and the
three moving-platform-fixed cable connection points are Pi , i 1,2,3 . The six cables are connected
between the ground-fixed and platform-fixed cable connection points as shown. The six tensioning
motors for RoboCrane can be mounted on the ground (cables routed via pulleys at the top base frame),
on the top base frame, or on the moving platform itself. The moving platform Cartesian reference frame
is {P}, whose origin is located in the center of the platform equilateral triangle. At zero Euler angles,
the orientation of {P} is identical to that of {0}.
The fixed-base cable connection points Bi are constant in the base frame {0} and the platformfixed cable connection points Pi are constant in the base frame {P}:
sB
2
0
B1 hB
H
0
B 2 lB
H
sB
2
0
B3 hB
H
sP
2
P
P2 hP
0
sP
2
P
P3 hP
0
0
P1 lP
0
where:
hB
3
sB
6
lB
3
sB
3
hP
3
sP
6
lP
3
sP
3
63
64
name
sB
sP
H
hB
lB
hP
lP
m
meaning
base equilateral triangle side
platform equilateral triangle side
height from ground to base triangle
planar distance from {0} to near base side
planar distance from {0} to a base vertex
planar distance from {P} to near platform side
planar distance from {P} to a platform vertex
platform mass
The 6-cable RoboCrane robot inverse pose kinematics (IPK) problem is stated: Given the desired
moving platform pose 0PT , calculate the six active cable lengths Li, i 1,2,6 . This IPK model
assumes straight cables (no sag) that are always in tension, and ignores cable mass and elasticity.
The IPK input 0PT may be specified in terms of the desired vector location 0 PP of the origin
of moving frame {P} with respect to {0}, plus three angles representing the orientation of moving frame
{P} with respect to {0}. Choosing --, Z-Y-X Euler Angles (Craig, 2005), the associated orthonormal
rotation matrix is:
c c
R s c
s
0
P
s c c s s
c c s s s
c s
s s c s c
c s s s c
c c
Then the 4x4 homogeneous transformation matrix description of pose is (Craig, 2005):
0 R
0
PT P
0
0
0
0 PP
The solution to the RoboCrane IPK problem may be used as the basis for a pose control scheme,
executing pre-planned trajectories and other motions within its workspace. Like most cable-suspended
robots and many parallel robots in general, the RoboCrane IPK solution is straight-forward and poses no
computational challenge for real-time implementation. Given the desired moving cabin pose 0PT , we
find the moving platform cable connection points Pi. Then the inverse pose solution consists simply of
calculating the cable lengths using the Euclidean norm of the appropriate vector differences between the
various moving and fixed cable connection points. The IPK solution yields a unique closed-form
solution. The moving cable connection points P1, P2, and P3 with respect to the fixed base frame {0}
are:
65
P
0
where the
P
P
T P Pj
j 1,2,3
0
P
vectors were given previously. Note we must augment each position vector above
with a 1 in the fourth row to make the 4x4 matrix multiplication valid. The RoboCrane straight-cable
IPK solution is then:
L1 0 B1 0 P1
L2 0 B1 0 P2
L3
L4
B 2 0 P2
L5 0 B3 0 P3
B 2 0 P3
L6 0 B3 0 P1
Note the direction of the six cable length vectors above were chosen in the direction of positive cable
tensions.
The 6-cable RoboCrane forward pose kinematics (FPK) problem is stated: Given the six active
cable lengths Li, i 1,2,6 , calculate the resulting moving platform pose 0PT . The FPK solution for
cable-suspended robots and other parallel robots is generally very difficult. It requires the solution of
multiple coupled nonlinear (transcendental) algebraic equations, from the vector loop-closure equations.
Multiple valid solutions generally result.
Referring to the kinematics diagrams, we see that the RoboCrane FPK problem is identical to the
FPK solution for an upside-down 3-3 Stewart Platform (assuming straight cables always under positive
tension). The FPK solution is based on identifying 3 known triangles, B1P2 B2 , B2 P3 B3 , and B3 PB
1 1.
Construct a virtual link to Pj , perpendicular to base line Bi Bk for each of these three triangles. Imagine
rotating each triangle (each virtual link) about Bi Bk . The FPK solution exists where all three Pj rotate
until P1 P2 , P2 P3 , and P3 P1 are each of the correct, known lengths sP simultaneously. This solution was
presented by Dr. Bob5. The solution boils down to an 8th-order polynomial, meaning that there are
potentially 8 multiple solutions. Even pairs of some of these solutions may be imaginary.
R.L. Williams II, 1992, "Kinematics of an In-Parallel Actuated Manipulator Based on the Stewart Platform Mechanism",
NASA Technical Memorandum 107585, NASA Langley Research Center, Hampton, VA.
66
To maintain safe and stable control in all motions, all cable tensions must remain positive at all
times. Gravity acting on the moving platform is required to ensure that the six active cables remain in
tension, as long as the rotations are not too far from the nominal horizontal orientation. A pseudostatic
model is developed in this section and applied to the RoboCrane inverse statics solution.
Equations for Static Equilibrium
This section presents statics modeling for the six-cable-suspended RoboCrane robot. All six
active cables connect in parallel from the fixed base to the moving platform, as shown in the kinematics
diagrams. Again we assume straight cables (no sag) that are always in tension, and ignore cable mass
and elasticity. In pseudostatics it is assumed that the focus cabin accelerations and velocities are low
enough to justify ignoring inertial dynamic effects and use statics equations of equilibrium.
For static equilibrium the vector force sum and vector moment sum of the six active cable
tensions plus gravitational loading and external wrench acting on the focus cabin must balance to zero.
The statics free-body diagram for the moving platform is shown below, where CG indicates the center of
gravity location. The six active cable tension vectors are ti, i 1,2,6 .
67
t
i 1
m
i 1
mg FEXT 0
P0 R P PCG mg M EXT 0
where t i ti L i is the vector cable tension applied to the moving platform by the ith active cable (in the
positive cable length direction L i as established in IPK); m is the moving platform mass;
g 0 0 g is the gravity vector; FEXT is the external vector force exerted on the moving platform
T
by the environment; m i P0 R P P j t i is the moment due to the ith active cable tension ( P Pj is the
moment arm from the moving platform control point P to the jth active cable connection point, expressed
in {P} coordinates); P PCG is the position vector to the moving platform CG from the moving platform
control point P (the origin of {P}); and M EXT is the external vector moment exerted on the moving
platform by the environment. Moments are summed about the moving platform control point P and all
vectors must be expressed in a common frame; {0} is chosen.
Now we derive the pseudostatics Jacobian matrix based on the vector force and moment statics
equations. Substituting the above details into the static equilibrium equations yields:
S t WEXT G
68
0
P
R P PCG m g is the
T
matrix S is:
L
1
L
2
P1 L1 P2 L2
L 3
L
4
P2 L 3 P3 L 4
L 5
P3 L
5
L 6
P1 L
6
where Pj 0 Pj P0 R P Pj , j 1,2,3 .
The statics equations can be used in two ways. Given the active cable tensions t and the six
cable unit vectors L i from kinematics analysis, forward statics analysis uses the equations of static
equilibrium directly to verify statics equilibrium. For control, simulation, and valid-tension workspace
determination, the more useful problem is inverse statics analysis. This problem is stated: calculate the
required active cable tensions t given the focus cabin mass and pose, plus all L i . It is solved by
inverting the static equilibrium equations:
t S WEXT G
1
The statics Jacobian Matrix S is a square 6x6 matrix and hence the standard matrix inverse
applies in (11). A unique t solution is guaranteed if the RoboCrane robot is not in a singular pose.
Assuming pseudostatic motion, the inertia of the actuator shafts do not enter into the analysis and
the statics torque/tension relationship for each of the 6 actuators is i rti i , i 1,2,6 , where i is the
ith actuator torque, ri is the ith cable reel radius, and ti is the ith cable tension.
69
RoboCrane Examples
For these examples, the RoboCrane dimensions are sB = 10 m, sP = 3 m, H = 8 m, and mP = 100
T
kg. All examples assume the platform CG is located at the origin of {P} so that P PCG 0 0 0 .
Snapshot Example
Given
P 1
0
2 3 m and
T
t 325.1
70
Trajectory Example
T
The moving platform control point {P} traces a circle of center 0 0 4 and radius 2 m, with
zero orientations 0 0 0 . At the same time, the Z displacement goes through 2 entire
sine wave motions centered on Z = 4 m with a 1 m amplitude.
Circular Trajectory
Cable Lengths
Cable Tensions
71
The Delta Robot has 4-degrees-of-freedom (dof), 3-dof for XYZ translation, plus a fourth inner
leg to control a single rotational freedom at the end-effector platform (about the axis perpendicular to the
platform). The remainder of this document will focus only on the 3-dof XYZ translation-only Delta
Robot since that is being widely applied by 3D printers and Arduino hobbyists.
Presented is a description of the 3-dof Delta Robot, followed by kinematics analysis including
analytical solutions for the inverse position kinematics problem and the forward position kinematics
problem, and then examples for both, snapshots and trajectories. The revolute-inputs 3-RUU and the
prismatic inputs 3-PUU Delta Robots are both covered.
This section is presented on-line:
www.ohio.edu/people/williar4/html/pdf/DeltaKin.pdf
6
7
R. Clavel, 1991, Conception d'un robot parallle rapide 4 degrs de libert, Ph.D. Thesis, EPFL, Lausanne, Switzerland.
R. Clavel, 1990, Device for the Movement and Positioning of an Element in Space, U.S. Patent No. 4,976,582.
72
Please see the following link for Dr. Bobs NASA Technical Memorandum presenting the
kinematics of the Stewart Platform:
www.ohio.edu/people/williar4/html/PDF/StewartPlatform.pdf
73
5. Manipulator Dynamics
Kinematics is the study of motion without regard to forces.
Dynamics is the study of motion with regard to forces. It is the study of the relationship between
forces/torques and motion. Dynamics is composed of kinematics and kinetics.
a) Forward Dynamics (simulation) given the actuator forces and torques, compute the
resulting motion (this requires the solution of highly coupled, nonlinear ODEs): Given {}, calculate
, , (all are N x 1 vectors).
b) Inverse Dynamics (control) given the desired motion, calculate the actuator forces and
torques (this linear algebraic solution is much more straight-forward than Forward Dynamics): Given
, , , calculate {} (all N x 1 vectors).
Both problems require the N dynamic equations of motion, one for each link, which are highly coupled
and nonlinear. There are two basic methods for deriving the dynamic equations of motion.
Newton-Euler recursion (force balance, including inertial forces with D'Alembert's principle).
Lagrange-Euler formulation (energy method).
Kinetics
Translational
Rotational
Euler's Equation
Inertial moment anywhere on body
The kinematics terms aCi , i , i must be moving with respect to an inertially-fixed frame.
The frame of expression {k} needn't be an inertially-fixed frame.
Assumptions
serial robot
rigid links
ignore actuator dynamics
no friction
no joint or link flexibility
74
I xx
I I xy
I xz
I xy
I yy
I yz
I xz
I yz
I zz
I yy x 2 z 2 dv
I zz x 2 y 2 dv
I xz xz dv
I yz yz dv
I xy C I xy mxC yC
Here is the entire inertia tensor expressed in vector-matrix form using the parallel axis theorem.
T
T
AI C I m PC PC I3 PC PC
75
fi
ni
Inertial loads Newton and Euler translational and rotational dynamics equations
Force balance
Moment balance (about CGi) (using D'Alemberts principle, the inertial force is m{a}).
76
i 1 i Zi 1i 1
i 1 i i Zi 1i 1 Zi 1i 1
ai 1 ai i i Pi 1 i i i Pi 1
Fi1 mi 1 aCi 1
Ni1 C I i 1 i1 C I i 1
Inward iteration for kinetics
i:N 1
(without regard for frames of expression, for clarity)
Internal forces and moments
fi fi1 Fi
ni ni 1 i PCi Fi i Pi 1 fi1 Ni
Externally applied joint torques
i ni Z i
a g
0
This is equivalent to a fictitious upward acceleration of 1g of the robot base, which accounts for
the downward acceleration due to gravity (i.e. this conveniently includes the weight of all links).
77
) u ()
L k u k (,
1
1
T
T
mi VCi VCi i Ci I i i
2
2
0
0
ui uREF mi g PCi
ki
) k
k (,
i
u () ui
i 1
i 1
Note
) 1
T M ()
k (,
2
dt i i
) u ( ) .
This expression may be rewritten using L k (,
d k
dt i
k u
i
i
78
g
Y
FY
-FX
Free-Body Diagram
mg
FX
-FY
79
maCx
L
L
Fx m s 2 c
2
2
mL
0
( s 2 c )
Fx
2
0
a)
b)
c)
maCy
L
L
Fy mg m c 2 s
2
2
L
0
Fy mg m (c 2 s )
2
z0
0 I
0 I
mL
gc
2
mL
gc
2
where
I C I md 2 C I zz
mL2
4
80
L
2
1PC1 0
0
0
P1 0
0
0
0 0
0
a
1
1
0
c
a1 s
0
1
0
c
R s
0
0
0 0
0
s
c
0
C1
0
I yy
0
0
0
I zz
P P a
0
s
c
0
I xx
I1 0
0
C1
0
a0 g to account for gravity
0
C1
L 2
gs 2
1
1
F1 m aC1 m gc 2
0 0 gs
0 g gc
1 0 0
a P P
1
0
0
1
C1
L 2
gs 2
1
a1 gc
2
N1 I1 1 1 I1 1 0
I zz
C1
C1
81
0
f 2 0
0
0
n2 0
0
L 2
gs 2
1
1
2
1
f1 2 R f2 F1 m gc 2
n
1
1
2
0
0
0
1n1
0
mL
L I zz
gc
2
2
1n1 1Z1
I zz
mL2 mL
gc
4
2
c
0 f1 10 R 1 f1 s
0
s
c
0
L 2
L 2
L
gs 2
2 c 2 s
0
L
L
L 2
0 m gc m s c g
2
2
2
1
0
0
82
3) Lagrange-Euler formulation
0
1 0
I xx
I1 0
0
C1
0
I yy
0
0
0
I zz
Kinetic and potential energy are scalars invariant with frame of expression write k in {1} and u in {0}.
v
1
C1
0
L
2
0
0 0
1 I1 1 0 0
I
zz
1
C1
L
2 c
0
L
L
u 0 m g s mg s
2
0 2
0
1 mL2 2 1 2
I zz
2 4
2
1
mL2
L
L k u 2 I zz
mg s
2
4
2
d L L
dt
L
mL2
I
zz
d L
mL2
zz
4
dt
mL2
L
L
mg c
mL
I zz
gc
4
2
This result agrees with the sophomore and Newton-Euler recursion dynamics methods above to solve
the same problem.
83
M () V (, ) G()
M ( )
V (, )
G ()
M ( )
C ( )
N N 1
Coriolis matrix
2
N N 1
1
12 13 N 1N
2
N N centripetal matrix
N 1
G ()
B ( )
2
1
22 N2
M x ()
V (, )
Gx ()
where
M x () J
M () J
Vx (, ) J T V (, ) M () J 1 J
T
Gx () J T G ()
note
X J
X J J
84
L2
Y0
L1
X0
Newton-Euler recursion with outward kinematics and inertial calculations, followed by inward
kinetics balances yields.
2 I zz 2
m2 L1 L2 c2 m2 L22
2
4
m2 L22
1 I zz 2
4
m2 L1 L2 s2
2
2
2 m2 L2 c12
1
m1 L12
m2 L22
m2 L1 L2 c2 m2 L22
2
1 I zz1 I zz 2
m2 L1 m2 L1 L2 c2
1 I zz 2
4
4
2
4
mLc
m LL s
m Lc
2 1 2 2 22 m2 L1 L2 s2 12 1 1 1 m2 L1c1 2 2 12 g
2
2
where I zzi
mi 2 2
( Li hi ) .
12
These dynamics equations of motion are very complicated imagine how much worse these
equations will be for a spatial 6-axis robot such as the PUMA industrial robot.
85
M () V (, ) G()
m1 L12
m2 L22
2
I
I
m
L
m
L
L
c
2 1
2 1 2 2
zz1 zz 2
4
4
M ()
2
m LLc m L
I zz 2 2 1 2 2 2 2
2
4
I zz 2
m2 L1 L2 c2 m2 L22
2
4
m L2
I zz 2 2 2
m2 L1 L2 s2 2
2 m2 L1 L2 s2 1 2
2
V (, )
m2 L1 L2 s2 2
m2 L2 c12
m1 L1c1
2 m2 L1c1
2
G()
g
m
L
c
2
2
12
2
Configuration Space Representation
For the planar 2R robot, the dynamics equations of motion from the previous page are expressed
in configuration-space form below.
C ()
2 G ()
M () B()
B()
(
)
m L L s
2 1 2 2
2
m2 L1L2 s2
12
2
2
2
0
86
For the planar 2R robot whose dynamics equations of motion were presented analytically
above, here we calculate the required torques (i.e. solve the inverse dynamics problem) to provide the
commanded motion at every time step in a resolved-rate control scheme. Identical results are obtained
by both analytical equations and numerical Newton/Euler recursion.
Given
L1 = 1.0 m
L2 = 0.5 m
Both links are solid steel with mass density = 7806 kg m 3 and both have width and thickness
dimensions w = t = 5 cm. The revolute joints are assumed to be perfect, connecting the links at their
very edges (not physically possible, just a simplified model).
The initial robot configuration is
1 10
2 90
The constant commanded Cartesian velocity is
0
x
0
X y 0.5
(m/s)
The dynamics equations require the relative joint accelerations ; how do we find these? (See
the last page of the Acceleration Kinematics section in this ME 4290/5290 Supplement:
T
J 1 X J . In this example, X 0 0 .)
Simulate motion for 1 sec, with a control time step of 0.01 sec. The plots for various variables of
interest (joint angles, joint rates, joint accelerations, joint torques, and Cartesian pose) for this problem
are given on the following page.
In the last plot, note that the robot travels 0.5 m in the Y0 direction in 1 sec (which agrees with
the constant commanded rate of 0.5 m/s). The robot does not move in X; must move to compensate
for the pure Y motion, but we cannot control independently with only two-dof. The first three plots are
kinematics terms related to the resolved-rate control scheme; they are inputs to the inverse dynamics
problem. The joint torques are calculated by the numerical recursive Newton-Euler inverse dynamics
algorithm. These are the joint torques necessary to move this robots inertia in the commanded manner.
Notice from the joint angles, joint rates, joint accelerations, and joint torques plots that the robot is
approaching the 2 = 0 singularity towards the end of this simulated motion.
87
Joint Angles
90
80
1.8
x (r), y (g), (b) (m,rad)
70
(g) (deg)
1.6
60
50
(r),
1.4
40
1.2
30
20
0.8
0.6
0
10
0.2
0.4
0.6
time (sec)
0.8
0
0
0.2
Joint Rates
0.4
0.6
time (sec)
0.8
0.8
Joint Accelerations
1.5
10
0.5
0
-0.5
-1
-1.5
-2
0
-5
-10
-15
-2.5
-3
0
0.2
0.4
0.6
time (sec)
0.8
-20
0
0.2
Joint Torques
Joint Torques
80
250
200
60
70
50
40
30
20
150
100
50
0
10
0
0
0.4
0.6
time (sec)
0.2
0.4
0.6
time (sec)
0.8
-50
0
0.2
0.4
0.6
time (sec)
0.8
88
89
M () V (, ) F (, ) G ()
{
M ( )
V (, )
F (, )
G ()
, ,
The computed-torque control method is based on canceling the dynamics effects by using the
inverse dynamics method, in order to linearize the robot system for standard controller methods, such as
PID control.
90
Below is shown the overall resolved-rate-based robot control architecture developed at NASA
Langley Research Center in the Automation Technology Branch, with Dr. Bob on the team, in the early
1990s. This controller architecture was novel and is still unique in robot control.
91
In the top, forward control path above we see that resolved-rate (inverse velocity) is the basic
control method, as opposed to inverse pose control. Being a linear problem, the resolved-rate method
has several attractive benefits over IPK control including the ability to add velocity control inputs as
vectors, which is not possible with IPK (due to orientation).
The total Cartesian velocity vector (translational and rotational) input determining the robot
motion is the sum of four inputs, from the hand controller, position controller, vision controller, and
force/torque controller. The displacement of the hand controller is interpreted as a velocity input, for
both the translational and rotational modes. Often the joystick will have a hardware or software spring
return-to-center, including deadbands, to more easily turn off velocities after certain directions are
finished for the time being. The position, vision, and force controllers (details hidden) yield a Cartesian
velocity that will move the robot in the direction that the control algorithm determines in each case.
Not all control modes need be enabled at all times, but all can be combined is desired. This
could lead to controller contention. If the joystick enables force reflection, this provides an extra
sensory feedback back to the human operator which has been proven very effective in many experiments
in different research labs. Today we call this force-reflection aspect of telerobotics haptics.
92
XC +
XM
Master
Resolved
Rate
XA
Manipulator
F/T
Sensor
XF
FM
JT
(FMA)
KF
This control architecture was implemented by Dr. Bob and teams at NASA Langley Research
Center and Wright-Patterson AFB 8.
6F
8
R.L. Williams II, J.M. Henry, M.A. Murphy, and D.W. Repperger, 1999, Naturally-Transitioning Rate-to-Force Control in Free and
Constrained Motion, ASME Journal of Dynamic Systems, Measurement, and Control, Trans. ASME, 121(3): 425-432.
93
V(t)
L
R
iA(t)
vB(t)
armature voltage
armature inductance
armature resistance
armature current
back emf voltage
M(t)
M(t)
M(t)
JM
CM
n
94
Simplifying Assumptions
rigid motor, load shafts
n >> 1
(the large gear ratio n reduces speed and increases torque)
Real-world vs. model characteristics
Real World
nonlinear
linearized
coupled
decoupled
95
We must derive all linear ordinary differential equations (ODEs) describing the dynamics of an
armature-controlled DC servomotor driving a single robot joint / link. This is an electromechanical
system, including a gear train. We must perform modeling, simulation, and control. The system
diagram was shown earlier in this section.
Armature Circuit Diagram
Electrical Model
(1)
Electromechanical coupling
The generated motor torque is proportional to the armature current
(2)
The back-emf voltage is proportional to the motor shaft angular velocity
(3)
96
Mechanical Model
Eulers Equation (the rotational form of Newtons Second Law):
Free-body diagrams
Load
(4)
Motor
(5)
where LR ( t ) is the load torque reflected to the motor shaft.
Gear ratio
(6)
97
Substitute
into (4)
(8)
JL
n2
C
CE CM 2L
n
JE JM
98
1
is small; therefore we can choose a nominal JL and
n2
assume it is constant without much error in control.
For common industrial robots, n >> 1 so
For example, the NASA 8-axis ARMII robot downstairs has n = 200 with harmonic gearing.
This is why we can ignore the time-varying robot load inertia and design decoupled independent linear
joint controllers. The gear-reduced load inertia variation is then treated as a disturbance to the single
joint controller.
An alternative is to reflect the motor inertia and damping to the load shaft as shown below, but
we will use the first case above.
( J L n 2 J M )L (C L n 2 C M )L L
99
Use Laplace transforms on different ODE pieces of the system model and then connect the
components together in blocks connected by arrows representing variables. A transfer function goes
inside each block representing component dynamics. This block diagram is shown below, in
MATLAB/Simulink implementation, including a disturbance torque.
Assuming perfect encoder sensor for angular position feedback, we include block for the singlejoint PID controller. The MATLAB/Simulink implementation is shown below.
100
Use PID w/ approximate derivate in Simulink numerical differentiation can lead to errors and
numerical instability and thus it is to be avoided if possible.
Trial and Error PID Design
Start with the P gain value start low and increase P to get the desired time nature of response.
Then add the D gain value term for stability. Add the I gain value to reduce steady-state error. Always
use Simulink to simulate control and dynamics response of the single joint/link system for different PID
choices; compare various cases and select a suitable controller in simulation.
A better approach is to perform analytical design for PID controllers using classical control
theory, such as in ME 3012.
Controller Performance Criteria
Stability
Rise Time
Peak Time
Percent Overshoot
Settling Time
Steady-state error
These performance criteria provide a rational basis for choosing a suitable controller, at least in
theory and simulation. The real world always provides some additional challenges (noise, modeling
errors, nonlinearities, calibration, backlash, etc.).
101
Gravity is known and expected. However, in single joint control we can include the effect of gravity as
a disturbance. First let us model the gravity effect for a single joint. Lump all outboard links, joints, and
motors as a single rigid body.