Vous êtes sur la page 1sur 5

Inverse Kinematics Analysis KUKA KR Agilus Robot

Denis A. Tatarnikov1,a, Gennady P. Tsapko1,b

1
National Research Tomsk Polytechnic University (TPU), 30 Lenin Ave., Tomsk, 634050, Russia
a
den2276@yandex.ru, bgtsapko@tpu.ru

Keywords: inverse kinematics; KUKA KR Agilus; robotic manipulator; analysis; modeling.

Abstract. This paper is devoted to the inverse kinematics analysis of industrial KUKA robot of KR Agilus series. The
inverse kinematics for robot manipulator is analyzed systemically using geometrical method. Selection of possible closest
solution is discussed after the inverse kinematics is provided. There is no areas dealing with robots where the inverse
kinematics would not be required.

Introduction

Inverse kinematics is the opposite process to forward kinematics. There the robot orientation in
terms of joint angles are computed by the given Cartesian position of the robot end-effector (EE). If
the robot have tool then the inverse kinematics solving is consist of 2 steps: first find transformation
of robot flange relative to base, and then the inverse kinematics are used to solve for joint angles. By
the first step, it means to multiply the given transformation matrix to inverted matrix of tool position
relative to flange [1].
To solve inverse kinematics is a big challenge. There is no easy way like in forward kinematics
to find the solution to for robots like KUKA KR Agilus. The main problem of solving the kinematic
equations of a manipulator is a non-linear one. So for robots of series KUKA KR Agilus there is no
analytical solution to find joint angles from the given transformation matrix [2].
Method that was used to solve the inverse kinematics for KUKA KR Agilus is geometrical one.
In this method, the angles must be calculated in the following order: θ1, θ3, θ2, θ5, θ4, θ6.
One thing that should to be said that inverse kinematics solution might have multiple solutions
for the given Cartesian position of EE as in opposite to forward kinematics that have always only one
solution.

Figure 1. KUKA Agilus schematic view

Inverse kinematics calculations


Denavit-Harbenterg (D-H) notation
Any robot manipulator can be described kinematically by giving the values of four quantities
for each link of robot joint: link twist – α, joint angle – θ, link length – a, link offset – d. Two describe
the link itself, and two describe the link's connection to a neighboring link. The definition of
mechanisms by means of these quantities is a convention usually called the Denavit—Hartenberg
notation [3].
D-H parameters for KUKA KR Agilus is shown in Table 1. All the ai and di values can be
found from the robot specification [4].

Table 1. D-H parameters


Link θi αi ai di
1 θ1 90 a1 d1
2 θ2 0 a2 0
3 θ3-90 90 a3 0
4 θ4 -90 0 d4
5 θ5 90 0 0
6 θ6+180 0 0 d6

