Master thesis, 30 hp
Robotics and Control Programme , 120hp Aurumn term 2016
Initial concepts to develop a semi-autonomous
operator support
technology for operating a novel forestry machine
Dong xiaowei
Supervised by:
Pedro La Hera
R&D in SLU and Skogstekniska klustret Shafiq Urréhman
Associated professor in Umea University
Abstract
Forestry machines have the power to lift heavy logs, but they are not so smart at providing information, or help operators perform better work [3].
The main reason to this problem is the low level of technology applied to forestry machines, which has not changed so much since the forestry machines were first introduced in the 1960’s. But starting 2013, ma- chines manufacturers got inspired by developments in the automation and robotics industry, several of new technologies have been developed in the market - computerized hydraulics, feedback controllers for vibration damp- ing, sensor-based motion control systems, improvements in mechanical de- sign, smart suspension controller, etc [11]. Largely, this development is at- tributed to better hardware and software developed during the last decade by researchers of Scandinavian institutes.
In this thesis, we introduce a new type of forestry machine, the harwarder, which can perform the work of two machines (harvester and forwarder) by a single one. The forwarder is a forestry vehicle that carries big felled logs. The harvester is a type of heavy forestry manipulator employed in cut-to-length logging operations for felling, and bucking trees. Both the manipulator and vehicle should work synchronized to get the best out of this design. To benefit out of its design, in the first part of thesis we will an- alyze the kinematics and dynamics of machine, and design a time optimal coordinated motion via virtual holonomic constraints, to solve a particular task of forestry crane. The second part consists on applying optimization to reduce energy consumption during the motion.
Result of thesis work:1) By using coordinated motion, consequently the
energy consumptions are drastically reduced comparing to traditional
motion of the crane. 2) By applying optimization, the energy efficiency
is improved.
Acknowledgments
My deepest gratitude goes to my supervisor Pedro La Hera and his research group (Omar Mendoza Trejo and Daniel Ortiz Morales), and Co-supervisor Pro.Shafiq Ur Rehman, from Umeå University. Their suggestions, guid- ances, patience allow me to finish the thesis successfully.
To Pedro, thanks for navigating the way of exploring robotics ocean, giving me the direction when I was confused.
To Omar, thanks for providing hardware and technical support, and teach- ing me write thesis properly.
To Daniel, thanks for providing guidance of virtual holonomic approach.
To Shafiq, thanks for being my Co-supervisor in university, helping with administrative issues.
To my parents, thanks for encouraging me when I encountered difficulties.
At end, I want to express my deepest gratitude again for those people who
give me huge support during my thesis.
Contents
1 Introduction 8
1.1 Background . . . . 8
1.2 Motivation and objective . . . . 8
1.3 Structure of thesis . . . . 8
2 Kinematics 10 2.1 Robot forward kinematics . . . 10
2.1.1 Denavit-Hartenberg convention . . . 11
2.1.2 Assigning the coordinate frames . . . 11
2.1.3 Forward equation . . . 12
2.2 Robot inverse kinematics . . . 13
2.2.1 Analytical solution . . . 14
2.3 Log container forward kinematics . . . 15
2.4 Coordinate transformation . . . 20
2.4.1 Mapping between x
2and q
2. . . 20
2.4.2 Mapping between x
3and q
3. . . 22
2.4.3 Finding maximum joint velocity . . . 25
3 Dynamics 28 3.1 Euler-Lagrange equations . . . 28
3.1.1 Kinetic energy . . . 29
3.1.2 Potential energy . . . 30
3.1.3 Centrifugal and Coriolis forces . . . 30
3.1.4 Manipulator dynamics analysis . . . 30
3.2 Simulation results . . . 33
4 Path planning 37 4.1 Formulation of the path . . . 37
4.1.1 Algebraic polynomial . . . 37
4.1.2 Bézier polynomial . . . 38
4.2 Coordinated motion plan for new forestry machine . . . 39
5 Numerical trajectory optimization 42 5.1 Finding a stable initial configuration for crane . . . 42
5.2 Trajectory optimization with q
4. . . 43
6 Virtual Holonomic Constraints 46 6.1 Basic concept of Virtual Holonomic Constraints . . . 46 6.2 Velocity phase plane: trajectory generator . . . 46 6.3 Designing feasible velocity curve in phase plane . . . 48 6.4 Apply virtual holonomic constraints with different paths . . . 49 7 Including a second performance index 54
8 Discussion 58
9 Conclusions 59
10Appendix A: Data sheet of forest crane 61
List of Tables
1 DH Table. . . 12
2 Joint variable limits. . . 13
3 DH table of end-point 2. . . 17
4 DH table of end-point 1 and 3. . . 18
5 DH table of base-point A and C. . . 18
6 DH convention of end-point 5 . . . 19
7 DH convention of end-point 4 and 6 . . . 19
8 DH convention of base-point D and F . . . 19
9 Hydraulic joint working range. . . 26
10 Comparing energy cost after optimization. . . 45
11 Energy consumptions of three paths at t
f=40 s. . . 52
12 Different objective functions optimization for curve path with t
f=40 s. . . 56
13 Inertia I
ciof each link in body frame . . . 61
14 Center of mass of each link in joint initial frame . . . 61
15 Joint angular velocity limits . . . 61
List of Figures
1 Manipulator model. . . 10
2 Assign frames for forward kinematics. . . 12
3 Crane’s manipulator simulation . . . 13
4 The configuration of manipulator for deriving inverse kinematics. 14 5 Container bunk with yaw, roll, pitch angle. . . 16
6 Assign frames for container forward kinematics. . . 17
7 Simulation of container forward kinematics. . . 20
8 Schematics of measured angle q
2with essential parts. . . 21
9 Geometry of the angle q
3with the essential mechanical com- ponents. . . 22
10 Mapping function validation block diagram. . . 26
11 Maximum linear velocity x
2and x
3. . . 26
12 Integral of maximum linear velocity of second and third hy- draulic links. . . 27
13 Applying coordinate transformation to get range of q
2and q
3. 27 14 Differentiating q
2and q
3to get angular velocities ˙q
2, ˙q
3. . . 27
15 Joint variable profiles . . . 34
16 Joint velocity profiles . . . 34
17 Joint acceleration profiles . . . 35
18 Dynamics computation testing . . . 36
19 Two polynomials for standard path . . . 39
20 Three different types of motion between container and manip- ulator. . . 41
21 Different initial configurations of manipulator. . . 43
22 ˙θ-θ plane boundary . . . 48
23 The velocity curves in θ- ˙θ plane. . . 50
24 Three types of paths in Cartesian space. . . 51
25 Three types of energy consumptions for standard path. . . 51
26 Three types of energy consumptions for curve path. . . 52
27 Three types of energy consumptions for straight path. . . 52
28 Optimizing q
4with objective function
1. . . 55
29 Optimizing q
4with objective function
2. . . 55
30 Optimizing q
4with objective function
3. . . 56
31 Optimizing q
4with objective function
4. . . 56
1 Introduction
1.1 Background
In Sweden, a chain of university research groups and industry companies, are developing the novel idea of semi-autonomous forestry machines [4].
Since forestry machines are difficult to operate, in order to provide opera- tor with smart machines that can cope with difficult tasks, forest industry is trying to incorporate robotics and automation technologies in order to improve the performance of the cranes. Now, from the robotics point of view, many related works to improve systems performance have been done, including feedback controllers for vibration damping [8], sensor-based mo- tion control systems [15], and improvements in mechanical design.
1.2 Motivation and objective
As we have already mentioned, some improvements in forestry machines have been achieved. Nevertheless, the improvements are not significant in terms of trajectory planning, which can be done in many senses, for exam- ple, achieving time-efficient or energy-efficient improvements.
Although the energy and time costs are two important performance criteria for forestry machine, considering both of them together will lead to a com- plex optimization problem, specially when the robot´s model has several degrees of freedom. In this study, a method has been applied to improve the time and energy efficient respect to a particular task of new forestry crane. The main thesis work was broken into four parts : 1) Forestry crane mechanical analysis 2) Path planning for a particular task of crane 3) Design time optimal trajectory by virtual holonomic constraints method [12] 4) Include a second performance index for trajectory optimization.
1.3 Structure of thesis
To ease readability, this thesis has been structured as follows. Chapter 2 in-
troduces the kinematics of forestry crane. The mathematical relations used
for modeling the crane dynamics are presented in Chapter 3. The steps and
procedures used for path planning are described in Chapter 4. Numerical
trajectory optimization is introduced in Chapter 5, and virtual holonomic
constraints method based optimizations are introduced in Chapter 6 and 7
respectively. Finally, discussion and conclusions are presented in Chapter
8 and 9 respectively.
2 Kinematics
The manipulator (harvester) used for our project is a 3D-print model, which is made of three revolute joints q
1, q
2, q
3, and one redundant prismatic joint q
4[6], the joint variables form the vector of generalized coordinates as (2.1), viewed from Figure 1, the system resembles a serial kinematic chain with an end-effector in the last link. In this section, we will analyze the forward and inverse kinematics of crane (manipulator and container), besides, we derive the mapping relations between cylinder´s piston displacement and joint variables, x
2⇔θ
2and x
3⇔θ
3.
q = [q
1, q
2, q
3, q
4] (2.1)
z0 (q1)
z2 (q
2)
z4 (q
3)
z6 (q4)
Figure 1: Manipulator model.
2.1 Robot forward kinematics
By definition, forward kinematics is about determining the position and ori-
entation of the end-effector, when the values of joint variables are provided
[14]. This section is organized in the following manner: we first introduce
the Denavit-Hartenberg (DH) convention method [14], then we present the
procedures of assigning the coordinate frames based on DH convention, the
last step is to derive forward kinematics equations.
2.1.1 Denavit-Hartenberg convention
DH convention can simplify the analysis considerably in robotics applica- tions, each homogeneous transformation A
iis represented as a product of four basic transformations [14].
A
i=Rot
z,θiT rans
z,diT rans
x,aiRot
z,αi=
cos(θ
i) −sin(θ
i)cos(α
i) sin(θ
i)sin(α
i) a
icos(θ
i) sin(θ
i) cos(θ
i)cos(α
i) −cos(θ
i)sin(α
i) a
isin(θ
i)
0 sin(α
i) cos(α
i) 0
0 0 0 1
. (2.2)
Four quantities θ
i, d
i, a
i, α
iare given names as, joint angle, link offset, link length, link twist, respectively. Since A
iis a single variable function, which means three quantities are constant, and one revolute joint variable θ
ior prismatic joint variable d
i[14].
The link length a
iis distance along x
ifrom o
ito the intersection of the axis of x
iand the axis of z
i−1.
The link length d
iis distance along z
i−1from o
i−1to the intersection of the axis of x
iand the axis of z
i−1.
The link twist α
iis the angle between z
i−1and z
imeasured about x
i. The Link angle θ
iis the angle between x
i−1and x
imeasured about z
i−1. It is obvious that it is impossible to describe any arbitrary homogeneous transformation using these four quantities. In order to derive unique trans- formation, suppose the two frames satisfy next two additional rules [14]:
1. The axis x
1is perpendicular to the axis z
0. 2. The axis x
1interacts the axis z
0.
Following these two features, we claim that there exist unique transforma- tion between two frames.
2.1.2 Assigning the coordinate frames
Even though we have two extra constraints, the choice of assigning coor-
dinate frames is not unique. First of all, we determine the z-axis of each
joint frame, then we combine DH conventions to assign x and y axis of each
joint. Note that sometimes it is necessary to add virtual frame for off-set
point, so as to satisfy DH conventions.
In Figure 2, four red dots are the real joints, the last joint connects the end-effector, besides, there are three virtual frames. We establish the base frame x
0y
0z
0, the direction of z-axis is vertical, the x-axis is arbitrary, but x
0y
0z
0should follow right hand rule. Once the base frame is established, we begin an iterative process to define coming frame under conventions, till the end-effector frame x
ey
ez
e.
Figure 2: Assign frames for forward kinematics.
2.1.3 Forward equation
After assigning the frames, we need to establish the DH table, which con- tains four quantities θ
i, d
i, a
i, α
ifor each joint i.
Table 1: DH Table.
Link di θi ai αi
1 q1 H 0 0
1 0 0 −l0 π/2
2 q2+ π/2 0 l1 0
2 −π/2 0 l2 0
3 q3+ π/2 0 l3 π/2
3 0 l4 0 0
4 0 q4 0 0
According to Table 1, each row of parameters determines a homogeneous
transformation matrix A
i. Then the position and orientation of the each
frame respect to base frame are given by (2.2), note that T
00, T
20, T
40, T
60rep- resent the transformation from base frame to joints, T
70is transformation from base frame to end-effector, T
10, T
30, T
50represent the transformation from base frame to off-set points.
T
n0= A
1(q
1)...A
n(q
n), n = 1...7 (2.3) We can extract the last column of T
n0, which is the position of each frame respect to the base frame. With these positions, we can plot the manipu- lator configuration when joint variables are provided, as shown in Figure 3, where all joint variables are zero.
-0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
x (m)
-0.5 0
0.5
y (m) -0.3
-0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
z (m)
T4 0 T5
0 T
6
0 T
7 0
T0 0 T2
0 T3
0
T1 0
Figure 3: Crane’s manipulator simulation
2.2 Robot inverse kinematics
By definition, inverse kinematics is concerned with finding the joint vari- ables in terms of the end-effector’s position and orientation [14]. Actually, we could find different configurations reaching the same goal point. To avoid that, we provide q
4for inverse kinematic calculation, and Table 2 redefine the working range of each joint variable, in this way, the unique inverse kinematics solution can be obtained.
Table 2: Joint variable limits.
q1(rad) q2(rad) q3(rad) q4(m) [0, 2π] (0,π2) (−π, 0) [0, 0.1]
2.2.1 Analytical solution
In Figure 4, the end-effector position (X
c, Y
c, Z
c) and links length l
0, l
1, l
2, l
3, l
4are given, assuming corresponding joint variables are q
1, q
2, q
3, q
4.
Figure 4: The configuration of manipulator for deriving inverse kinematics.
First, we project end-effector onto the x
0-y
0plane as shown in Figure 4.
q
1:
q
1= Atan2(y
c, x
c), (2.4) in which Atan2(x, y) represents the two arguments arctangent function.
According to geometry relation (2.5), in order to calculate q
2, we need to calculate three angles α
4, α
5, α
7respectively:
q
2= α
4+ α
5+ α
7− π
2 (2.5)
α
4= Atan2(l
2, l
1) (2.6)
α
5= arccos( a
2+ c
2− b
22ac ), (2.7)
where a = pl
21+ l
22, b = pl
23+ (l
4+ q
4)
2, c = √
r
2+ s
2.
α
7= Atan2(s, r), (2.8)
where r
0= px
2c+ y
c2, r = r
0+ l
0, s = z
c− H . The geometry relation of q
3is indicated as (2.9).
q
3= π
2 + α
0(2.9)
In order to compute α
0, we need to calculate angles α
1, α
2, α
3respectively:
α
1= π
2 − α
4(2.10)
α
2= arccos( a
2+ b
2− c
22ab ), (2.11)
where a = pl
21+ l
22, b = pl
23+ (l
4+ q
4)
2, c = √
r
2+ s
2.
α
3= Atan2((l
4+ q
4), l
3) (2.12) α
0= π − (α
1+ α
2+ α
3) (2.13)
2.3 Log container forward kinematics
Next we consider the container vehicle, which cooperates with manipulator
to store logs. The motion of container can be described by Euler angles [5],
in later section, we will discuss how to design the coordinated motion be-
tween manipulator and container. In Figure 5, there are six fixed cylinders
installed on the platform plane, to avoid collision during the coordinated
motion with manipulator, we should be able to control cylinder’s position
and orientation. For each cylinder in Cartesian space, we can describe it
as a straight line which is connected between base-point and end-point.
Figure 5: Container bunk with yaw, roll, pitch angle.
Initially, we can use forward kinematics to calculate base-points A, B, C
and end-points 1, 2, 3. Due to geometric symmetry, then we can derive
the base-points D, E, F and end-points 4, 5, 6 position and orientation. As
shown in Figure 6, we assign frames for A, B, C, 1, 2, 3 respectively.
Figure 6: Assign frames for container forward kinematics.
DH table of end-point 2 is shown in Table 3, the homogeneous transforma- tion matrix T
e2and T
Bare given by (2.15) and (2.16).
Table 3: DH table of end-point 2.
Link di θi ai αi
1 π/2 + yaw H 0 π/2
2 π/2 + roll 0 0 π/2
3 pitch H2 H3 0
A
i= Rot
z,θT rans
z,dT rans
x,aRot
z,α(2.14) T
e2=
3
Y
i=1
A
i(2.15)
T
B=
2
Y
i=1
A
i(2.16)
After we know the T
e2respect to base frame, the homogeneous matrix T
e1, T
e3can be obtained by adding one more homogeneous transformation based on T
e2, corresponding DH table is shown in Table 4. Similarly, T
A, T
Ccan be obtained by adding one more homogeneous transformation based on T
B, corresponding DH table is shown in Table 5.
Table 4: DH table of end-point 1 and 3.
Homogeneous matrix di θi ai αi
Ae1 π/2 0 −d1 π/2
Ae3 π/2 0 d2 π/2
T
e1= T
e2∗ A
e1(2.17)
T
e3= T
e2∗ A
e3(2.18)
Table 5: DH table of base-point A and C.
Homogeneous matrix di θi ai αi
Aa π/2 0 −d1 π
Ac π/2 0 d1 π
T
A= T
B∗ A
a(2.19)
T
C= T
B∗ A
c(2.20)
After deriving half side of base-points and end-points, the other half points
can be found by following same process before. According to Table 6, we
determine end-point 5 and base-point E, then based on Table 7 and Table
8, we can obtain end-points 4, 6 and base-points D, F respectively.
Table 6: DH convention of end-point 5
Link di θi ai αi
1 π/2 + yaw H 0 π/2
2 π/2 + roll 0 0 π/2
3 pitch −H2 H3 0
T
e5=
3
Y
i=1
A
i(2.21)
T
E=
2
Y
i=1
A
i(2.22)
Table 7: DH convention of end-point 4 and 6
Homogeneous matrix d θ a α
Ae4 π/2 0 −d1 π/2
Ae6 π/2 0 d2 π/2
T
e4= T
e5∗ A
e4(2.23)
T
e6= T
e5∗ A
e6(2.24)
Table 8: DH convention of base-point D and F
Homogeneous matrix di θi ai αi
Ad π/2 0 −d1 π
Af π/2 0 d2 π
T
D= T
E∗ A
d(2.25)
T
F= T
E∗ A
f(2.26)
After we obtain all base-points and end-points position and orientation, we
simulate essential part of container in software, as shown in Figure 7, 7(a)
depicts the initial state of container, 7(b) shows the container configuration
rotating with yaw = π/2.
0 0.5 0.2
y (m) 0.4
0
z (m)
0.6
x (m) 0.4 0.6
0 0.2 -0.5 -0.2
(a) yaw = 0; roll = 0; pitch = 0
0 0.5 0.2 0.4
z (m)
y (m)
0.6
0 0.4
x (m) 0.6
0 0.2 -0.5 -0.2
(b) yaw =π2; roll = 0; pitch = 0 Figure 7: Simulation of container forward kinematics.
2.4 Coordinate transformation
In hydraulic robotics, electrical driven motor cannot provide enough power to lift such heavy links, for our manipulator, the rotation of joints 2, 3 are powered by cylinder´s piston displacement, so it is necessary to establish the relation between x
2⇔θ
2and x
3⇔θ
3.
The trigonometric mapping between linear cylinder’s piston displacement and corresponding joint angle can be found based on the geometry of the manipulator. Those mapping q
2(x
2) and q
3(x
3) functions are used for de- riving the joint torques and computing joint angular velocities when linear velocities of cylinder are given.
2.4.1 Mapping between x2 and q2
In order to calculate the cylinder´s piston displacement x
2as a function
of the joint angle q
2, we draw geometry of essential mechanical parts, the
link length parameters r
1, r
2, r
3, r
4, r
5, l
0are known, as shown in Figure 8.
Figure 8: Schematics of measured angle q2 with essential parts.
In order to calculate q
2, we need to derive β
1, β
4by law of cos.
β
1= arccos( (r
23+ r
12− r
22)
(2r
3r
1) ) (2.27)
β
2= arccos( (r
32+ r
42− x
22)
(2r
3r
4) ) (2.28)
β
3= arcsin( r
5r
4) (2.29)
β
4= β
2− β
3(2.30)
q
2= −(π/2 − β
1− β
4) (2.31) Inverse calculation, given q
2to calculate x
2:
β
3= arcsin( r
5r
4) (2.32)
β
1= arccos( (r
23+ r
12− r
22)
(2r
3r
1) ) (2.33)
β
2= β
3+ π/2 − β
1+ q
2(2.34) x
2=
q
(r
32+ r
42− 2r
3r
4cos(β
2)) (2.35) The relation (2.31) and (2.35) establish the mapping between x
2and q
2.
2.4.2 Mapping between x3 and q3
In Figure 9, we draw the simplified manipulator, the essential part of sec- ond hydraulic cylinder is a four-bar linkage system (polygon C-O-D-E) [9], which contains the important geometry relations for deriving mapping functions between x
3and q
3.
Figure 9: Geometry of the angle q3with the essential mechanical components.
Mapping relation q
3(x
3):
In triangle AA
1C , we represent x
3pby x
3.
∠AA C = ∠AA B + ∠BA C, (2.36)
where ∠BA
1C = arccos(
d29+x2d23−d219x3
) , ∠AA
1B = arccos(
d29+d2d210−d249d10
) . x
3p=
q
x
23+ d
210− 2x
3d
10cos(∠AA
1C) (2.37) In triangle AOC, we calculate m by law of cos.
∠OAC = ∠BAC − ∠BAO, (2.38)
where ∠BAC = arccos(
d24+x2d423px3p−d21) , ∠BAO = arccos(
d24+d2d425d−d5 22) . m =
q
(x
23+ d
25− 2x
3d
5cos(∠OAC)) (2.39) Next, in triangle COD and DOE, we can calculate ∠COD and ∠DOE respectively.
d
7= q
d
23+ l
32(2.40)
∠COD = arccos( m
2+ d
27− d
202md
7) (2.41)
∠DOE = Atan2(d
3, l
3) (2.42)
∠COE = ∠COD + ∠DOE (2.43)
Final step, the angle relation of q
3is described as (2.46), before that we need to calculate ∠EOF by (2.45).
∠COA = arccos( m
2+ d
25− x
232md
5) (2.44)
∠EOF = π − ∠COA − ∠COE (2.45)
q
3= π/2 − ∠EOF (2.46)
Mapping relation x
3(q
3) :
Inversely, the essential step is to derive length m. Now we have already
known the link length CO and CD in triangle COD, in order to apply law
of cos, we need to derive ∠CDO as follow:
∠EOF = π/2 − q
3(2.47)
In triangle AOB, AB = d
4, AO = d
5, BO = d
2, according to law of cos:
∠AOB = arccos( d
25+ d
22− d
242d
5d
2) (2.48)
d
2x= −d
2cos(∠AOB) (2.49)
d
2y= −d
2sin(∠AOB) (2.50)
∠AOE = π − ∠EOF (2.51)
∠BOE = ∠AOE + ∠AOB = π/2 + q
3+ ∠AOB (2.52) In triangle DOE, DE = d
3, OE = l
3, ∠OED =
π2, so we can get
∠DOE = Atan2(d
3, l
3) (2.53)
∠BOD = ∠BOE − ∠DOE (2.54)
In triangle BOD, BO = d
2, OD = d
7= pl
23+ d
23, according to law of cos:
BD = q
d
22+ d
27− 2d
2d
7cos(∠BOD) (2.55) In triangle CBD, CB = d
1, CD = d
0, BD = d
8, according to law of cos:
∠CDB = arccos( d
20+ d
28− d
212d
0d
8) (2.56)
OD
x= l
3sin(q
3) − d
3cos(q
3) (2.57) OD
y= l
3cos(q
3) + d
3sin(q
3) (2.58)
∠3 = Atan2(OD
y, OD
x) (2.59)
BD
x= l
3sin(q
3) − d
3cos(q
3) − d
2x(2.60) BD
y= l
3cos(q
3) + d
3sin(q
3) − d
2y(2.61)
∠1 = Atan2(BD
y, BD
x) (2.62)
∠BDO = ∠3 − ∠1 (2.63)
∠CDO = ∠CDB + ∠BDO (2.64)
m = q
d
20+ d
27− 2d
0d
7cos(∠CDO) (2.65) In triangle BOC, BO = d
2, BC = d
1, CO = m, according to law of cos:
∠BOC = arccos( d
22+ m
2− d
212d
2m ) (2.66)
∠AOC = ∠BOC − ∠AOB (2.67)
In triangle AOC, AO = d
5, AC = x
3, CO = m, according to law of cos:
x
3p= q
m
2+ d
25− 2md
5cos(∠AOC) (2.68)
∠A
1AC = ∠A
1AB − ∠CAB, (2.69)
where ∠CAB = arccos(
x23p2x+d3p24d−d4 21) , ∠A
1AB = arccos(
d2102d+d24−d2910d4
) . x
3=
q
d
210+ x
23p− 2d
10x
3pcos(∠A
1AC) (2.70) The relation (2.46) and (2.70) establish the mapping between x
3and q
3.
2.4.3 Finding maximum joint velocity
From previous section, we obtained mapping functions q
2(x
2) and q
3(x
3) ,
which are used for computing joint angular velocity given linear velocity of
cylinder. According to q
2, q
3range in Table 2 and mapping functions, the
range of x
2and x
3are shown in Table 9.
Table 9: Hydraulic joint working range.
units x2 x3
m [0.04947, 0.1447] [0.103, 0.1561]
In Figure 10, the block chain describes how to verify the result of our map- ping function. For example, we can choose θ
2as sin wave, and check the output error signal.
q q → x x → q − scope
Figure 10: Mapping function validation block diagram.
The hydraulic links of our 3D model have the same maximum linear veloc- ity 0.01 m/s. Based on mapping functions, we can determine the maximum angular velocity value of ˙q
2, ˙q
3, the corresponding sketch diagram is shown in Figure 11:
X˙max
Z x → q d
dt scope
Figure 11: Maximum linear velocity x2 and x3.
First we integrate ˙x
maxfrom x
minto x
max, representing the motion that hydraulic cylinders move from fully-closed to fully-open. The hydraulic cylinder’s piston displacement x
2and x
3during the motion are shown in Figure 12 (a) and Figure 12 (b) respectively.
Afterwards, we apply mapping functions q
2(x
2) and q
3(x
3) , the results
indicate that q
2∈ (0,π/2), q
3∈ (0,-π) during that motion, as shown in Figure
13. Simultaneously, by differentiating q
2and q
3, we get angular velocity
profiles, as shown in Figure 14, the maximum magnitude of ˙q
2, ˙q
3, are
0.2671 rad/s and 1.011 rad/s respectively.
(a) x2 (b) x3
Figure 12: Integral of maximum linear velocity of second and third hydraulic links.
(a) q2 (b) q3
Figure 13: Applying coordinate transformation to get range of q2and q3.
(a) ˙q2 (b) ˙q3
Figure 14: Differentiating q2and q3 to get angular velocities ˙q2, ˙q3.
3 Dynamics
In this section we deal with 4-link robot manipulators dynamics. The dy- namics of robot describes the relation between torque and motion, which is essential equation for trajectory optimization and control design. There- fore, we introduce the so-called Euler-Lagrange equations, which describe the motion of a mechanical system in terms of Holonomic constraints.
3.1 Euler-Lagrange equations
The Lagrangian L can describe the motion of a manipulator which repre- sents its dynamic behavior [14]:
d dt ( ∂L
∂ ˙q ) − ∂L
∂q = τ, L = K − U (3.1)
The torques which are applied to the actuator of each joint via the La- grangian involving the kinetic energy K and potential energy U. Since the potential energy always depends on the height of center of mass, we can write the potential energy as a function of the joint variables q, U = U(q).
Using the fact that the potential energy is independent of the time we can separate it from the kinetic energy:
d
dt ( ∂K
∂ ˙q ) − ∂K
∂q + ∂U
∂q = τ (3.2)
Now we calculate each element in equation (3.2) K = 1
2 ˙q
TM (q) ˙q (3.3)
∂K
∂ ˙q = M (q) ˙q (3.4)
d
dt ( ∂K
∂ ˙q ) = M ¨ q + ˙ M ˙q (3.5) G(q) = ∂U
∂q (3.6)
∂K
∂q = 1
2 ˙q
T∂M
∂q ˙q (3.7)
By replacing equations (3.3) to (3.7) in equation (3.2), we get the following expression:
M q + ˙ ¨ M ˙q − 1
2 ˙q
T∂M
∂q ˙q = τ − G(q) (3.8)
The left hand side of equation (3.8) represents the inertial forces of the ma- nipulator. Furthermore, the dynamics of a robotic manipulator ignoring the friction forces usually can be represented as [14]:
M
n×n(q)¨ q
n×1+ V
n×1(q, ˙q) + G
n×1(q) = τ
n×1(3.9) We can see from the above derivations that an important step to compute the mass matrix M is to calculate the kinetic energy from our analysis.
From the kinetic energy, we should be able to directly find the mass matrix M . If we have the mass matrix M it is easy to compute the V (q, ˙q) which represents the centrifugal and Coriolis forces.
3.1.1 Kinetic energy
By definition, kinetic energy is the work done by external forces in such a way to bring the system from rest to its current state [1].
Consider a manipulator which can perform linear or rotational motions:
K
v= 1
2 m
iv
iTv
i(3.10)
K
w= 1
2 w
iTI
iw
i(3.11)
where m
iis the mass of the link i, v
iis the linear velocity of the link i, w
iis the angular velocity of the link i and I
iis the inertia tensor of the link i. Please note that each parameter is calculated from the base to center of mass (COM) of each link. Thus the kinetic energy for the link i is:
K
linki= 1
2 w
iTI
iw
i+ 1
2 m
iv
iTv
i(3.12) Then, according to the Jacobian matrix for each link:
v
i= J
vi˙q (3.13)
w
i= J
wi˙q (3.14)
By substituting the above equations (3.13) to (3.14) into (3.12), we got:
1
2 ˙q
TM ˙q = 1 2 ˙q
T4
X
i=1
(w
TiI
iw
i+ m
iv
iTv
i) ˙q (3.15)
3.1.2 Potential energy
By definition, potential energy is possessed by an object because of its position in a gravitational field [1].
The total potential energy of a manipulator depends on its configuration:
U =
4
X
1
U
i=
4
X
1
m
i(−g
TP
icog), (3.16) where m
iis mass of each link, P
icogis the position of each link’s COM, g is gravity vector.
3.1.3 Centrifugal and Coriolis forces
In the general dynamic equation (3.9), V (q, ˙q) represents the Centrifugal and Coriolis forces. By definition, the Coriolis force is an inertial force that acts on objects that are in motion relative to a rotating reference frame. The centrifugal force is an inertial force directed away from the axis of rotation that appears to act on all objects when viewed in a rotating reference frame [1].
V (q, ˙q) = C(q)
n×n[ ˙q
2]
n×1+ B(q)
n×n(n−1)2
[ ˙q
n˙q
n−1]
n(n−1)2 ×1
(3.17)
3.1.4 Manipulator dynamics analysis
Guidelines for deriving the dynamic equations:
1. Calculate the center of mass (COM) for each rigid link respect to base frame.
We already know the each link’s center of mass represented in each initial joint frame (without rotation) c
n, as shown in Appendix A, Table 14. When joint rotating around z axis, the center of mass (COM) respect to each initial joint frame (without rotation) will change according to:
c
0n= R
z(θ
n) × c
n(n = 0, 2, 4), (3.18)
where R
z(θ
n) is the rotation matrix.
If joint is prismatic, for instance the crane telescope, the center of mass c
6is represented in initial joint 4 frame (without translation), when telescope extending with q
4:
c
06= c
6+ q
4(3.19)
According to the crane forward kinematics, we have already derived each joint’s initial joint frame respect to base frame, represented by homoge- neous matrix T
00, T
20, T
40, T
60. So the COM of each link’s homogeneous matrix can be expressed respect to base frame:
COM
n1
= T
n0c
0n1
(n = 0, 2, 4, 6). (3.20) 2. Calculate velocity Jacobian J
viand angular velocity J
wifrom the base frame to the COM of each link i (i=1, ..., n).
J
v1= [ ∂COM
1∂q
1, 0
3×1, 0
3×1, 0
3×1], (3.21) J
v2= [ ∂COM
2∂q
1, ∂COM
2∂q
2, 0
3×1, 0
3×1], (3.22) J
v3= [ ∂COM
3∂q
1, ∂COM
3∂q
2, ∂COM
3∂q
3, 0
3×1], (3.23) J
v4= [ ∂COM
4∂q
1, ∂COM
4∂q
2, ∂COM
4∂q
3, ∂COM
4∂q
4], (3.24) where 0
3×1represents 3x1 matrix whose elements are all 0.
From homogeneous transformation T
00, T
20, T
40, T
60, we extract the columns of z
n0component by ρ
nT
n0(1 : 3, 3) . ρ
nz
n0will be components of the full Jacobian matrix. ρ
n= 1 for prismatic joint, otherwise is 0.
J
w1= [ρ
1T
00(1 : 3, 3), 0
3×1, 0
3×1, 0
3×1], (3.25)
J
w2= [ρ
1T
00(1 : 3, 3), ρ
2T
20(1 : 3, 3), 0
3×1, 0
3×1], (3.26)
J
w3= [ρ
1T
00(1 : 3, 3), ρ
2T
20(1 : 3, 3), ρ
3T
40(1 : 3, 3), 0
3×1], (3.27)
J
w4= [ρ
1T
00(1 : 3, 3), ρ
2T
20(1 : 3, 3), ρ
3T
40(1 : 3, 3), ρ
4T
60(1 : 3, 3)], (3.28) where 0
3×1represents 3x1 matrix whose elements are all 0.
3. With Jacobian matrix, mass m
iand moment of inertia I
i, we can state the mass matrix M using following equation:
M =
4
X
i=1
(m
iJ
vTi
J
vi+ J
wTi
I
iJ
wi)(i = 1, ..., 4), (3.29) where
I
i=
I
ixxI
ixyI
ixzI
iyxI
iyyI
iyzI
izxI
izyI
izz
.
Note that inertia I
iin equation is relative to link i body frame.
4. Calculate the centrifugal C(q)
n×nand Coriolis B(q)
n×(n−1)n2
matrix. For simplification, we introduce Christoffel’s symbols (3.30) and (3.31) [14], then we formulate elements in C(q)
n×nand B(q)
n×(n−1)n2
with Christoffel’s symbols.
C(q)
4×4=
b
111b
122b
133b
144b
211b
222b
233b
244b
311b
332b
333b
344b
411b
422b
433b
444
.
B(q)
4×6=
2b
1122b
1132b
1142b
1232b
1242b
1342b
2122b
2132b
2142b
2232b
2242b
2342b
3122b
3132b
3142b
3232b
3242b
3342b
4122b
4132b
4142b
4232b
4242b
434
.
b
ijk= 1/2(m
ijk+ m
ikj− m
jki) (3.30) m
ijk= ∂m
ij∂θ
k; m
ikj= ∂m
ik∂θ
j; m
jki= ∂m
jk∂θ
i, (3.31)
where m
ijis the elements from mass matrix.
5. Calculate the potential energy with each rigid link’s COM:
U =
n
X
1
m
i(−g
TCOM
i), g = [0, 0, 9.81], (3.32) where COM
iis COM position of each link respect o base frame, g is grav- ity vector. m
iis mass of each link.
G
4×1(q) = ∂U
∂q
i(i = 1, ..., 4), (3.33) Alternative method is:
G
4×1(q) =
4
X
1
m
iJ
vTig(i = 1, ..., 4) (3.34)
3.2 Simulation results