Вы находитесь на странице: 1из 36

Chapter 3

Backhoe Kinematics, Differential Motion and Statics

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.

3.1 Kinematics of the backhoe


The anatomy of the backhoe excavator has already been discussed in chapter 1.
Fundamentally a backhoe excavator has five links starting from the fixed link or base link,
swing link, boom link, arm link (dipper link), and bucket link. These links are connected to
each other by joints, which allow revolute motion between connected links each of which
exhibits just one degree of freedom. This leads to the four degree of freedom R-RRR
configuration of the backhoe, where R stands for a revolute joint.

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.

Fig. 3.1 Schematic view of a backhoe

3.1.1 Affixing frames to links


To analyze the motion of the backhoe excavator as shown in Fig. 3.2 for performing a
specific task, it becomes necessary to define a world coordinate system to describe the
position and orientation of the bucket (collectively known as configuration of the bucket). A
right-hand Cartesian coordinate system Xw Yw Zw is chosen, and its origin is placed at an
arbitrary point on the ground level in the workspace of the backhoe excavator. After
assigning the world coordinate frame the local coordinate frames for all links are assigned by
following the DH guideline for link frame assignment algorithm (R. K. Mittal et al., 2003),
as given in section A.2 of appendix A.
First of all by following the step 0 of the algorithm identification and the numbering of
the joints and links are done and described in the Fig. 3.2. Then by following the step 1, all
Zi axes for i = 0, 1, 2, and 3, are assigned. The Z0− axis for the base coordinate frame
X0 Y0 Z0 O0 is chosen vertical upwards to represent the rotational axis of the swing link. The
Z1− axis of the 1st coordinate frame has been selected to coincide with the rotational axis of

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.

Fig. 3.2 Backhoe frame assignments

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.

3.2 Direct kinematic model


For the controlling and the automatic operation of a backhoe, it is desirable to place the
bucket to a specified location. This can be achieved by selecting the proper lengths of the
piston rods in the cylinder, and thus selecting the joint angles properly. The kinematic
equations are the mathematical equations those relate the position and orientation of the
bucket (bucket configuration) to the joint variables (joint angles in our case) or to the lengths
of the piston rods in the hydraulic actuators. If the lengths of the piston rods in the actuators
or the joint angles are given, the bucket configuration can be determined by the direct or
forward kinematic equations. Whereas; if the bucket configuration is specified, then the
corresponding joint angles or the lengths of the piston rods in actuators can be calculated
from the inverse kinematic equations. Firstly, the direct kinematic equations will be
determined.
To establish the homogeneous transformation matrix i-1Ti, which describes the position
and orientation of frame {i} relative to frame {i-1}, and completely specifies geometric

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.

3.2.1 Bucket frame transformation matrix


The bucket configuration relative to the base frame can be found by considering the 4
consecutive link transformation matrices relating frames fixed to adjacent links. Thus,
0
T4 = 0T1 (θ1 ) 1T2 (θ2 ) 2T3 (θ3 ) 3T4 (θ4 ) …..(3.2)
So, to determine the homogeneous transformation matrix that relates the link 0 to link
4 of (0T4), firstly other four transformation matrices as given in equation (3.2) must be
determined. To determine i-1Ti we need to determine the three parameters, θi , αi , and ai (as
given in table 3.1).
The values of ai , αi , and θi are found out from the appendix A. As for an example link
twist α1 determines the angle between Z0− and Z1− axes measured about the X1− axis in the
right hand side = +90°. Similarly, the values of other link twist angles are determined. The
joint distance di for i = 1, 2, 3, 4 is zero, because all joints are revolute joints. The link
lengths a1 , a2 , a3 , a4 are the lengths of swing link, boom, arm, and bucket respectively, and
taken as it is to keep the calculation procedure more simplified, and later on the values of ai
for i = 1, 2, 3, 4 can be substituted from the dimensions of the backhoe.

Table 3.1 Joint-link kinematic parameters for the backhoe


Link i 𝐚𝐢 𝛂𝐢 𝐝𝐢 𝛉𝐢 𝐪𝐢
1 a1 90 0 θ1 θ1
2 a2 0 0 θ2 θ2
3 a3 0 0 θ3 θ3
4 a4 0 0 θ4 θ4

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:

C1 (C2 C3 − S2 S3 ) −C1 (C2 S3 + S2 C3 ) S1 C1 (a1 + a2 C2 + a3 C23 )


−C1 S1 (a1 + a2 C2 + a3 C23 )
0
T3 = S1 (C2 C3 − S2 S3 ) −S1 (C2 S3 + S2 C3 )
S23 C23 0 a2 S2 + a3 S23
0 0 0 1
28
And can be further simplified as follows:

C1 C23 −C1 S23 S1 C1 (a1 + a2 C2 + a3 C23 )


−C1 S1 (a1 + a2 C2 + a3 C23 )
0
T3 = S1 C23 −S1 S23 ….. (3.8)
S23 C23 0 a2 S2 + a3 S23
0 0 0 1

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:

C1 C234 −C1 S234 S1 C1 (a1 + a2 C2 + a3 C23 + a4 C234 )


−C1 S1 (a1 + a2 C2 + a3 C23 + a4 C234 )
0
T4 = S1 C234 −S1 S234 ….(3.10)
S234 C234 0 a2 S2 + a3 S23 + a4 S234
0 0 0 1

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

So now from equation (3.17),


2
A1 A5 + A1 A6 2 − A5 A6 2
cos π − γ1 − θ2 − γ2 =
2 A1 A5 A1 A6
This will give the length of the piston rod of actuator 3 = A5 A6 as follows, if the joint
angle θ2 is known.
2 2 2
A5 A6 = A1 A5 + A1 A6 − 2 A1 A5 A1 A6 cos π − γ1 − θ2 − γ2 …. (3.18)
We know that, sin2 θ = 1 − cos 2 θ , for all the real values of θ (∀θ ∈ R). This
gives,
1
4 (A1 A5 )2 (A1 A6 )2 − A1 A5 2 + A1 A6 2 − A5 A6 2 2 2

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.

3.3 Inverse kinematic model


In the section 3.2, we studied that the direct kinematic model determines the position and
orientation of the bucket (bucket configuration) for the given values of joint variables or the
lengths of the piston rods in the actuators. But, inverse kinematic model determines the joint
variable values and the lengths of the piston rods in the actuators corresponding to the
specified position and orientation of the bucket with respect to the base coordinate frame (A.
J. Koivo, 1994). So the inverse kinematic model for the backhoe can be defined as “The
determination of all possible and feasible sets of joint variables, which would achieve the
specified configuration of the bucket of the backhoe with respect to the base frame”. In this
section the mathematical inverse kinematic model for the backhoe is presented.
Here assuming that, the coordinate of point A3 in the base coordinate frame {0} are
known, i.e. 0PA3 = [0xPA3 0yPA3 0zPA3 1]T is known, we will find the joint variables (in our case
these are joint angles) θ1, θ2, θ3, and θ4, and the piston rod lengths of the actuators ST, UV,
A5A6, A7A8, A9A10. The whole inverse kinematic modeling task will now be divided into
two sub sections, one section to find the joint angles in terms of bucket configuration, and
other section to find the piston rod lengths of the actuators in terms of the joint angles.
The solution of the inverse kinematic problem in robotics is a difficult task as
compared to the direct kinematic problem (R. K. Mittal et al., 2003). But over the period of
time the solution techniques to solve the inverse kinematic problem have been developed by
the researchers, and those are: closed form solutions, and numerical solutions. In closed form

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.

3.3.1 Joint angles in terms of bucket configuration


Firstly, the joint angles θ1, θ2, θ3, and θ4, will be determined in terms of the bucket
configuration. It is assumed that the digging task is performed on the vertical plane
containing the line segment O0 O1 .
The point A3 can be expressed in the first coordinate frame as follows:
1
PA3 = 1T3 3PA3 = 1T0 0PA3 …. (3.31)
Where, 3PA3 = coordinates of point A3 in the coordinate frame {3}.
Where, 0PA3 = [0xPA3 0yPA3 0zPA3 1]T, and 0xPA3, 0yPA3, 0z
PA3 are x, y and z coordinates of
point A3 in the base coordinate frame respectively and 3PA3 = [0 0 0 1]T, and 1T0 = [0T1]-1,
1
T3 = 1T2 2T3.
Let us first find out 1PA3 = 1T0 0PA3.
C1 S1 0 −a1
1
T0 = [ T1] = 0
0 -1 0 1 0 …. (3.32)
S1 −C1 0 0
0 0 0 1
This gives,
0x
C1 S1 0 −a1 PA 3
0y
1 0 PA 3
1
𝐏A 3 = 0 0
S1 −C1 0 0 0z
PA 3
0 0 0 1 1
C1 0x PA 3 + S1 0y PA 3 − a1
0z
PA 3
∴ 1𝐏A 3 = …. (3.33)
S1 0x PA 3 − C1 0y PA 3
1
Now, 1𝐏A 3 = 1𝐓3 ∙ 3𝐏A 3 , gives,
1 −1
𝐓2 ∙ 1𝐏A 3 = 2𝐓3 ∙ 3𝐏A 3

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

So, the equation (3.38) can be rewritten as,


y
cos θ2 − ϕ = .… (3.38a)
r

Where,
0z 2
y= PA 3 + x 2 + a2 2
− a3 2

Now from equation (3.38a), it can be written,


r 2 −y 2
sin θ2 − ϕ = …. (3.38b)
r

By dividing the equation (3.38b) by equation (3.38a), one yields,


r2 − y2
tan θ2 − ϕ =
y
r2 − y2
∴ θ2 = ϕ + tan−1
y