Analyzing θ1
Angle θ1 can be calculated from projection of frame K4 on the x0-y0 plane of frame K0 (see Fig.
1). At first, we have to compute the position of K4. Twist joints don’t change the position but the
orientation of its subsequent frame. In KUKA KR Agilus we have three twist joints: A1, A4, A6. As
shown in Fig. 4, the angular state of joint 6 (frame K6) influences just the orientation of the TCP, not
its position. So
𝑝⃗46 = 𝑑6 ∙ 𝑛⃗⃗
The unit vector 𝑛⃗⃗ points to the z-axis of K6 is retrieved as a third column from rotation
submatrix of transformation matrix 06𝑇. So
𝑝04 𝑥 𝑝𝑥 − 𝑑6 𝑛𝑥
𝑝
𝑝⃗04 = 𝑝⃗ − 𝑝⃗46 = 𝑝⃗ − 𝑑6 ∙ 𝑛⃗⃗ = [ 04 𝑦 ] = [𝑝𝑦 − 𝑑6 𝑛𝑦 ]
𝑝04 𝑧 𝑝𝑧 − 𝑑6 𝑛𝑧
Finally, θ1 will be calculated as following
𝜃1 = 𝐴𝑡𝑎𝑛2 (𝑝04 𝑦 , 𝑝04 𝑥 ) + 𝜋𝑛
where 𝑛 = −1, 0, 1.
Analyzing θ3
Via the knowledge of 𝑝⃗14 we get angle 𝛾 which in turns leads to joint angle 𝜃3 . As was
mentioned above, the angular state of joint A4 influences the orientation of frame K4, not its position.
Hence vector 𝑝⃗14 can be calculated. We get the position of 𝑝⃗01 from the translation part of 01𝑇:
𝑝𝑥 − 𝑑6 𝑛𝑥 𝑎1 cos 𝜃1
𝑝⃗14 = 𝑝⃗04 − 𝑝⃗01 = [𝑝𝑦 − 𝑑6 𝑛𝑦 ] − [ 𝑎1 sin 𝜃1 ]
𝑝𝑧 − 𝑑6 𝑛𝑧 𝑑1
Consider the triangle K2K3K4, sum of all angles in a triangle is equal to 180°. Adjacent angle
to 𝜑 is equal to 180° − 𝜑. Therefore
𝑎) 𝛾 = 180° − 𝜔 − (180° − 𝜑) = 𝜑 − 𝜔
𝑏) 𝛾 = 𝜑 + 𝜔
We compute angle 𝜑 though the law of cosine:
𝑎2 2 + 𝑙4 2 − |𝑝⃗14 |2
𝜑 = 𝐴𝑐𝑜𝑠( )
2𝑎2 𝑙4
Angle 𝜔 we get though the right triangle:
𝜔 = 𝐴𝑡𝑎𝑛2(𝑎3 , 𝑑4 )
Finally knowledge of 𝛾 offers 2 possible solution to 𝜃3 :
1) 𝜃3 = 𝑛(180° − (𝜑 − 𝜔))
2) 𝜃3 = 𝑛(180° − (𝜑 + 𝜔))
where 𝑛 = −1, 1.
Analyzing θ2
As shown in Fig. 2, angle 𝜃2 can be computed via β1 and β2 which in turn we get though the
vector 𝑝⃗14.

Figure 2. Calculation of θ2
(1)
For an easy calculation we will look to 𝑝⃗14 – vector 𝑝⃗14 in terms of K1. We transform 𝑝⃗14 from
K0 to K1 using inverse of the submatrix 01𝑹 of 01𝑇.
(1)
𝑝⃗14 = ( 01𝑹)−1 ∙ 𝑝⃗14
Because 01𝑹 is orthogonal we get its inverse though its transpose:
( 01𝑹)𝑇 ∙ 01𝑹 = 𝑰 → ( 01𝑹)−1 = ( 01𝑹)𝑇
We get β1 and β2 though Fig. 2:
(1) (1)
𝛽1 = 𝐴𝑡𝑎𝑛2(𝑝⃗14 𝑦 , 𝑝⃗14 𝑥 )
𝑎2 2 + |𝑝⃗14 |2 − 𝑙4 2
𝛽2 = 𝐴𝑐𝑜𝑠( )
2𝑎2 |𝑝⃗14 |
Finally, knowledge of β1 and β2 leads to following solutions:
1) 𝜃2 = 𝑛(𝛽1 + 𝛽2 )
2) 𝜃2 = 𝑛(𝛽1 − 𝛽2 )
where 𝑛 = −1, 1.
Analyzing θ5
Joint angle θ5 can be calculated though the dot product between the unit vectors 𝑛⃗⃗ and 𝑧⃗3 .
𝑧⃗3 ∙ 𝑛⃗⃗ = |𝑧⃗3 | ∙ |𝑛⃗⃗| ∙ cos 𝜃5
𝜃5 = 𝐴𝑐𝑜𝑠(𝑧⃗3 ∙ 𝑛⃗⃗)
The orientation of vector 𝑧⃗3 can be retrieved from the rotation sub matrix of the transformation
0 0
4𝑇 . Matrix 4𝑇 can be calculated via the results we already have for angles θ1, θ2 and θ3. And the
vector 𝑧⃗3 will be the third column from 04𝑹.
Finally, we get the following possible solutions for θ5:
1) 𝜃5 = 𝑧3 𝑥 𝑛𝑥 + 𝑧3 𝑦 𝑛𝑦 + 𝑧3 𝑧 𝑛𝑧
2) 𝜃5 = −(𝑧3 𝑥 𝑛𝑥 + 𝑧3 𝑦 𝑛𝑦 + 𝑧3 𝑧 𝑛𝑧 )

