As discussed in the last chapter, a Cartesian velocity V = v ω
is linearly related to the joint velocity ˙qby a Jacobian matrixJ, as expressed in (3.22).
Since the Cartesian velocityV contains an angular velocity vectorω, which, according to equation (3.8), is not a time-derivative of some vector, the Jaco- bian matrixJ cannot be determined directly by taking the partial derivative of a 6-dimensional position/orientation vectorξ= p
ρ
with respect to the joint position vectorq, i.e.,J =∂ξ/∂qin general. Although the upper halfJv of the Jacobian matrixJ = Jv
Jω
is the partial derivative of a 3D position vectorp(q), i.e., Jv =∂p/∂q, provided that pis projected on the fixed base frame, the bottom half Jω of the Jacobian matrix is not. Nevertheless, we can still find a symbolical form for the traditional Jacobian matrixJ that is 6 bynand playing a role of linear transformation in tangent space from joint to Cartesian velocities if a given robot hasnjoints such thatq∈Rn.
In order to develop an explicit symbolical form for the Jacobian matrix in terms of all the joint positions in q∈Rn of a given robot, we now start with a detailed analysis of the Cartesian velocityV = v
ω
that contains a linear velocityv and an angular velocityω of framenattached on the hand or end-effector linkn. It can be observed that the motion of each link, say link i, will contribute its linear velocity vi of frame i as part to the total amountv of the hand frame and also contribute its angular velocity ωi as part to the total amountωof the hand. In other words, the robotic hand, i.e.
Link i-1 Link i
Frame i-1
Frame n Link n
pni-1
θi
vn
Frame n
Fig. 4.9 The motion of link nsuperimposed by the motion of linki
link n, is kinematically the ”busiest” link of the robot, because every other link movement will impose on the last link, as shown in Figure 4.9.
With the above interpretation, we can reasonably write v=v1+ã ã ã+vn, and ω=ω1+ã ã ã+ωn,
where each term of the equation must refer to a common projection frame.
After a further derivation, each term of the robotic hand linear velocityv(n) and angular velocity ω(n), both of which are projected on frame n of the hand, can be written as
ωi(n)=rin−1θ˙i, and vi(n)=ωi(n)×pni−1(n)= (pin−1×rni−1) ˙θi (4.12) fori= 1,ã ã ã, nif all thenjoints arerevolute, whererin−1is the last (third) column of the rotation matrixRin−1 and represents thez-axis of framei−1 with respect to framen. This shows that
V(n)= v(n) ω(n)
= n
i=1(pnin−1×rni−1) ˙θi i=1rni−1θ˙i
. (4.13)
Comparing this toV =Jq˙with ˙q= ( ˙θ1 ã ã ã θ˙n)T, we achieve a basic equation that describes the formation of a 6 bynJacobian matrix:
J(n)= p0nìr0n ã ã ã pnn−1ìrnn−1 r0n ã ã ã rnn−1
. (4.14)
If thej-th joint of the robot isprismatic, since equation (4.12) has to be changed to
ωj(n)= 0, and vj(n)=rnj−1d˙j, the j-th column pjn−1×rjn−1
rjn−1
in equation (4.14) must be replaced by rnj−1
03
with the 3 by 1 zero column vector 03 at the bottom due to no rotation contributed by a prismatic joint.
Once we haveJ(n), it becomes easier to find a Jacobian matrix projected on any one of the link frames other than the n-th hand frame. For instance, if we wish to findJ(k) that is projected on framekfor 0≤k < n, then
J(k)= Rnk O3×3
O3×3 Rnk
J(n), (4.15)
whereRknis the 3 by 3 rotation matrix representing the orientation of frame nwith respect to framek, andO3×3is the 3 by 3 zero matrix.
To calculate the Jacobian matrix using (4.14) for ann-joint robot, it can be seen that eachpjnand eachrnj forj= 0,ã ã ã, n−1 are the last (fourth) column and the third column of the homogeneous transformation Ajn = (Anj)−1, respectively. It is also observable that the farther the ”distance” between frame j and n is, the more lengthy each element of Ajn will be. Therefore, we often try to first develop a relatively shorter form of Jacobian matrix by projecting it on a middle frame between the base and the hand. For instance, ifn= 6, thenJ(3) may be the Jacobian matrix with the simplest symbolical form for the robot. Afterwards, through equation (4.15), it can be converted to the Jacobian matrix projected onto any desired frame.
As an illustrative example, let us look back at the Stanford-Type robot in Figure 4.2 along with its D-H table and all the one-step homogeneous transformations in (4.2). Let us also assumed6= 0 so that there are no more length parameters beyond frame 3 in this particular robot. This assumption is also very common and is equivalent to merging the origins of frames 5 and 6. It will offer a huge simplification for the next Jacobian matrix derivation.
Under this assumption, we now develop the shortest symbolical form of Jacobian matrixJ(3)that is projected on frame 3 for the Stanford-Type robot arm. According to equation (4.14), let us first invert the first three one-step homogeneous transformation matrices given by (4.2) as follows:
A01=
⎛
⎜⎝
c1 s1 0 0
0 0 1 −d1
s1 −c1 0 0
0 0 0 1
⎞
⎟⎠, A12=
⎛
⎜⎝
c2 s2 0 0
0 0 1 0
s2 −c2 0 0
0 0 0 1
⎞
⎟⎠,
and
A23=
⎛
⎜⎝
1 0 0 0
0 1 0 0
0 0 1 −d3
0 0 0 1
⎞
⎟⎠.
Then, we calculate
A13=A23A12=
⎛
⎜⎝
c2 s2 0 0
0 0 1 0
s2 −c2 0 −d3
0 0 0 1
⎞
⎟⎠,
and
A03=A13A01=
⎛
⎜⎝
c1c2 s1c2 s2 −d1s2
s1 −c1 0 0 c1s2 s1s2 −c2 d1c2−d3
0 0 0 1
⎞
⎟⎠.
By noticing that joint 3 of the Stanford-Type robot is prismatic and all the others are revolute, it is now ready to determine the Jacobian matrixJ(3) in the following form:
J(3)= p03×r03 p13×r13 r23 03 03 03 r30 r13 03 r33 r43 r35
. With a further cross-product calculation, we finally obtain
J(3)=
⎛
⎜⎜
⎜⎜
⎜⎝
0 d3 0 0 0 0
−d3s2 0 0 0 0 0
0 0 1 0 0 0
s2 0 0 0 −s4 c4s5
0 1 0 0 c4 s4s5
−c2 0 0 1 0 c5
⎞
⎟⎟
⎟⎟
⎟⎠
. (4.16)
Note that the above procedure to find a shortest symbolical Jacobian ma- trixJ(k) at a middle framek is valid if and only if there is no more length beyond framek. In other words, ifd6 = 0 for the Stanford-Type robot, we have no other choice than findingJ(6)first before re-projecting it to any other frame by (4.15).
Since the top 3 by 6 block ofJ(3) in (4.16) corresponds to the Cartesian linear velocity part Jv(3), after it is re-projected on the base viaR30Jv(3) = Jv(0), one can alternatively determine it and match it by the mathematical Jacobian definition:
Jv(0)=∂p60
∂q .
Due to the assumption d6 = 0, the origins of the last three frames are merged to the common wrist center point so that p60=p30 which is the last (fourth) column ofA30 given in (4.8), i.e.,
p60=p30=
⎛
⎝ d3c1s2
d3s1s2
d1−d3c2
⎞
⎠. (4.17)
After taking partial derivative of p30, the non-zero leftmost 3 by 3 block of Jv(0) becomes
∂p30
∂q =
⎛
⎝−d3s1s2 d3c1c2 c1s2 d3c1s2 d3s1c2 s1s2 0 d3s2 −c2
⎞
⎠.
On the other hand, if we pre-multiplyJv(3), the top 3 by 6 block of (4.16), by the rotation matrix
R03=
⎛
⎝c1c2 s1 c1s2
s1c2 −c1 s1s2
s2 0 −c2
⎞
⎠, (4.18)
we can immediately verify that the two results are identical. However, the above partial derivative approach is not applied to the bottom 3 by 6 block of (4.16), i.e.Jω(3), which corresponds to the angular velocityω.
In general, for a robot with njoints, the first half of its Jacobian matrix, Jv(k) that is 3 by n and corresponding to the linear velocity v, determined by (4.14) through (4.15) and projected onto framekfor 0≤k≤nis always related to the partial derivative of the position vector by
∂pn0
∂q =Rk0Jv(k). (4.19)
Therefore, in addition to (4.14) and (4.15), directly taking partial deriva- tive on the position vector pn0 that must be referred to and projected onto the fixed base with respect to the joint position vectorqis an alternative way to findJv, but not forJωat all.
If we add an offsetd2between the centers of joint 1 and joint 2 for the above Stanford-Type arm, then, it immediately returns back to the original Stanford robot. Using the same algorithm, the Jacobian matrix of the Stanford robot can be found as
J(3) =
⎛
⎜⎜
⎜⎜
⎜⎝
d2c2 d3 0 0 0 0
−d3s2 0 0 0 0 0 d2s2 0 1 0 0 0 s2 0 0 0 −s4 c4s5
0 1 0 0 c4 s4s5
−c2 0 0 1 0 c5
⎞
⎟⎟
⎟⎟
⎟⎠
, (4.20)
which is also projected to frame 3, and needs to be pre-multiplied by R03 O
O R03
in order to getJ(0) that is projected onto the base.
Once a Jacobian matrix projected on any desired frame is developed in symbolical form for a given robot, it will be used forever in future numerical computations. One of the most typical applications for a Jacobian matrix is to play a pivotal role in roboticdifferential motionplanning.
A robot arm is often digitally controlled by updating every joint position at each sampling point during the course of trajectory-tracking. In addition to the Cartesian motion and joint motion planning methods that have been introduced in the previous section, we can also rely on directly calculating dif- ferential increments of all the joint values to control the robotic hand to follow a given desired trajectory. Then, the desired trajectory has to be represented in tangent space, such as in the form of Cartesian velocityV = v
ω
. Letq(t) = (θ1(t) ã ã ã θn(t))T be the instantaneous joint position vector for ann-joint robot arm during the motion. Obviously, the updated joint position vector after aΔttime interval is given by the following Taylor series:
q(t+Δt) =q(t) + ˙q(t)Δt+ 1
2!q(t)Δtă 2+ã ã ã.
If we consider the first-order approximation and notice that ˙q=J−1V, then, q(t+Δt)≈q(t) +J−1V Δt, (4.21) where the Jacobian matrix J evaluated at q(t) is assumed to be invertible and both J and the Cartesian velocity vector V must be projected on the same reference frame. For an acceptable tracking accuracy, the sampling time intervalΔtin (4.21) must be very small. Otherwise, we have to consider the following second-order approximation:
q(t+Δt)≈q(t) +J−1V Δt+1
2J−1( ˙V −J J˙ −1V)Δt2. (4.22) The second-order approximation does offer much better tracking accuracy than the first-order one under the sameΔt, but it requires to calculate ˙Jand to know the Cartesian acceleration vector ˙V. It is always possible to calculate J˙as long asJis available symbolically, even though it is tedious. However, to know both vand ˙v of the translation part for a given trajectory, it is better to have the trajectory represented in a parametric equation.
For example, if the desired path is a planar circle centered at (x0, y0) with a radiusron thez= 0 plane, instead of using the Cartesian circular equation (x−x0)2+ (y−y0)2=r2, we may employ the following equivalence:
x(t) =x0+rcos(βt) y(t) =y0+rsin(βt),
whereβ is a parameter to be specified as the tracking speed. In this case, the Cartesian linear velocity turns out to be
v=
⎛
⎝x˙
˙ y
˙ z
⎞
⎠=
⎛
⎝−rβsin(βt) rβcos(βt)
0
⎞
⎠,
and further we can have the Cartesian linear acceleration by directly taking time-derivative ofv.
However, to determine a parametric equation for the rotation part, we have to utilize the k−φprocedure, as discussed in Chapter 2, to determine the non-integrable angular velocityω. Namely, for any desired orientation change R, first, find the correspondingk and φ by equations (2.9) and (2.11), and second, uniformly sample the angleφto determine an incrementΔφ=φ/N in each sampling intervalΔt, whereNis the total number of sampling points.
Then, the angular velocity for the desired orientation change is ω= ˙φk≈Δφ
Δtk,
which, of course, is the first-order approximation, too.
A symbolical form of Jacobian matrix will also be quite useful for a robot arm to determine its kinematic singularity. For a 6-joint robot, its Jacobian matrixJ is 6 by 6, and all possible singular configurations are the solutions of the following equation:
det(J) = 0, (4.23)
and based on (4.15), all the solutions of (4.23) are independent of the projec- tion frame of the Jacobian matrixJ, because the determinant of any rotation matrix is always +1.
A singular configuration of the robot means that some of the 6 d.o.f. is (are) lost. Since solving the inverse kinematics in differential motion always requires inverting the Jacobian matrix, a vanishing determinant of the Jaco- bian matrix is clearly the sufficient and necessary condition of singularity. In the case of non-square Jacobian matrices, such as a redundant robotic sys- tem, where the number of joints exceeds the number of the Cartesian d.o.f., equation (4.23) has to be modified to
det(J JT) = 0. (4.24)
For example, we have just derived a symbolical form of the Jacobian matrix J(3) given in (4.16) for the 6-joint Stanford-Type robot. By taking advantage of the zero upper-right 3 by 3 corner ofJ(3), we can readily calcu- late det(J(3)) = −d23s2s5. Since the prismatic joint value d3 is never zero in
general cases, either sinθ2= 0 or sinθ5= 0 is the singular point of this par- ticular robot. We can further observe thatθ2= 0 or 1800is a “hanging hand down” or “raising hand up” special configuration, where the robot cannot move forward in any horizontal radial direction from the base origin. More- over, ifθ5 = 0, the z3 and z5 axes are lined up so that both the θ4 and θ6
rotations will be about the same axis and thus, will no longer be independent to each other. In other words, one of the three rotational d.o.f. is lost.
Intuitively, a redundant robotic system may directly reduce the possibility of singularity, but still be hard to completely eliminate the singularity, in particular the rotational singularity, such as in the case of θ5 = 0 for the Stanford-Type robot. To indirectly avoid a singular point, often one has to sacrifice the accuracy of path tracking before the singular point is reached.
Unfortunately, most singular cases are unpredictable, and often, it would be too late to escape from the dead configuration once it occurs. In the next chapter, we will introduce and study this in more detail on redundant robotic systems. By taking advantage of the kinematic redundancy, we may have more room to control the robot configurations to always stay away from the singularity.