…. (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.

Fig. 3.7 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.

3.4 Differential motion (velocity only) of the backhoe


The direct and inverse kinematic relationships permit the static control of the backhoe to
place the bucket at a specified location and make it traverse a specific path in space.
However; for the backhoe not only the final location of the bucket is of concern, but also the
velocities at which the bucket would move to reach the final location is equally important
concern. This requires the coordination of the instantaneous bucket velocity and joint
velocities. One way to achieve this is to take the time derivative of kinematic equations of
the backhoe and another way is to use Jacobian matrix. The transformation from joint
velocities to the bucket velocity is described by a matrix known as Jacobian. Both the
methodologies are covered in this work.
In this study, the use of Jacobian and use of derivative of kinematic equations for
determining the bucket velocity in terms of the joint velocities are presented. But at certain
location in joint space, the Jacobian may lose its rank and become ill, these locations are
collectively known as Jacobian singularities. In addition Jacobian is also useful for
describing mapping between forces applied to the bucket and resulting torques at the joints
known as the statics.
Firstly, let us find out the linear and angular velocities of each link by derivative of
kinematic equations. The differential motion with consideration of joint acceleration is
covered in next chapter 4 of backhoe dynamic model in section 4.4.2.

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:

−s1 θ1 a2 c2 + a1 − a2 s2 c1 θ2 −s1 a2 c2 + a1 −a2 s2 c1 0 0 θ1


θ2
0
𝐯2 = c1 θ1 a2 c2 + a1 − a2 s2 s1 θ2 = c1 a2 c2 + a1 −a2 s2 s1 0 0
a2 c2 θ2 0 a2 c2 0 0 θ3
0 0 0 0 0 θ4
…. (3.48)

46
The linear velocity of the arm of a backhoe can be given by:

−s1 a3 c23 + a2 c2 + a1 −c1 a3 s23 + a2 s2 −c1 a3 s23 0 θ1


−s1 a3 s23 0 θ2
𝐯3 = c1 a3 c23 + a2 c2 + a1
0 −s1 a3 s23 + a2 s2
0 a3 c23 + a2 c2 a3 c23 0 θ3
0 0 0 0 θ4
…. (3.49)
The linear velocity of the bucket of a backhoe can be given by:
0
𝐯4

−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.

3.4.4 Inverse Jacobian


In actual operation of a backhoe to make the bucket track a specified trajectory with a given
velocity profile, it is required to coordinate individual joint motions. In other words, for a
given bucket velocity Vb the corresponding joint velocities θ must be found that will cause
the bucket to move at desired velocity.
Now, it is known from equation (3.63) that,
𝐕b t = 𝐉(𝛉)𝛉
This leads to,
𝛉 = 𝐉 −1 (𝛉)𝐕b t …. (3.78)
For the automatic operation of the backhoe excavator, the piston velocities are
required that will cause the bucket to move at a desired trajectory and with a desired
velocity. These required piston velocities VST , VUV , VA 5 A 6 , VA 7 A 8 and VA 9 A 10 can be
determined by the equations from (3.70) to (3.77), once their respective joint angle speeds
(Joint speed matrix 𝛉) are known from equation (3.78).
It is known that for an inverse of a matrix to exist, it must be a square matrix. The
earlier Jacobian matrix was of the size 6 × 4, so it was not a square matrix. Thus it was
having four controllable joint rates and six controllable Cartesian velocities. But we
reduced that matrix from 6 × 4 to 4 × 4 as given by equation (3.69). This reduced matrix
is a square matrix provided that there are only four controllable joint rates and four
controllable Cartesian velocity components, three Cartesian linear velocities (V4x, V4y,

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.

3.5 Backhoe static model


The work cycle of the backhoe includes the following operations or motions: Digging the
ground, loading the material into the bucket, and dumping the excavated material into the
dump truck or trolley, and then back to the digging operation again. From all the operations
the most important task is digging as it requires forceful interaction of the bucket with the
ground. While digging bucket is required to exert a force and/or moment on the ground. The
bucket makes the contact with the ground and all joints remain static for that time. The
contact between the bucket and ground results in interactive forces and moments at the
bucket ground interface. So, the static problem of a backhoe is to determine the relationship
between the joint torques and forces exerted by the ground on the bucket teeth under static
equilibrium conditions. So the joint torques that must be acting to keep the system in static
equilibrium will now be considered.

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

Where, b = a4 c234 + a3 c23 + a2 c2 + a1 . Matrix multiplication leads to:


a4 c234 + a3 c23 + a2 c2 + a1 −s1 Fx + c1 Fy
τ1
τ2 a4 s234 + a3 s23 + a2 s2 −c1 Fx − s1 Fy + a4 c234 + a3 c23 + a2 c2 Fz + ηz
τ3 =
a4 s234 + a3 s23 −c1 Fx − s1 Fy + a4 s234 + a3 s23 Fz + ηz
τ4
a4 s234 −c1 Fx − s1 Fy + a4 s234 Fz + ηz
…. (3.80)
Equation (3.80) shows the joint torques in terms of the joint angles, when the
system is in equilibrium. The MATLAB code to find the resulting joint torques due to the
ground-bucket interaction is given in section B.1.5 of appendix B and results are
discussed in chapter 10.

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

Вам также может понравиться