Analyzing θ4
The total rotation can be composed as follows:
0 0 3 3 0 −1 0
6𝑹 = 3𝑹 ∙ 6𝑹 → 6𝑹 = ( 3𝑹) ∙ 6𝑹
Because matrix R is orthogonal its inverse can also be calculated though its transpose:
( 03𝑹)𝑇 ∙ 03𝑹 = 𝑰 → ( 03𝑹)−1 = ( 03𝑹)𝑇
Hence we get:
𝑐4 𝑐5 𝑐6 − 𝑠4 𝑠6 −𝑠4 𝑐6 − 𝑐4 𝑐5 𝑠6 −𝑐4 𝑠5 𝑟11 𝑟12 𝑟13
3 0 𝑇 0 𝑠 𝑐 𝑐 + 𝑐 𝑠 𝑐 𝑐 − 𝑠 𝑐 𝑠 −𝑠
6𝑹 = ( 3𝑹) ∙ 6𝑹 = [ 4 5 6 4 6 4 6 4 5 6 4 5 ] = [ 21 𝑟22 𝑟23 ]
𝑠 𝑟
𝑠5 𝑐6 −𝑠5 𝑠6 𝑐5 𝑟31 𝑟32 𝑟33
where 𝑠𝑖 = sin 𝜃𝑖 , 𝑐𝑖 = cos 𝜃𝑖 .
From 36𝑹 we get following equations:
−𝑠4 𝑠5 = 𝑟23
{−𝑐 𝑠 = 𝑟
4 5 13
Dividing one equation to another we comes to:
𝑟23
tan 𝜃4 =
𝑟13
Finally, we get following solutions for θ4:
𝜃4 = 𝐴𝑡𝑎𝑛2(𝑟23 , 𝑟13 ) + 𝜋𝑛
where 𝑛 = −2, −1,0, 1,2.
Calculating θ6
The same way as for θ4 we get solution for θ6.
−𝑠5 𝑠6 = 𝑟32
{ 𝑠 𝑐 =𝑟
5 6 31
Dividing one equation to another we comes to:
−𝑟32
tan 𝜃6 =
𝑟31
Finally, we get following solutions for θ6:
𝜃6 = 𝐴𝑡𝑎𝑛2(−𝑟32 , 𝑟31 ) + 𝜋𝑛
where 𝑛 = −2, −1,0, 1,2.
Selection of solution
One big issue for inverse kinematics is existence of multiply solutions. Cartesian position of
EE can be reached with different set of joint angles. So the robot should be able to choose one.
The one very reasonable choice would be the closest one. We need to select from the list of
available solutions for inverse kinematics the one that requires the smallest twist of joint angles from
(0)
the current robot position 𝜃𝑖 . For this, we calculate deviation 𝛿𝑖 for every possible solution and
choose the solution with minimal deviation.
6
(0)
𝛿𝑖 = ∑ 𝜔𝑛 |𝜃𝑛,𝑖 − 𝜃𝑛,𝑖 |
𝑛=1
where 𝜔𝑛 = 6 − 𝑛 – weight for joint. It means that twist of first joint cost more than the next one.

Conclusion

In this paper, inverse kinematics analysis of KUKA KR Agilus was presented. There is no
analytical solution for it, so the geometrical method was used. Outlined information can be used in
any systems that are oriented to work with robots of KUKA Agilus robots. Knowledge about inverse
kinematics opens the possibility to provide end user with high-level complex interfaces and programs
for working with the robots and control them. Future work will be concentrated on discussing
singularity issues and its avoidance for such robot manipulators.
References

[1] Kay J. Introduction to Homogeneous Transformation and Robot Kinematics. – Rowan University
Computer Science Department, 2005. – 21 p.
[2] KUKA Arm tutorial. – KUKA Roboter GmbH, 2013 – 18 p.
[3] Craig J.J. Introduction to Robotics: Mechanisms and Controls, Addison-Wesley, Reading, MA,
1989.
[4] KR AGILUS sixx with W and C Variants. Specification – KUKA Roboter GmbH, 2014 – 129 p.

Vous aimerez peut-être aussi