Академический Документы
Профессиональный Документы
Культура Документы
In the scenarios of unfriendly environments like the dark, severe weather, hazardous or
unhealthy environments, the earthmoving machines should be used effectively, if their
operations are controlled automatically. This can be achieved if the kinematics and dynamics
of the machines are understood. A mathematical kinematic and static model of such an
earthmoving machine, a backhoe excavator is presented in this chapter. A mathematical
dynamic model of a backhoe excavator (in digging mode) is presented in the next chapter.
A backhoe excavator is designed to perform a task in the 3-D space. The bucket of the
backhoe is required to follow a planned trajectory to carry out the digging task in the
workspace. This requires control of position of each link (swing link, boom, arm, and
bucket) and joints of the backhoe to control both the position and orientation of the bucket.
To program the bucket motion and the joint link motions, a mathematical model of the
backhoe is required to refer all geometrical and/or time based properties of the motion. In
other words, kinematic model purely encodes the geometric relationship of the mechanism
under study. Moreover; the kinematic model gives relation between the position and
orientation of the bucket and spatial positions of joint-links. A problem of describing the
complete kinematic model for an autonomous operation of the backhoe excavator, and the
static model of the backhoe is considered in this chapter. This chapter includes direct
kinematic model (forward kinematic model), inverse kinematic model (backward kinematic
model), the differential motion of the backhoe refer to the differential motion for velocity
only, and static force model of the backhoe excavator.
23
To develop kinematic relations for the geometry of the backhoe, firstly the coordinate
frames will be assigned to the backhoe excavator links. Then the forward kinematics will be
followed by the inverse kinematics of the backhoe, followed by the velocity equations of
each link of the backhoe, and finally backhoe static model is presented. Fig. 3.1 describes
the schematic side view of the backhoe excavator.
24
joint 2, which connects swing link with the boom link as shown in Fig. 3.2. Its positive
direction is arbitrarily chosen to be into the page. Similarly, Z2− and Z3− axes are determined
for their respective coordinate frames, and for joint 3, and joint 4 respectively.
After assigning all Zi axes except for the bucket link Z4 axis, by following step 2, Xi
and Yi axes, for i = 1, 2, and 3, will now be determined. The X1− axis is taken perpendicular
to the plane containing Z0− and Z1− axes (case (i) of step 2 as per appendix A), and the Y1−
axis has no choice and fixed to complete the right-handed orthonormal first local coordinate
frame X1 Y1 Z1 O1 . Now to determine the X2− axis we will follow the case (ii) of step 2,
because Z1− and Z2− axes are parallel. The X2− axis is chosen along the common normal of
Z1− and Z2− axes, which passes through origin of frame {1}, and the Y2− axis has been fixed
to complete the right-handed orthonormal local coordinate frame {2}. Similarly, the case of
determining X3− also falls into the case (ii) of the step 2, and the X3− axis has been chosen
along the common normal of Z2− and Z3− axes, which passes through origin of frame {2},
and the Y3− axis has been chosen to complete the local coordinate frame {3}.
Coordinate frames {i}, i = 1, 2, and 3, have been determined. The coordinate frame to
link 0 (immobile base), will now be determined by following step 4 of the algorithm. The
X0− axis is chosen to be perpendicular to the Z0− axis, and parallel to the X1− axis in the
25
home position. The origin of the frame {0} can be chosen at a convenient reference such as a
suitable location along axis of joint 1 so as to make joint angle θ1 zero. So, the origin of the
frame {0}, O0 has been placed at the point of intersection of Z0− and X0− axes, so that it lies
on the horizontal line passing through the origin of frame {1}, O1 . Again the Y0− axis
completes the local coordinate frame {0} (Fig. 3.2).
The bucket frame {4} is chosen at the tip of the bucket teeth, such that the origin of the
frame {4}, O4 becomes the center point of the bucket width. This point is called the “tool
point”, or “bucket point”, and the frame {4} is called the bucket frame. The Z4− axis is
chosen along the direction of the Z3− axis as shown in Fig. 3.2. The Z4− axis is the direction
of “approach”. Now the X4− axis is perpendicular to both Z3− and Z4− axes and passing
through the origin of frame {4} O4 . The X4− axis is the “normal” direction. The Y4− axis
completes the local coordinate frame {4}, and is the “orientation” direction.
After assignment to the all coordinate frames is done, any point P in the ith coordinate
frame can be written as iP. Where, point iP refers to the point P with respect to frame {i}.
The iP = [ipx ipy ipz 1]T, where the fourth component 1 is the scale factor. The scale factor
has been taken 1 to make the components of Cartesian representation and homogeneous
representation identical. Where, ipx, ipy, and ipz indicate the x, y, and z coordinates of point P
with respect to the ith coordinate frame, respectively.
26
relationship between these links in terms of four D-H parameters (θi , di , αi , ai ). i-1Ti, can be
given as follow:
Cθi −Sθi Cαi Sθi Sαi ai Cθi
i-1 Sθi Cθi Cαi −Cθi Sαi ai Sθi
Ti = ….. (3.1)
0 Sαi Cαi di
0 0 0 1
Where, Cθi = cos(θi ), Sθi = sin(θi ), Cαi = cos(αi ), and Sαi = sin(αi ).
Here, ai and αi are two link parameters and di and θi are two joint parameters. Out of
these four parameters, only one is a variable for link i, the joint displacement variable q i (θi )
and other three are constant. These all parameters are defined in section A.1 of appendix A
for the Denavit-Hartenberg guidelines and notation.
27
The substitution of the parameter values of table 3.1 into equation (3.1) gives the
following homogeneous transformation matrices:
C1 0 S1 a1 C1
0 S 0 −C1 a1 S1
T1 = 1 …. (3.3)
0 1 0 0
0 0 0 1
C2 −S2 0 a2 C2
1 S C2 0 a 2 S2
T2 = 2 …. (3.4)
0 0 1 0
0 0 0 1
C3 −S3 0 a3 C3
2 S C3 0 a 3 S3
T3 = 3 …. (3.5)
0 0 1 0
0 0 0 1
C4 −S4 0 a4 C4
3 S C4 0 a 4 S4
T4 = 4 …. (3.6)
0 0 1 0
0 0 0 1
Now, the location of the bucket from the Fig. 3.2 can be specified by locating the
rotational axis of the bucket motion, i.e. to determine the coordinates of point O3 = A3 . The
coordinates of the point O3 with respect to base frame 0 i.e. 0PA3 can be given as:
0
PA3 = 0T3 3PA3 …..(3.7)
But,
0
T3 = 0T1 1T2 2T3
So,
0
PA3 = 0T1 1T2 2T3 3PA3
Where, 3PA3 indicates the coordinates of the point A3 with respect to the coordinate
frame {3}. So, 3PA3 = [0 0 0 1]T.
With the help of the equations (3.3), (3.4) and (3.5) 0T3 can be given as follow:
Where, C23 = cos(θ2 + θ3 ), and S23 = sin(θ2 + θ3 ). By neglecting the fourth raw
and the fourth column of the equation (3.8) one yields 3×3 rotational matrix 0R3, which
shows the rotation of the frame {3} with respect to base frame {0}.
By putting the values of 0T3 from equation (3.8), and 3PA3 = [0 0 0 1]T into equation
(3.7), one yields;
0
S1 (a1 + a2 C2 + a3 C23 ) a2 S2 + a3 S23 1 T
PA3 = C1 (a1 + a2 C2 + a3 C23 )
…. (3.9)
Here, superscript T refers to the transposition of the raw matrix i.e. a position vector. If
the values of the joint variables, θ1 , θ2 , θ3 are known then the location of the point O3 = A3
in the base coordinate system can be determined by equation (3.9).
Similarly, the coordinates of point A4 with respect to the base frame {0} can be found
out as 0PA4 = 0T4 4PA4 , where 4PA4 = [0 0 0 1]T. The transformation matrix 0T4 can be found
by multiplying 0T3 with 3T4 and can be given as follows:
Where, C234 = cos(θ2 + θ3 + θ4) and S234 = sin(θ2 + θ3 + θ4). This will give the
coordinates of the point A4 as:
4
𝐏A 4 =
C1 (a1 + a 2 C2 + a 3 C23 + a 4 C234 ) S1 (a1 + a 2 C2 + a 3 C23 + a 4 C234 ) a 2 S2 + a 3 S23 + a 4 S234 1 T
….(3.10a)
This means that if the joint variable values θ1, θ2, θ3, θ4 are known, the position and
orientation of the point A4 or O4 can be known with respect to the base frame {0}.
29
3.2.2 The relation between lengths of the piston rods in actuators and joint angles
The backhoe is a construction machine that uses hydraulic actuators to carry out the digging
operation. In the hydraulic cylinder, the pressure on the piston is controlled. So ultimately
the lengths of the piston rods determine the joint angles of the respective links. This means
that there is a direct relation between the piston rod length and the joint angles, and the
lengths of the piston rods are determined here by the line segment joining two actuator’s
attachment points, e.g. from Fig. 3.2 it can be seen that the length of the actuator 3 is A5A6.
(a)
(b)
Fig. 3.3 Geometry of top view of the base to swing link (a) Full view (b) Enlarged view
Firstly, the relation between actuator 1, actuator 2 and joint angle θ1 will be
determined. Fig. 3.3 shows the top view of the assembly of base (fixed) link and the swing
30
link of the backhoe. From the Fig. 3.3, it can be seen that points S and U are the center of the
holes where cylinders actuator 1 and actuator 2 (swing cylinders) link are attached to the
fixed link respectively. Points T and V are the points where piston rods of actuator 1 and
actuator 2 are attached to the swing link respectively. This means the distances SU and TV
will always remain constant. Apart from this if the point X is taken as the middle point of the
line segment SU, then from the geometry point X aligns with the origin of frame {0} (i.e.
O0 ) horizontally.
This gives the distances XS, XU, and XO0 to be constant. Similarly, if the midpoint of
the line segment TV is Y then the angle between lines YO0 , O0 T and between the lines
YO0 , O0 V is same and it is ∠YO0V = ∠YO0T = α, and it is also constant once the geometry
is designed, as shown in fig. 3.3. (Because TY = YV). Also the distances O0 T, and O0 V are
constant, similarly O0 S, O0 T, O0 U, O0 V are also constant from the geometry. Apart from
this line O0 Y always coincides with the line O0 O1 (i.e. X1 axis). The θ1 is the angle between
axis X0 and X1 measured from the axis X0 in the clock wise direction. This gives the angle
between lines YO0 and the axis X0 to be θ1 as shown in Fig. 3.3. This means that to find the
length of the actuators 1, and 2 one may find the ST, and UV and then the remaining
distance of the hydraulic cylinders should be added to the values of ST, and UV respectively
(see Fig. 3.3). In our case we will call only ST to be the length of actuator 1, and UV to be
the length of the actuator 2.
From the geometry shown in the Fig. 3.3,
(ST)2 = (STˊ′)2 + (TTˊ′)2 … (3.11)
STˊ′ = O0 X + O0 T cos(α − θ1 )
TT′ˊ = XS – O0 T sin(α − θ1 )
From equation (3.11) one yields,
2
2 2
ST = O0 X + O0 T cos α − θ1 + XS – O0 T sin(α − θ1 ) … (3.12)
Equation (3.12) gives the length of the piston rod of the hydraulic actuator 1 in terms
of joint angle θ1. This means that if the joint angle θ1 is known then the length of the piston
rod of actuator 1, ST can be found out from equation (3.12).
On the other hand, if the length of the piston rod of actuator 1, ST is known then the
joint 1 angle θ1 can be determined as follows:
2 1 2
−1
XS 4 (O0 S)2 (O0 T)2 − (O0 S)2 +(O0 T)2 − (ST)2
θ1 = α − π − tan + tan−1
O0 X (O0 S)2 +(O0 T)2 − (ST)2
….. (3.13)
31
In equation (3.13) gives the value of the joint 1 angle θ1 if the length of the piston rod
of actuator 1 = ST is known.
Also from the geometry shown in the Fig. 3.3,
(UV)2 = (UVˊ′)2 + (VV′ˊ)2 …. (3.14)
UVˊ′ = O0 V cos α + θ1 + O0 X
VV′ˊ = O0 V sin α + θ1 − XU
From equation (3.14) one yields,
2 2 2
UV = O0 V cos α + θ1 + O0 X + O0 V sin α + θ1 − XU … (3.15)
Equation (3.15) gives the length of the piston rod of hydraulic actuator 2 in terms of
joint angle θ1. This means that if the joint angle θ1 is known then the length of the piston rod
of actuator 2, UV can be found out from equation (3.15).
On the other hand, if the length of the piston rod of actuator 2, UV is known then the
joint 1 angle θ1 can be determined as follows:
2 1 2
−1
XU 4 (O0 U)2 (O0 V)2 − (O0 U)2 +(O0 V)2 − (UV)2
θ1 = π − α − tan + tan−1
O0 X (O0 U)2 +(O0 V)2 − (UV)2
…. (3.16)
In equation (3.16) gives the value of the joint 1 angle θ1 if the length of the piston rod
of actuator 2 = UV is known.
Now, let’s see, how the length of the piston rod of actuator 3 = A5A6 can be found out.
From the Fig. 3.4, it can be seen that the A6 is the point, where the actuator 3 (hydraulic
cylinder) is pin jointed to the swing link. From the geometry A1 A5 , A1 A6 are fixed, and thus
known to us. So for the Δ A5A1A6 the ∠A5A1A6 = β, then from the cosine rule;
2
A1 A5 + A1 A6 2 − A5 A6 2
cos β =
2 A1 A5 A1 A6
…. (3.17)
Now, θ2 is the angle between the axes X1 and X2, measured from X1 in the clock wise
direction as shown in Fig. 3.4. Apart from this for the geometry of the boom the ∠A5A1A2 =
γ1 , and it is fixed and thus known to us. Also from the boom to swing link assembly, the
angle between the line A1A6 and the axis X0 = γ2 is also fixed and thus known to us. These
yields,
θ2 = π – γ1 - β - γ2
And this gives,
β = π – γ1 - θ2 - γ2
32
Fig. 3.4 Geometry of boom assembly
tan(π − γ1 − θ2 − γ2 ) = 2 2 2
A1 A5 + A1 A6 − A5 A6
This gives,
1
4 (A1 A5 )2 (A1 A6 )2 − A1 A5 2 + A1 A6 2 − A5 A6 2 2 2
θ2 = π − γ1 − γ2 − tan−1 2 2 2
A1 A5 + A1 A6 − A5 A6
…. (3.19)
Thus, the equation (3.19) gives the value of joint 2 angle θ2 if the length of the piston
rod of actuator 3 = A5A6 is known.
Actuator 4 connects the boom link to the arm link, known as arm cylinder, and it
controls the motion of the arm, at joint 3. It can be seen that θ3 is the angle between the axes
X2 and X3, measured from X2 in the clock wise direction. The length of the piston rod of
actuator 4 = A7A8. From the Fig. 3.5, it can be seen that the ∠A1A2A7 = δ1 and ∠A8A2A3 =
δ2 are constant for the geometry of boom and arm respectively, and thus are known to us.
33
Fig. 3.5 Geometry of arm assembly
For the ΔA8A2A7, if the cosine rule for ∠A8A2A7 is applied, one yields;
2
A2 A7 + A2 A8 2 − A7 A8 2
cos A8 A2 A7 =
2 A2 A8 A2 A7
…. (3.20)
Where,
∠A8 A2 A7 = 2π − δ1 − δ2 − θ3 − π
∠A8 A2 A7 = 3π − δ1 − δ2 − θ3
The length of the piston rod of actuator 4 = A7A8 can be found from the equation
(3.20) as follows:
2 2 2
A7 A8 = A2 A7 + A2 A8 − 2 A2 A7 A2 A8 cos 3π − δ1 − δ2 − θ3 …. (3.21)
Equation (3.21) gives the length of the piston rod of actuator 4, if the joint 3 angle θ3 is
known. The reverse is also possible that if the length of the piston rod of actuator 4 = A7A8 is
known, then the joint 3 angle θ3 can be found out by solving the equation (3.21) in terms of
tan function instead of sine or cosine functions for θ3, as follows:
1
4 (A2 A7 )2 (A2 A8 )2 − A2 A7 2 + A2 A8 2 − A7 A8 2 2 2
−1
θ3 = 3π − δ1 − δ2 − tan 2 2 2
A2 A7 + A2 A8 − A7 A8
….. (3.22)
Now let’s move on to find the length of the piston rod of actuator 5 (bucket actuator) =
A9A10 (Fig. 3.6) in terms of the joint 4 angle θ4, and later on find the angle θ4 in terms of the
34
piston rod length of actuator 5 = A9A10. It can be seen from the Fig. 3.6, the actuator 5
causes the bucket to rotate about the joint 4 axis that is Z4. The task to find the length of the
actuator 5 is tricky, because unlike other actuators, one end of the actuator 5 (point A10) is
not directly attached to the bucket, and this makes the geometry more complicated. To
understand this let’s understand the Fig. 3.6.
(a)
(b)
Fig. 3.6 Geometry of bucket assembly (a) Full view (b) Enlarged view
35
For the ΔA9A12A10, the distance A9A12 is constant and thus known to us. Also the
length A10A12 indicates the length of the link that connects the arm of the backhoe to the
piston rod of the bucket cylinder and it is also constant. So from the cosine rule,
2
A9 A12 + A10 A12 2 − A9 A10 2
cos A9 A12 A10 =
2 A9 A12 A10 A12
…. (3.23)
Where, ∠A9 A12 A10 = 2π − ε1 − δ1 , here ε1 = the major ∠A9A12A3 and it is constant
and thus known for us, and δ1 = the ∠A3A12A10 as shown in Fig. 3.6. But the δ1 is not
constant, but still we will leave it as undetermined yet.
The length of the piston rod of actuator 5 = A9A10 is determined by the following
equation (3.24), if the value of δ1 is known,
2 2 2
A9 A10 = A9 A12 + A10 A12 − 2 A9 A12 A10 A12 cos 2π − ε1 − δ1 …. (3.24)
But we want the length of the piston rod of actuator 5 = A9A10 in terms of the joint
angle θ4. Firstly, let us find δ1 in terms of the length of the piston rod of actuator 5 = A9A10
and that is given by,
1
4 (A9 A12 )2 (A10 A12 )2 − A9 A12 2 + A10 A12 2 − A9 A10 2 2 2
−1
ζ1 = 2π − ε1 − tan 2 2 2
A9 A12 + A10 A12 − A9 A10
…. (3.25)
Now let us find ζ1 in terms of θ4. From the Fig. 3.6 it can be seen that,
2π = ∠A4 A3 A11 + ∠A11 A3 A9 + ∠A9 A3 A12 + ∠A12 A3 A2 + ∠A2 A3 A4 …. (3.26)
Now, let’s concentrate on the quadrilateral A10A12A3A11. We already found the value
of the ∠A10A12A3 = ζ1 in equation (3.26). Let’s assume the ∠A10A11A3 = ζ2 , the ∠
A12A10A11 = ζ3 , and the ∠A12A3A11 = ζ4 . From the Fig. 3.6 it can be seen that,
ζ4 = 2π − ∠A12 A3 A2 − ∠A2 A3 A4 − ∠A4 A3 A11
But ∠ A2A3A4 = θ4 – π from Fig. 3.6. So;
ζ4 = 2π − ∠A12 A3 A2 − θ4 − π − ∠A4 A3 A11 …. (3.27)
Here, the ∠A12A3A2 = η1 is fixed for the geometry, and thus known for us. Also the ∠
A4A3A11 = η2 is also fixed (for the bucket geometry) and known to us. This leads to,
ζ4 = 3π − η1 − η2 − θ4 …. (3.28)
Also for the quadrilateral A10A12A3A11,
ζ1 + ζ2 + ζ3 + ζ4 = 2π … (3.29)
36
This gives,
ζ1 + ζ2 = −π + η1 + η2 + θ4 − ζ3 …. (3.29a)
If the angle ζ1 is to be found out in terms of the joint 4 angle θ4, then the values of the
angles ζ2 and ζ3 must be known in equation (3.29a). For this we will assume that the angle
ζ3 is known to us with the help of encoder. So still the angle ζ2 is to be determined in terms
of the angle ζ1 .
For this to be done, let’s divide the quadrilateral A10A12A3A11 into two triangles as
ΔA10A12A3 and ΔA10A11A3. By applying cosine rule for both the triangles, it gives,
2
A3 A12 + A10 A12 2 − A3 A10 2
cos ζ1 =
2 A3 A12 A10 A12
2
A3 A11 + A10 A11 2 − A3 A10 2
cos ζ2 =
2 A3 A11 A10 A11
By comparing the value of (A3A10)2 from both these equations, one yields,
2 2 2 2
A3 A12 + A10 A12 − 2 A3 A12 A10 A12 cos ζ1 = A3 A11 + A10 A11 −
2 A3 A11 A10 A11 cos ζ2 …. (3.30)
Equation (3.30) gives the value of ζ2 in terms of ζ1 , or vice versa as following:
cos ζ2
2 2
A3 A11 + A10 A11 − A3 A12 2 − A10 A12 2 + 2 A3 A12 A10 A12 cos ζ1
=
2 A3 A11 A10 A11
…. (3.30a)
sin ζ2
1
2 2 2
4 A3 A11 ∙ A10 A11 − A3 A11 + A10 A11 2 − A3 A12 2 − A10 A12 2
+ 2 A3 A12 A10 A12 cos ζ1 2
=
2 A3 A11 A10 A11
…. (3.30b)
ζ2
1
2
−1
4 A3 A11 ∙ A10 A11 2 − A3 A11 2 + A10 A11 2
− A3 A12 2 − A10 A12 2 + 2 A3 A12 A10 A12 cos ζ1 2
= tan
A3 A11 2 + A10 A11 2 − A3 A12 2 − A A
10 12
2 +2 A A
3 12 A10 A12 cos ζ1
…. (3.30c)
So from the equation (3.29a) it can be written as,
θ4 = ζ1 + ζ2 + π − η1 − η2 + ζ3 …… (3.29b)
Now let us check can we find the length of the actuator 5 = A9A10 in terms of the joint
4 angle θ4, and the joint angle θ4 in terms of the length of the piston rod of actuator 5.
Firstly, let us assume that we know the joint 4 angle θ4. So from the equation (3.29a),
we can find the value of ζ1 + ζ2 , because rest of the values in equation (3.29a) are known to
37
us. By putting the value of ζ2 in terms of ζ1 in equation (3.30), one can find the value of the
angle ζ1 (because rests of the values in equation (3.30) are known to us). Also we can find
the value of ζ2 in terms of ζ1 using equation (3.30c). By putting the value of ζ1 in equation
(3.25), the length of the piston rod of actuator 5 = A9A10 can be found out.
For the second case the length of the piston rod of actuator 5 = A9A10 is known to us.
So from equation (3.25), the value of the angle ζ1 is known, by putting this value in equation
(3.30) gives the value of the angle ζ2 . Utilizing these both values in equation (3.29b) gives
the value of the joint angle 4 = θ4, assuming that the value of the angle ζ3 is known to us by
the encoder or potentiometer (A. J. Koivo, 1994).
This whole direct kinematic model has been coded in MATLAB (section B.1.1 of
appendix B) and results of the same are discussed in chapter 10. Now let us move on to the
inverse kinematic model of the backhoe.
38
solution, joint displacements are determined as explicit functions of the position and
orientation of the end-effector. The “closed form” in our context means a solution method
based on analytical algebraic or kinematic approach, giving expressions for solving
unknown joint variables. On the other hand in numerical methods, iterative algorithms such
as Newton-Raphson method are used. The numerical methods are computationally intensive
and by nature slower as compared to closed form methods, so we will follow the closed form
solutions for the solution of an inverse kinematic problem. The guidelines to obtain closed
form solutions are listed in section A.3 of appendix A.
39
C2 S2 0 −a2 C1 0x PA 3 + S1 0y PA 3 − a1 C3 −S3 0 a3 C3 0
Oz
−S2 C2 0 0 ∙ PA 3 S C3 0 a 3 S3 ∙ 0
∴ = 3 0
0 0 1 0 0x
S1 PA 3 − C1 PA 30y 0 0 1 0
0 0 0 1 0 0 0 1 1
1
C1 0x PA 3 + S1 0y PA 3 − a1 C2 + 0z PA 3 S2 − a2 a3 C3
0x 0y 0z a S
∴ − C1 PA 3 + S1 PA 3 − a1 S2 + PA 3 C2 = 3 3 … (3.34)
0x
PA 3 S1 − 0y PA 3 C1 0
1
1
So, in L.H.S. of the equation (3.34), the first two equations are in terms of the
unknown joint variables θ1 and θ2, and in the R.H.S. the first two equations are in terms of
unknown joint variable θ3. But by comparing the third equations of both the sides in
equation (3.34) gives,
0x
PA 3 S1 − 0y PA 3 C1 = 0
0y
PA 3
∴ tan θ1 = 0x P
A3
0y P
A3
∴ θ1 = tan−1 0x P
… (3.35)
A3
Or,
0y
θ1 = Atan2 PA 3 , 0x PA 3 … (3.35)
So, equation (3.35) gives the value of the joint 1 angle θ1 in terms of the bucket
configuration.
Now, for solving the joint 2 angle θ2 in terms of bucket configuration, let us first
square the both sides of the first two equations of the equation (3.34) and this yield,
2
x 2 c2 2
+ 0z
PA 3 s2 2
+ a2 2
+ 2xc2 s2 0z PA 3 − 2a2 s2 0z PA 3 − 2a2 c2 x −
2 2
a3 c3 =0 … (3.36)
And,
2
x 2 s2 2
+ 0z
PA 3 c2 2
− 2xc2 s2 0z PA 3 − a3 2
s3 2
=0 … (3.37)
Where,
x = C1 0x PA 3 + S1 0y PA 3 − a1
After squaring both the sides of the first two equations of the equation (3.34), now let
us add them up together, and this gives,
2
2 0z PA 3 a2 s2 + 2xa2 c2 = 0z
PA 3 + x 2 + a2 2
− a3 2
…. (3.38)
Now in equation (3.38), let us assume, 2 0z PA 3 a2 = r ∙ sinϕ, and 2xa2 = r ∙
cosϕ. So this gives,
40
2
r= 4 a2 2 [ 0z P
A3 + x2 ] … (3.39)
And,
0z P
A3
ϕ = tan−1 …. (3.40)
x
Where,
0z 2
y= PA 3 + x 2 + a2 2
− a3 2
…. (3.38c)
Substituting the values of r, and ϕ from equation (3.39) and (3.40) respectively into
equation (3.38c), one gets,
1
2 2 2 2
0z P 4 a2 2 0z P +x 2 − 0z P +x 2 + a 2 2 − a 3 2
A3 A3 A3
θ2 = tan−1 + tan−1 0z P 2
x A3 +x 2 + a 2 2 − a 3 2
…. (3.41)
Equation (3.41) can be written in Atan2 function instead of tan-1 as the equation (3.35)
is written and this equation (3.41) gives the value of the joint 2 angle θ2 in terms of bucket
configuration, because the rest of the values in equation (3.41) are known to us.
Now the joint 3 angle θ3 can be obtained by dividing the equation (2) by equation (1)
of the equation (3.34), and this yields,
− C1 0x PA 3 + S1 0y PA 3 − a1 S2 + 0z PA 3 C2
θ3 = tan−1
C1 0x PA 3 + S1 0y PA 3 − a1 C2 + 0z PA 3 S2 − a2
…. (3.42)
Equation (3.42) can be written in Atan2 function instead of tan-1 as the equation (3.35)
is written and this equation (3.42) gives the value of joint 3 angle θ3 in terms of the bucket
41
configuration. So if the position of the point A3 is known, the joint angles θ1, θ2, and θ3 can
be determined by equations (3.35), (3.41) and (3.42) respectively. But to find the joint 4
angle θ4 this is not the case. One can determine the joint 4 angle θ4, if the orientation of the
bucket is known.
When the coordinates of point A4 = O4 on the center of the edge of the bucket teeth
and the orientation angle θ234 = θ2 + θ3 + θ4 of bucket relative to the X0− axis (or
equivalently the X1− axis ) are known, the solution to the inverse kinematic model is still
given by equations (3.35), (3.41) and (3.42). However; the following expressions are now
submitted into these equations for the components of 0PA 3 :
0x 0x
PA 3 = PA 4 − C1 a4 C234 , 0y PA 3 = 0y
PA 4 − S1 a4 C234 , 0z PA 3 = 0z
PA 4 − a4 S234
These equations are obtained from the equations (3.9) and (3.10). Where, the bucket
0x 0y 0z T
orientation θ234 is given and 0𝐏A 4 = PA 4 PA 4 PA 4 1 specifies the location of
point A4 in the base coordinate system. Now let us see whether these equations imply the
same meaning as the practical study of the backhoe implies.
Practically when the whole backhoe attachment is in the home position (i.e. θ1 = 0),
0y 0y
the y coordinates of points A3 and A4 should be the same, that is PA 3 = PA 4 . Now we
0y 0y
have the equation relating y coordinates of both A3 and A4 points as: PA 3 = PA 4 −
0y 0y
S1 a4 C234 , by putting θ1 = 0 in this equation yields, PA 3 = PA 4 . So the proposed
equation for y coordinates is valid as it implies the same interpretation as the practicality
implies.
Moreover; practically when the whole backhoe attachment is rotated from the home
position (from O0 ) to ±90° (i.e. θ1 = ±90° ), the x coordinates of points A3 and A4 should
be the same, that is 0x PA 3 = 0x
PA 4 . Now we have the equation relating x coordinates of both
0x 0x
A3 and A4 points as: PA 3 = PA 4 − C1 a4 C234 , by putting θ1 = ±90° in this equation
0x 0x
yields, PA 3 = PA 4 . So the proposed equation for x coordinates is also valid as it implies
the same interpretation as the practicality implies.
At last, practically even if the whole backhoe attachment is rotated from the home
position (from O0 ) to any angle, the z coordinates of points A3 and A4 will not change and
will remain constant. This implies that the z coordinates of both the points A3 and A4 are
independent of the swing angle θ1 . Let us see whether this can be justified from the
proposed equation for z coordinates or not. The proposed equation relating z coordinates of
both A3 and A4 points is: 0z PA 3 = 0z
PA 4 − a4 S234 . As the equation does not contain the joint
42
angle θ1 , it is independent of the swing angle. So the proposed equation for z coordinates is
also valid as it implies the same interpretation as the practicality implies.
Thus, all of the three equations are valid; now let us see how the joint 4 angle θ4 can
be determined.
The orientation of the bucket may, in some applications, be specified by an alternative
manner: If the bottom plate of the bucket is defining a plane as shown in Fig. 3.7 and this
plane contains the teeth of the bucket. So the angle ρ is defined as the angle made by this
plane with the horizontal line, known as the digging angle of the bucket (A. J. Koivo, 1994).
The angle λ is the angle made by the plane defined by the bucket bottom plate with the x4−
axis as shown in Fig. 3.7.
From the geometry shown in Fig. 3.7, it can be written,
θ4 = ρ + λ + π + 2π − θ2 − θ3
∴ θ4 = ρ + λ + 3π − θ2 − θ3 …. (3.43)
Equation (3.43) gives the value of the joint 4 angle θ4 in terms of the bucket
orientation.
43
3.3.2 The length of the piston rods of actuators in terms of joint angles
This part of the inverse kinematic problem is to determine the lengths of the piston rods (the
line segments between the attachment points of the actuators) when the values of the joint
angles are given.
The piston rod length ST of the actuator 1 is determined by the equation (3.12) when
the joint 1 angle θ1 is known and given by:
2
2 2
ST = O0 X + O0 T cos α − θ1 + XS – O0 T sin(α − θ1 ) …. (3.12)
The length of the piston rod of actuator 2 = UV is determined by the equation (3.15)
when the joint 1 angle θ1 is known and given by:
2 2 2
UV = O0 V cos α + θ1 + O0 X + O0 V sin α + θ1 − XU … (3.15)
The length of the piston rod of actuator 3 = A5A6 is determined by the equation (3.18)
when the joint 2 angle θ2 is known and given by:
2 2 2
A5 A6 = A1 A5 + A1 A6 − 2 A1 A5 A1 A6 cos π − γ1 − θ2 − γ2 …. (3.18)
Where, the angles γ1 and γ2 are known angles, as explained in section 3.2.2.
The length of the piston rod of actuator 4 = A7A8 can be determined by equation (3.21)
when the joint 3 angle θ3 is known and given by:
2 2 2
A7 A8 = A2 A7 + A2 A8 − 2 A2 A7 A2 A8 cos 3π − δ1 − δ2 − θ3 …. (3.21)
But the length of the piston rod of actuator 5 = A9A10 is tricky as compared to other
actuator lengths to be determined. Firstly, let us determine the length of the piston rod of
actuator 5 = A9A10 in terms of the unknown angle ζ1 as given in equation (3.24) and then
determine the unknown angle ζ1 in terms of the joint 4 angle θ4.
2 2 2
A9 A10 = A9 A12 + A10 A12 − 2 A9 A12 A10 A12 cos 2π − ε1 − ζ1 …. (3.24)
Now we know from equation (3.29a) that,
ζ1 + ζ2 = −π + η1 + η2 + θ4 − ζ3 …. (3.29a)
This will give;
ζ2 = −π + η1 + η2 + θ4 − ζ3 − ζ1
∴ ζ2 = ζ5 − ζ1 , where the assumed angle ζ5 = −π + η1 + η2 + θ4 − ζ3 .
Now substituting the value of the angle ζ2 as ζ5 − ζ1 in equation (3.30), the angle ζ1
can be determined in terms of the angle ζ5 , by using the standard method as used to
determine the joint 2 angle θ2 and thus in terms of the joint angle θ4 as follows:
44
ζ1
A10 A11 A3 A11 sin ζ5
= tan−1
A10 A11 A3 A11 cos ζ5 − A10 A12 A3 A12
2 1
−1
4 A10 A11 A3 A11 2 sin ζ5 2
+ 4 A10 A11 A3 A11 cos ζ5 − A10 A12 A3 A12 2
− x2 2 2
− tan
x2
…. (3.44)
2 2
Where, x2 = A10 A11 + A3 A11 − A10 A12 2 − A3 A12 2 , and ζ5 = −π +
η1 + η2 + θ4 − ζ3 .
Thus, equation (3.44) determines the angle ζ1 in terms of the joint 4 angle θ4. Note that
the angle ζ3 has been assumed to be known from the encoder. This whole inverse kinematic
model has been coded in MATLAB (section B.1.2 of appendix B) and results of the same
are discussed in chapter 10, this concludes the total inverse kinematic relations of the
backhoe excavator.
45
3.4.1 Determination of bucket velocity in terms of joint angle velocities by taking the
time derivative of kinematic equations
Firstly, the linear velocity components are derived for each link of the backhoe: swing link,
boom link, arm link and the bucket link, and then angular velocity components for each of
the four links are derived.
Here, the swing link does not move linearly as the swing cylinders of the backhoe are
used to only swing or rotate the swing link. So a question arises that the swing link should
not have a linear velocity, but as the swing link rotates about its joint axis (Z0− ) every point
on the swing link has a linear velocity. This linear velocity is tangential to the arc of rotation.
For determining the linear velocity of any link i with respect to the base frame {0} =
0
vi following procedure should be used (R. K. Mittal et al., 2003).
0 d 0 d 0
𝐯i = dt 𝐃i = dt 𝐓i i 𝐃i ….. (3.45)
From equation (3.45) linear velocity of link i can be determined. Where, 0Di is a
displacement vector from frame {i} to base frame {0}, 0Ti is a homogeneous transformation
matrix. iDi is a displacement vector from frame {i} to frame {i} and can be given as [0 0 0
1]T in homogeneous coordinates.
But,
0
𝐓i = 0𝐓1 1𝐓2 2𝐓3 … … … i−1𝐓i
By putting this equation into equation (3.45) leads to;
0 i ∂ 0
𝐯i = j=1 ∂θ 𝐓i θj i 𝐃i …. (3.46)
j
Where, θj is the speed of rotation of link j. With the use of equation (3.46) the linear
velocity of link 1 or swing link of the backhoe can be given by:
−a1 s1 −a1 s1 0 0 0 θ1
0 a c
1 1 a1 c1 0 0 0 θ2
𝐯1 = θ1 = …. (3.47)
0 0 0 0 0 θ3
0 0 0 0 0 θ4
The linear velocity of the boom of a backhoe can be given by:
46
The linear velocity of the arm of a backhoe can be given by:
−s1 (b) −c1 a4 s234 + a3 s23 + a2 s2 −c1 a4 s234 + a3 s23 −c1 a4 s234 θ1
−s1 a4 s234 + a3 s23 −s1 a4 s234 θ2
= c1 (b) −s1 a4 s234 + a3 s23 + a2 s2
0 a4 c234 + a3 c23 + a2 c2 a4 c234 + a3 c23 a4 c234 θ3
0 0 0 0 θ4
…. (3.50)
Where, b = a4 c234 + a3 c23 + a2 c2 + a1 .
Here, all four equations from (3.47) to (3.50) can be used to determine the linear
velocities of the four backhoe links (swing link, boom, arm, and the bucket respectively) in
homogeneous coordinates.
The procedure to find the angular velocities is given as follows (R. K. Mittal et al.,
2003):
ωi = ωi−1 + i−1ωi …. (3.51)
Where, ωi is the angular velocity of link i, i−1ωi is the angular velocity of link i due to
the link i-1 and can be determined by:
i−1
ωi = 0𝐑 i−1 zi−1 θi …. (3.52)
For the backhoe excavator, the angular velocity of the swing link does not contribute
to the angular velocities of other three links, because the angular velocities of boom, arm and
bucket only come into the picture while digging or excavating the ground. In other words,
when swing link rotates other three links do not rotate and vice-versa. So while calculating
the angular velocities of boom, arm and bucket (the axis of rotation for these three links are
always parallel and thus the angular velocity of the boom contribute to the angular velocities
of arm and the bucket, while the rotational axis of the swing link is not parallel but it is
perpendicular to the axes of rotation of other three links and thus do not directly contribute to
the angular velocities of the other three links) the equation (3.52) will be modified as:
i−1
ωi = 1𝐑 i−1 zi−1 θi …. (3.53)
47
Using equations (3.51) and (3.52) and assuming the angular velocity of the base link
as zero (stationary) the angular velocity of the swing link can be given by:
0 0 0 0 θ1
θ2
ω1 = 0 0 0 0 …. (3.54)
1 0 0 0 θ3
0 0 0 0 θ4
Using equations (3.51) and (3.53) the angular velocity of boom can be given by:
0 0 0 0 θ1
θ2
ω2 = 0 0 0 0 …. (3.55)
0 1 0 0 θ3
0 0 0 0 θ4
Using equations (3.51) and (3.53) the angular velocity of arm can be given by:
0 0 0 0 θ1
θ2
ω3 = 0 0 0 0 …. (3.56)
0 1 1 0 θ3
0 0 0 0 θ4
Using equations (3.51) and (3.53) the angular velocity of bucket can be given by:
0 0 0 0 θ1
θ2
ω4 = 0 0 0 0 …. (3.57)
0 1 1 1 θ3
0 0 0 0 θ4
Here all four equations from (3.54) to (3.57) can be used to determine the angular
velocities of the four backhoe links in homogeneous coordinates.
So, the bucket Cartesian velocity vector (combination of both linear and angular
velocity components) can be given by (by removing the last rows from bucket linear
velocity vector and from bucket angular velocity vector because it only represents the
homogeneous coordinates):
v4x −s1 (b) −c1 (a4 s234 + a3 s23 + a2 s2 ) −c1 (a4 s234 + a3 s23 ) −c1 a4 s234
v4y θ1
c1 b −s1 a4 s234 + a3 s23 + a2 s2 −s1 a4 s234 + a3 s23 −s1 a4 s234
v4z 0 a4 c234 + a3 c23 + a2 c2 a4 c234 + a3 c23 a4 c234 θ2
ω4x = 0 0 0 0 θ3
ω4y 0 0 0 0
ω4z 1 θ4
0 1 1
…. (3.58)
Where, b = a4 c234 + a3 c23 + a2 c2 + a1 .
The physical interpretation of the equation (3.58) is: Out of three angular velocities
of the bucket, the bucket angular velocity with respect to the joint 4 axis Z4− can only be
48
controlled, and it also depends on the angular velocities of arm, and boom links, and this
is the actual case in the backhoe excavator as the bucket can only be rotated with respect
to its joint axis.
3.4.2 Determination of bucket velocity in terms of joint angle velocities using Jacobian
matrix
For any serial robot forward kinematics may be thought of as a mapping from joint space to
the space of rigid body motions and differential motions (velocities). If in general
coordinates and orientation of end-effector point Ae with respect to the base frame {0} are
0x 0y 0z x y z T
PA e PA e PA e θA e θA e θA e then these coordinates along with the
orientation angles of end-effector point Ae become the functions of the joint angles as
follows (J. M. Selig, 1992):
0x
PA e = f1 θ1 , θ2 , θ3 , … … , θn ,
0y
PA e = f2 θ1 , θ2 , θ3 , … … , θn ,
0z
PA e = f3 θ1 , θ2 , θ3 , … … , θn ,
x
θA e = f4 θ1 , θ2 , θ3 , … … , θn ,
y
θA e = f5 θ1 , θ2 , θ3 , … … , θn ,
z
θA e = f6 θ1 , θ2 , θ3 , … … , θn …. (3.59)
The derivative of these coordinates (the set of equations (3.59)) will describe three
linear velocities and three angular velocities of the end-effector point Ae, and can be given
by:
d 0x 0x
∂f1 ∂θ1 ∂f1 ∂θ2 ∂f1 ∂θn
PA e = ve = + +. . . … +
dt ∂θ1 ∂t ∂θ2 ∂t ∂θn ∂t
d 0y 0y
∂f2 ∂θ1 ∂f2 ∂θ2 ∂f2 ∂θn
PA e = ve = + +. . . … +
dt ∂θ1 ∂t ∂θ2 ∂t ∂θn ∂t
d 0z 0z
∂f3 ∂θ1 ∂f3 ∂θ2 ∂f3 ∂θn
PA e = ve = + +. . . … +
dt ∂θ1 ∂t ∂θ2 ∂t ∂θn ∂t
d x
∂f4 ∂θ1 ∂f4 ∂θ2 ∂f4 ∂θn
θA e = x ωA e = + +. . . … +
dt ∂θ1 ∂t ∂θ2 ∂t ∂θn ∂t
d y
∂f5 ∂θ1 ∂f5 ∂θ2 ∂f5 ∂θn
θA e = y ωA e = + +. . . … +
dt ∂θ1 ∂t ∂θ2 ∂t ∂θn ∂t
d z
∂f6 ∂θ1 ∂f6 ∂θ2 ∂f6 ∂θn
θA e = z ωA e = + +. . . … +
dt ∂θ1 ∂t ∂θ2 ∂t ∂θn ∂t
…. (3.60)
49
Where, n of θn represents the total degree of freedom of the system under study, x θA e ,
y
θA e , z θA e are the orientation angle of end–effector point Ae with respect Xe, Ye and Ze axes
0x
respectively, PA e , 0y PA e , 0z
PA e are the coordinates of end-effector point Ae with respect to
∂θ i
X0, Y0 and Z0 axes respectively, and = 𝛉i for i = 1, 2, 3…., n, and fi are the functions.
∂t
If we write,
0 0x 0y 0z x y z T
𝐕e = Ve Ve Ve θA e θA e θA e a 6 × 1 end-effector velocity vector,
T
𝛉𝐢 = θ1 θ2 θ3 … … θn an n × 1 joint speed vector.
Then, set of equations (3.60) can be written as follows:
0
𝐕e = 𝐉𝛉i …. (3.61)
The matrix J is called the Jacobian of the map; and can be given by:
∂f1 ∂f1 ∂f1
…
∂θ1 ∂θ2 ∂θn
∂f2 ∂f2 ∂f2
…
∂θ1 ∂θ2 ∂θn
∂f3 ∂f3 ∂f3
…
∂θ1 ∂θ2 ∂θn
𝐉=
∂f4 ∂f4 ∂f4
…
∂θ1 ∂θ2 ∂θn
∂f5 ∂f5 ∂f5
…
∂θ1 ∂θ2 ∂θn
∂f6 ∂f6 ∂fn
…
∂θ1 ∂θ2 ∂θn
…. (3.62)
Thus, the Jacobian is the matrix of partial derivatives and its size is 6 × n, where n is
the degree of freedom of the system under study.
So, for our case (i.e. backhoe excavator) the end-effector is the bucket, and if we
write Cartesian bucket velocity vector as Vb (t), t shows it is function of time, Jacobian
matrix as J (𝛉), and the joint speed vector as 𝛉, then equation (3.61) can be written as:
𝐕b t = 𝐉(𝛉)𝛉 …. (3.63)
Where, Vb (t) is a 6 × 1 Cartesian bucket velocity vector (three linear and three
angular velocities), J (θ) is a 6 × 4 backhoe Jacobian matrix (because there are only four
joint angles or four degrees of freedom under consideration) and 𝛉 is a 4 × 1 vector of
four joint velocities θ1 , θ2 , θ3 and θ4 .
Equation (3.63) can be written in column vectors of the Jacobian, that is,
𝐕b t = 𝐉1 𝛉1 𝐉2 𝛉2 𝐉3 𝛉3 𝐉4 𝛉4 𝛉 … (3.64)
50
In equation (3.64), Ji (θ) for i = 1 to 4 is the ith column of the Jacobian matrix.
The ith column of the Jacobian matrix at the bucket edge point or tool point A4, can
be given by:
0x 0y 0z T
∂ PA 4 ∂ PA 4 ∂ PA 4 ∂ x θA 4 ∂ y θA 4 ∂ z θA 4
𝐉i 𝛉 =
∂θi ∂θi ∂θi ∂θi ∂θi ∂θi
0x 0y 0z T
∂ PA 4 ∂ PA 4 ∂ PA 4 ∂ z θA 4
∴ 𝐉i 𝛉 = 0 0
∂θi ∂θi ∂θi ∂θi
… (3.65)
In equation (3.65), the fourth row and fifth row of the matrix Ji (θ) is taken as zero
because bucket is restricted to be rotated about X4− and Y4− axes and allowed to be
rotated only about Z4− axis. This means bucket of the backhoe can be rotated about its
own joint axis (Z4− ) only.
Moreover; bucket orientation angle depends on the orientation angles of boom and
arm also, but does not depend on the orientation angle of the swing link because while
excavating the swing link remains steady and while swinging the whole mechanism, all
other links boom, arm and the bucket remain steady. So the bucket orientation angle as
discussed at the end of the section 3.3.1 is:
z
θA 4 = θ234 = θ2 + θ3 + θ4 …. (3.66)
By using the equations (3.65) and (3.66), the Ji matrices for the backhoe are found
as follows:
−s1 (a4 c234 + a3 c23 + a2 c2 + a1 )
c1 a4 c234 + a3 c23 + a2 c2 + a1
𝐉1 = 0
0
0
0
Or by assuming, b = a4 c234 + a3 c23 + a2 c2 + a1 , J1 can be written as:
−s1 (b) −c1 (a4 s234 + a3 s23 + a2 s2 ) −c1 (a4 s234 + a3 s23 )
c1 b −s1 a4 s234 + a3 s23 + a2 s2 −s1 a4 s234 + a3 s23
𝐉1 = 0 , 𝐉2 = a c
4 234 + a c
3 23 + a c
2 2 , 𝐉3 = a4 c234 + a3 c23 and
0 0 0
0 0 0
0 1 1
−c1 a4 s234
−s1 a4 s234
a4 c234
𝐉4 = 0 .
0
1
51
By assembling all the Ji matrices, the final Jacobian 6 × 4 matrix is given as
follows:
−s1 (b) −c1 (a4 s234 + a3 s23 + a2 s2 ) −c1 (a4 s234 + a3 s23 ) −c1 a4 s234
c1 b −s1 a4 s234 + a3 s23 + a2 s2 −s1 a4 s234 + a3 s23 −s1 a4 s234
0 a4 c234 + a3 c23 + a2 c2 a4 c234 + a3 c23 a4 c234
𝐉 𝛉 = 0
0 0 0
0 0 0 0
0 1 1 1
Where, b = a4 c234 + a3 c23 + a2 c2 + a1 .
The bucket velocity Vb now can be determined in terms of the joint angle velocities
by Jacobian matrix as follows:
𝐕b t = 𝐉(𝛉)𝛉
v4x −s1 (b) −c1 (a4 s234 + a3 s23 + a2 s2 ) −c1 (a4 s234 + a3 s23 ) −c1 a4 s234
v4y θ1
c1 b −s1 a4 s234 + a3 s23 + a2 s2 −s1 a4 s234 + a3 s23 −s1 a4 s234
v4z 0 a4 c234 + a3 c23 + a2 c2 a4 c234 + a3 c23 a4 c234 θ2
ω4x = 0 0 0 0 θ3
ω4y 0 0 0 0
ω4z 1 θ4
0 1 1
…. (3.67)
Thus, equation (3.67) determines the velocity of bucket in terms of the joint angle
velocities and joint angles and it is same as equation (3.58).
But in actual practice all three linear velocities and only one angular velocity ω4z of
the backhoe bucket are possible to control. Thus, the equation (3.67) can be rewritten as:
v4x −s1 (b) −c1 (a4 s234 + a3 s23 + a2 s2 ) −c1 (a4 s234 + a3 s23 ) −c1 a4 s234 θ1
v4y c1 b −s1 a4 s234 + a3 s23 + a2 s2 −s1 a4 s234 + a3 s23 −s1 a4 s234 θ2
v4z = 0 a4 c234 + a3 c23 + a2 c2 a4 c234 + a3 c23 a4 c234 θ3
ω4z 1 1 1
0 θ4
…. (3.68)
−s1 (b) −c1 (a4 s234 + a3 s23 + a2 s2 ) −c1 (a4 s234 + a3 s23 ) −c1 a4 s234
−s1 a4 s234
𝐉 𝛉 = c1 b −s1 a4 s234 + a3 s23 + a2 s2 −s1 a4 s234 + a3 s23 a4 c234
0 a4 c234 + a3 c23 + a2 c2 a4 c234 + a3 c23
0 1 1 1
…. (3.69)
The equation (3.68) gives the velocity of the bucket (three linear and one angular)
in terms of the joint angles, where: b = a4 c234 + a3 c23 + a2 c2 + a1 , with new Jacobian
(a square matrix) as equation (3.69).
52
3.4.3 Actuator piston velocities in terms of joint speeds
We have seen the relationship between the lengths of the piston rods of actuators in terms of
the joint angles in section 3.2.2. The velocities of the actuator pistons are derived by using
time derivatives of both sides of the equations relating the piston rod length of the actuator
and joint angles: equations (3.12), (3.15), (3.18), (3.21) and (3.24) as follows:
By differentiating the equation (3.12) with respect to time yields the velocity of the
actuator 1 piston in terms of joint 1 angle speed θ1 or vice versa:
VST
O0 T [ (O0 X + O0 T cos α − θ1 } sin α − θ1 + { XS − O0 T sin α − θ1 }cos α − θ1 ]
= θ1
(ST)
…. (3.70)
Or,
θ1
VST (ST)
=
O0 T [ (O0 X + O0 T cos α − θ1 } sin α − θ1 + { XS − O0 T sin α − θ1 }cos α − θ1 ]
…. (3.70)
By differentiating the equation (3.15) with respect to time yields the velocity of the
actuator 2 piston in terms of joint 1 angle velocity θ1 or vice versa:
VUV
O0 V O0 V sin α + θ1 − XU cos α + θ1 − { O0 V cos α + θ1 + (O0 X)} sin α + θ1
= θ1
(UV)
…. (3.71)
Or,
θ1
VUV (UV)
=
O0 V O0 V sin α + θ1 − XU cos α + θ1 − { O0 V cos α + θ1 + (O0 X)} sin α + θ1
…. (3.71)
By differentiating the equation (3.18) with respect to time yields the velocity of the
actuator 3 piston in terms of joint 2 angle velocity θ2 or vice versa:
− A1 A5 (A1 A6 )sin(π − γ1 − γ2 − θ2 )
VA 5 A 6 = θ2
(A5 A6 )
…. (3.72)
VA 5 A 6 (A5 A6 )
∴ θ2 =
− A1 A5 (A1 A6 )sin(π − γ1 − γ2 − θ2 )
…. (3.72)
53
By differentiating the equation (3.21) with respect to time yields the velocity of the
actuator 4 piston in terms of joint 3 angle velocity θ3 or vice versa:
− A2 A7 (A2 A8 )sin(3π − δ1 − δ2 − θ3 )
VA 7 A 8 = θ3
(A7 A8 )
…. (3.73)
Or,
VA 7 A 8 (A7 A8 )
θ3 =
− A2 A7 (A2 A8 )sin(3π − δ1 − δ2 − θ3 )
…. (3.73)
By differentiating the equation (3.24) with respect to time yields the velocity of the
actuator 5 piston in terms of the angle velocity ζ1 or vice versa and then ζ1 will be
determined in terms of the joint 4 angle velocity θ4 :
− A9 A12 (A10 A12 )sin(2π − ε1 − ζ1 )
VA 9 A 10 = ζ1
(A9 A10 )
…. (3.74)
Or,
VA 9 A 10 (A9 A10 )
∴ ζ1 =
− A9 A12 (A10 A12 )sin(2π − ε1 − ζ1 )
…. (3.74)
Equation (3.74) gives the bucket actuator 5 piston velocity in terms of the unknown
angle velocity ζ1 . Now let’s establish the relation between this unknown angle velocity ζ1
in terms of the joint 4 angle velocity θ4 .
We know from the equation (3.29a) that:
ζ1 + ζ2 = −π + η1 + η2 + θ4 − ζ3
By differentiating this equation with respect to time gives:
ζ1 + ζ2 = θ4 − ζ3 …. (3.75)
Because the angles η1 , η2 , and π are constants for the geometry.
Also by differentiating the equation (3.30) with respect to time leads to:
A3 A12 (A10 A12 )sinζ1
ζ2 = ζ
A3 A11 (A10 A11 )sinζ2 1
…. (3.76)
54
By substituting equation (3.76) into the equation (3.75) yields:
θ4 − ζ3
ζ1 =
A A (A10 A12 )sinζ1
1 + { 3 12 }
A3 A11 (A10 A11 )sinζ2
…. (3.77)
Thus, equation determines the angle velocity ζ1 in terms of the joint 4 velocity θ4 .
If the piston velocities are known then the joint speeds can be determined by the
equations (3.70) to (3.74).
The MATLAB code to find the bucket velocity, and piston velocities of the
hydraulic actuators are given in section B.1.3 of appendix B, and results are discussed in
chapter 10.
55
V4z) and one Cartesian angular velocity (ω4z), and this is acceptable for the jobs to be
performed by the backhoe, so now the Jacobian is a 4 × 4 square matrix.
Apart from this J-1 exists only if Jacobian matrix (J) is nonsingular at the current
configuration. The backhoe Jacobian J becomes rank deficient or singular at certain
configuration in Cartesian space. In such cases, the inverse Jacobian does not exist and
equation (3.78) becomes an invalid equation. Those backhoe configurations at which J
becomes noninvertible are termed as Jacobian singularities (R. K. Mittal et al., 2003).
The computation of the singularities can be carried out by analyzing the rank of the
Jacobian matrix. The Jacobian matrix loses its rank and becomes ill conditioned at values
of the joint angles θi at which the determinant of the Jacobian matrix vanishes, that is,
𝐉(𝛉) = 0.
In other words, the values of joint angles at which the determinant of the Jacobian
matrix attains the value zero, are known as Jacobian singularities.
Another way to find the Jacobian inverse after putting the value of link lengths ai
and joint angles θi into equation (3.69), the Gauss Jordan elimination method should be
applied to the matrix to find its inverse.
To find the required piston velocities to achieve the required joint speeds to make
the bucket traverse a specified trajectory and with a specified bucket velocity a MATLAB
code is presented in section B.1.4 of appendix B.
56
The relationship between the joint torques and the bucket teeth torque vector can be
derived using the Jacobian in static equilibrium conditions (R. K. Mittal et al., 2003).
τi = 𝐉(𝛉)T Fi …. (3.79)
Where, τi is a generalized drive torque applied by actuator i to driving joint i. Fi is
the endpoint force and moment vector known as bucket force vector. It is the vector of the
reaction forces and moments from the ground to the bucket. How to find these reaction
forces (resistive forces) is explained in chapter 6. After finding the reaction force it can be
resolved in three directions x, y and z and can be thought to be acting at the origin of the
coordinate frame {4}.
Assumptions in static modeling:
It is assumed that the joints of the backhoe are frictionless and joint torques is the
net torques that balance the end point force Fi.
The reaction force is acting at the origin of frame {4} and it is resolved in three
directions.
Now, by using equation (3.67) (the old Jacobian of size 6 × 4), in equation (3.79)
one may get:
Fx
τ1 −s1 (b) c1 (b) 0 0 0 0 Fy
τ2 −c1 (a4 s234 + a3 s23 + a2 s2 ) −s1 a4 s234 + a3 s23 + a2 s2 a4 c234 + a3 c23 + a2 c2 0 0 1 Fz
τ3 = −c1 (a4 s234 + a3 s23 ) −s1 a4 s234 + a3 s23 a4 c234 + a3 c23 0 0 1 ηx
τ4 −c1 a4 s234 −s1 a4 s234 a4 c234 0 0 1 ηy
ηz
3.6 Summary
The kinematic relations between the bucket, joint angles and the position of the piston
rods in the actuators are established to automate the operation of the backhoe excavator.
Firstly, Cartesian frames are assigned to the links of the backhoe by following Denavit-
57
Hartenberg guidelines and algorithm from appendix A. Secondly; the direct kinematic
equations of the bucket configuration in terms of the joint angles are established, followed
by the determination of the joint angles in terms of the piston rod lengths in actuators.
Thirdly; the inverse kinematic model of the backhoe is presented giving the joint angle
equations in terms of the bucket configuration, followed by the equations of the lengths of
piston rods in actuators in terms of the joint angles.
Then the complete equations of differential motion (velocity only) for the backhoe
links are established, including the equations of linear and angular velocity of each link of
the backhoe (including the swing link) by two methods: firstly; velocity equations for
each link are established by direct derivation of the kinematic equations, secondly;
velocity equations for the bucket are established with the help of the Jacobian matrix.
Then actuator piston velocities in terms of the joint speeds are established. Inverse
Jacobian is also determined to calculate the required joint speeds to move the bucket at
desired velocity. Lastly; the backhoe static model in the general form is presented giving
the required torques at each joint caused by the ground-bucket interaction while
considering the system under equilibrium.
The MATLAB codes for the direct kinematic model, inverse kinematic model,
bucket and piston velocities model, inverse Jacobian model and static joint-torque model
are presented in appendix B and results of all the models are discussed in chapter 10.
The forward kinematic relations will directly be utilized in the next chapter 4 to
establish the dynamic model or equations of motion of the backhoe excavator.
58