Open access peer-reviewed chapter - ONLINE FIRST

# Kinematics of Serial Manipulators

By Ivan Virgala, Michal Kelemen and Erik Prada

Submitted: February 12th 2020Reviewed: June 8th 2020Published: July 11th 2020

DOI: 10.5772/intechopen.93138

## Abstract

This book chapter deals with kinematic modeling of serial robot manipulators (open-chain multibody systems) with focus on forward as well as inverse kinematic model. At first, the chapter describes basic important definitions in the area of manipulators kinematics. Subsequently, the rigid body motion is presented and basic mathematical apparatus is introduced. Based on rigid body conventions, the forward kinematic model is established including one of the most used approaches in robot kinematics, namely the Denavit-Hartenberg convention. The last section of the chapter analyzes inverse kinematic modeling including analytical, geometrical, and numerical solutions. The chapter offers several examples of serial manipulators with its mathematical solution.

### Keywords

• algorithm
• inverse kinematics
• Jacobian
• manipulator
• optimization
• redundant
• robot

## 1. Introduction and basic definitions

In the following sections, this chapter will deal with direct and inverse kinematics of open-chain multibody systems consisting of rigid bodies. The whole problematics is analyzed from the view of robotics. Each manipulator or mechanism investigated in this chapter will be of serial kinematic structure (open chain).

Open-chain multibody systems are mechanically constructed by connecting a set of bodies, called links, by means of various types of joints. In general, the joints can be passive or active. The joints, which are moved by actuators, are active joints.

In general, from the view of robotics, there are two tasks in kinematics:

• Forward kinematics—the forward kinematics problem represents relationship between individual joints of investigated robot and end-effector.

• Inverse kinematics—the problem of inverse kinematics is as follows: given a desired configuration of end-effector of robot, find the joint angles that achieve that configuration.

Before these terms are explained and demonstrated by some study cases, we have to mention the basic definitions, necessary for the further analyses.

Degrees of freedom (DOF): is the smallest number of coordinates needed to represent the robot configuration. Thus, the number of DOF equals to the dimension of configuration space.

Joint space: Let us define all the joint variables in a vector q=q1q2qnTQRN. The set Qwe call the so-called joint space and it contains all the possible values, which joint variables may acquire.

Workspace: Workspace is a subset of the Euclidean space E, in which the robot executes its tasks. From the view of robotics, workspace is the set of all the points that mechanism may reach in Euclidean space Eby end-effector. The workspace can be categorized as follows [2, 3]:

Maximal workspace—it is defined as locations that can be reached by end-effector at least with one orientation.

Inclusive-orientation workspace—it is defined as locations that can be reached by end-effector with at least one orientation among a range of orientations (maximal workspace is particular case).

Constant-orientation workspace—it is defined as location that can be reached by the end-effector with fixed orientation of joints.

Total-orientation workspace—it is defined as location that can be reached by the end-effector with any orientation.

Dexterity workspace—it is defined as location that can be reached by the end-effector with any orientation and without kinematic singularities.

Task space–space of positions and orientations of the end-effector frame. The workspace is a subset of task space that the end-effector frame can reach [1].

## 2. Rigid body motion

Rigid motion of an object is a motion that preserves distance between points [4]. Rigid body is a set of particles such that the distance between any two particles remains constant in time, regardless of any motions of the body or forces exerted on the body. If we consider pand qas two points on rigid body, while rigid body moves, pand qmust satisfy ptqt=p0q0=constant, see Figure 1.

Let us consider an object, described as a subset O of R3. Then a motion of object (rigid body) is represented by mapping ft:OR3. This mapping describes how the points of this object move as a function of time, relative to some fixed coordinate system.

Let the inertial reference frame be O=xryrzrand ir,jr,krrepresent unit vectors of the reference frame. The vector pcan be expressed with respect to inertial reference frame O=xryrzrby the following equation

p=pxrir+pyrjr+pzrkrE1

where p=pxpypzTR3. Coordinates of vector pcan be also expressed as its projections in directions of individual unit vectors as scalar product. In order to find the relation, the vector pneeds to be expressed in coordinates O1=x1y1z1

pxr=irp=irpx1i1+irpy1j1+irpz1k1pyr=jrp=jrpx1i1+jrpy1j1+jrpz1k1pzr=krp=krpx1i1+krpy1j1+krpz1k1E2

which can be rewritten in matrix form

pxrpyrpzr=iri1irj1irk1jri1jrj1jrk1kri1krj1krk1px1py1pz1E3

that is pb=Rr1p1. The meaning of this term is as follows. Coordinates of the vector pexpressed in O1=x1y1z1are computed to O=xryrzrso that they are left multiplied by transformation matrix Rr1.

As can be seen in Figure 2, coordinate system x0,y0,z0is rotated with respect to coordinate system xr,yr,zrby angle q around the axis zr. By consideration of previous equations; and by consideration of the facts that scalar product of two perpendicular vectors equals zero, scalar product of two parallel unit vectors is one, and scalar product of concurrent unit vectors is cosα; and by assuming that cosπ2±α=sinα, that is

iTi=1,jTj=1,kTk=1
iTj=0,jTk=0,kTi=0

one can obtain the following rotation matrix

Rx=1000cosαsinα0sinαcosαE4

where Rxis a rotation matrix for rotation around the x-axis by angle α. Subsequently, rotation matrices can be also be expressed for rotation around y-axis and z-axis

Ry=cosβ0sinβ010sinβ0cosβE5
Rz=cosγsinγ0sinγcosγ0001E6

Since rotation matrix R is an orthogonal matrix, for this reason

RTR=I3E7

where I3is a 3×3identity matrix. Considering the case when there is displacement of local coordinate system and at the same time also its rotation, it would be expressed as

xryrzr=Raxis,anglex1y1z1+pxpypzE8

Eq. (8) represents a system of three equations, which will be extended by fourth equation 1 = 0 + 0 + 0 + 1, which is

xryrzr1=pxRaxis,anglepypz0001x1y1z11E9

## 3. Forward kinematics

The forward kinematic model determines the position and orientation of the end-effector relating to base frame of the mechanism or to global coordinate system (GCS).

### 3.1 Open kinematic chain

We will focus on robots, which contain a set of links connected together by joints. The joints are usually revolute or prismatic or they can be more complex, such as socket joint or ball joint [5]. Within this chapter will be considered only revolute and prismatic joints, which have only a single degree-of-freedom motion. Let us consider a mechanism with Nlinks connected together by N1joints. The i-th joint connects link i1to link i. The number of the joints starts with 1 and ends with N1. The next consideration for the following mathematical model is that the first link is connected to the base fixed to inertial reference frame, while the last link is free and able to move.

The i-th joint is associated with joint variable qi, while qimay contain θiand difor revolute and prismatic joints, respectively. The local coordinate frame is attached to each link, so to i-th link is attached to Iiframe, Ii=Oixiyizi. When a mechanism performs any motion in its workspace, the coordinates of each point on i-th link are constant with respect to their coordinate frame Ii=Oixiyizi.

Let Aibe a homogeneous transformation matrix, which holds position and orientation of frame Ii=Oixiyiziwith respect to Ii1=Oi1xi1yi1zi1. It should be noticed that values of matrix Aiare not constant, but they change with changing configuration of the mechanism. In general, a homogeneous transformation matrix expressing the position and orientation of Ij=Ojxjyjzjwith respect to Ii=Oixiyiziis called a transformation matrix Tij. We can also define the following matrix

H=R0no0n01E10

where R0nis a 3×3rotation matrix with and o0nis a 3×1vector expressing position and orientation of end-effector (the last point of mechanism) with respect to inertial reference frame (base of mechanism). Eq. (10) can then be written as

H=T0n=i=1NAiE11

while Aiequals

Ai=Ri1ioi1i01E12

### 3.2 Denavit–Hartenberg convention

For the computation of forward kinematics for open-chain robot according to Eq. (11), a general approach was derived in order to determine the relative position and orientation of two consecutive links. This approach determines two frames attached to two links (rigid bodies) and computes the coordinate transformations between them [6].

For utilization of the Denavit-Hartenberg convention, some rules need to be observed. Let us consider Figure 3. Let axis i represent the axis connecting link i1and link i+1. In order to define link frame i, the procedure is as follows. First of all, the axis ziand axis zi1are chosen. Next, origin Oiis located at the intersection of axis ziwith the common normal to axes ziand zi1. By this step be get points Oiand Oi. The common normal of these two axes is a minimum distance between them. Subsequently, the axis xiis chosen along the common normal to axes zi1and ziin the direction from joint ito the joint i+1. In the last step, axis yiis chosen so as to complete a right-handed frame.

After these steps, the link frames have been established and now the position and orientation of frame iwith respect to frame i1can be determined by following DH parameters [7]:

• ai: distance between the points Oiand Oi

• di: distance between Oi1and Oialong the axis zi1

• αi: angle between the axes zi1and ziabout axis xi(positive direction—counter-clockwise rotation)

• ϑi: angle between axes xiand xi1(positive direction—counter-clockwise rotation)

It should be also noted that parameters aiand αiare always constant, because they depend on the geometric aspect of mechanism. Considering the two other parameters diand ϑi, depending on the joint type, one is constant and other one may change as follows:

• Revolute joint: ϑiis the joint variable and diis constant

• Prismatic joint: diis the joint variable and ϑiis constant

In general, six parameters are necessary in order to describe the position and orientation of a rigid body in the 3D space. Based on previously mentioned facts, we can say about DH convention that only four parameters are required by assuming that the axis xiintersects zi1, and that axis xiis perpendicular to zi1.

#### 3.2.1 Example of forward kinematics using the Denavit-Hartenberg convention

Let us consider some kind of industrial robot, namely SCARA (Selective Compliance Assembly Robot Arm) robot, which has RRP structure. Its kinematic structure is shown in Figure 4.

Considering the basic principles of the Denavit-Hartenberg convention introduced in the previous section, we are able to introduce D-H parameters, see Table 1.

1L10d1q1
2L200q2
30πd2 + q30
4000q4

### Table 1.

Denavit-Hartenberg parameters.

Based on DH parameters, which are obvious from Figure 4, particular homogeneous transformation matrices can be established.

A10=10000100001d10001cosq1sinq100sinq1cosq10000100001100L1010000100001E13
0A1=cosq1sinq10L1cosq1sinq1cosq10L1sinq1001d100011A2=cosq2sinq200sinq2cosq20000100001100L2010000100001E14
1A2=cosq2sinq20L2cosq2sinq2cosq20L2sinq2001000012A3=10000cosπsinπ00sinπcosπd2+q30001E15
A43=cosq4sinq400sinq4cosq40000100001E16

So, the final transformation matrix is

T40=0A21A22A33A4E17
T4=0pxRpypz0001E18

By vector o40=pxpypzTis defined position of end-effector of SCARA manipulator with respect to its base inertial reference frame.

## 4. Inverse kinematics

The solution exists only if the given end-effector position and orientation are in dexterous workspace of the solved mechanism. While the forward kinematic model is expressed as

x=fqE19

where fis a function defined between joint space Rnand workspace Rm, which maps the joint position variables qRnto the position/orientation of the end-effector of mechanism, the inverse kinematic model is based on

q=f1xE20

where qRnand xRm. In the case of the forward kinematic model, end-effector position and orientation are computed for various kinds of mechanisms like manipulators, in a unique manner, for example, by above-mentioned transformation matrices. The inverse kinematic problem is more complex and finding the solution could be in many cases very complicated. While forward kinematics has a closed-form solution, an inverse kinematics in most cases does not have a closed-form solution. A forward kinematic model has a unique solution, while an inverse kinematic model may have multiple solutions or infinite number of solutions, especially for kinematically redundant mechanisms. In order to obtain a closed-form solution, there are two main approaches, namely algebraic approach and geometric approach.

### 4.1 Closed-form solution of inverse kinematics

Let us consider a two-link mechanism moving in the 2D plane, see Figure 5.

Considering the forward kinematic model, while the angles of joints ϑ1and ϑ2are given, the aim is to find the position of end-effector xE=xyTRm. The forward kinematic model can be easily determined by the following equations

x=l1cosϑ1+l2cosϑ1+ϑ2E21
y=l1sinϑ1+l2sinϑ1+ϑ2E22

Now, the inverse kinematic problem is to find angles ϑ1and ϑ2, while the end-effector position xand y are given by vector xE=xyTRm.

c=x2+y2E23
α=atan2yxE24
ϑ2=±arccosx2+y2L12L222L1L2E25
β=arccosL12L22+c22L1cE26
ϑ1=αβE27

As can be seen in Figure 5, the presented configuration of the mechanism has two solutions in inverse kinematics. These two solutions are based on signum in Eqs. (25) and (27).

## 5. Differential kinematics

### 5.1 Analytical Jacobian

In order to describe the relation between joint angles and end-effector configuration, often the relation between the joint and end-effector velocities is used. Let us consider a set of coordinates xRm, their velocity is ẋ=dx/dtRm. Then, we can apply Eq. (19). Then, one obtains

ẋ=fqqdqdt=Jqq̇E28
Jq=x1q1x1qnxmq1xmqnE29

where JqRm×nis the analytical Jacobian matrix, which is very often used in kinematics and dynamics of robotic systems. Jacobian reflects differences between joint and configurations space of the investigated mechanism. In robotics, Jacobian is often used for several purposes such as for the definition of the relation between joint and configuration space, definition of the relation between forces/torques between spaces, the study of kinematic singularities, the definition of numerical solution for inverse kinematic problem, and the study of manipulability properties. We can look at Jacobian from a different perspective. Particular Jacobian columns represent the influence of i-th joint on the end-effector velocity.

The following example will demonstrate the derivation of analytical Jacobian for a three-link mechanism (Figure 6).

In order to utilize Eq. (29), we need to define position of point E=xEyETR2.

xE=L1cosq1+L2cosq1+q2+L3cosq1+q2+q3E30
yE=L1sinq1+L2sinq1+q2+L3sinq1+q2+q3E31

Assuming Eqs. (30) and (31), Jacobian according to Eq. (29) will be matrix JqR2×3

Jq=xEq1xEq2xEq3yEq1yEq2yEq3E32

where the elements of the Jacobian matrix are

xEq1=L1sinq1L2sinq1+q2L3sinq1+q2+q3xEq2=L2sinq1+q2L3sinq1+q2+q3xEq3=L3sinq1+q2+q3yEq1=L1cosq1+L2cosq1+q2+L3cosq1+q2+q3yEq2=L2cosq1+q2+L3cosq1+q2+q3yEq3=L3cosq1+q2+q3

### 5.2 Geometric Jacobian

Besides analytically expressing the Jacobian, we can express it by a geometric approach. To establish function fqin closed-form, a symbolic formalism is necessary, which could be difficult from the view of implementation. For this reason, a different way of Jacobian expression, the so-called geometric Jacobian, was developed. The geometric Jacobian can be obtained by consideration of rotational velocity vector ω. Let us consider link according to Figure 6. The Jacobian can be expressed as

J=JvJω=Jv1JvnJω1JωnE33

The first term expresses the effect of q̇1on linear velocity vand the second term expresses the effect on the rotational velocity ω. Thus,

v=Jv1q̇1++Jvnq̇nω=Jω1q̇1++Jωnq̇nE34

That is, the analytical Jacobian differs from the geometrical Jacobian for the rotational part. Considering the revolute joint, the i-th column of Jacobian can be computed as

JviJωi=z0i1×p0np0i1z0i1E35

For prismatic joint, the i-th column of Jacobian can be computed as

JviJωi=z0i10E36

where p0nis the end-effector position defined in transformation matrix T0ndefined in the previous section. Next, p0i1is the position of frame Ii1=Oi1xi1yi1zi1, defined in transformation matrix T0i1. Finally, z0i1is the third column of rotation matrix R0i1, while R0i1=R01q1R12q2Ri2i1qi1.

The following example will demonstrate the derivation of geometric Jacobian for a two-link mechanism (Figure 7).

Jq=z0×p2p0z1×p2p1z0z1E37

where p0=000, p1=L1cosq1L1sinq10, p2=L1cosq1+L2cosq1+q2L1sinq1+L2sinq1+q20and rotational axes are z0=z1=001. By solving Eq. (37), we get

Jq=L1sinq1L2sinq1+q2L2sinq1+q2L1cosq1+L2cosq1+q2L2cosq1+q200000011E38

Now, the Jacobian is a 6 × 2 matrix and its maximum rank is 2. That is, at most two components of angular/linear end-effector velocity can be independently assigned. In this case, when orientation is not required, only first two rows are considered.

### 5.3 Kinematically redundant manipulators

The next approach to inverse kinematic solution we want to focus on is numerical solutions. Nevertheless, many times, it is hard to find a closed-form solution for inverse kinematics; the basic kinematics of industrial robots have developed an approach to solve it. The problems arise with nonconventional kinematic structures, especially with kinematically redundant manipulators. A kinematically redundant manipulator has more number of DOFs than is absolutely necessary to perform the desired task. For example, conventional industrial robot has usually six DOFs, by which it is able to reach any point in its workspace. By adding an additional DOF, this robot becomes kinematically redundant due to this additional DOF.

A numerical solution is usually used when a closed-form solution for qdoes not exist or is difficult to find. In this section, we will focus on kinematically redundant mechanisms. Considering the dimension of joint space nand dimension of task space m, for kinematically redundant mechanisms n>m. The level of redundancy can be expressed by r=nm. Kinematic redundancy is used for many tasks such as kinematic singularities avoidance, obstacle avoidance, joint limits avoidance, increasing the manipulability in specified directions, minimizing the energy consumption, minimum of motion torques, optimizing execution time, etc. As can be seen, kinematic redundancy allows many optimization tasks to be solved. On the other hand, kinematic redundancy brings some disadvantages as well; for example, a greater structural complexity of construction caused by many of DOFs (mechanical, actuators, sensors), which have an influence on final cost of this kind of mechanism. Next field of potential disadvantages is the field of control, due to complicated algorithms for inverse kinematic computation or motion control. From this reason redundant manipulators could be difficult in real-time control.

There are many approaches within numerical solution of inverse kinematics, which are still in focus of research. Most approaches deal with Jacobian matrix in order to find a linear approximation to the inverse kinematic problem. Among the most used of them are damped least squares (DLSs), Jacobian transpose, and damped least squares with singular value decomposition (SVD) [8, 9].

Another kind of approach is the approach based on Newton methods [6]. The aim of these algorithms is to find the final configuration of joints with focus on minimization problem. For this reason, the final motion of robot is smooth. This family of methods includes methods such as Powell’s method [10] or Broyden, Fletcher, Goldfarb and Shanno (BFGS).

A very well-known and used method for inverse kinematics of kinematically redundant mechanisms is the so-called cyclic coordinate descent (CCD) algorithm [11]. The CCD method is a very simple and at the same time a very strong method. It is a heuristic iterative method with low computational cost per iteration. Next very know heuristic iterative method is FABRIK (Forward And Backward Reaching Inverse Kinematics) [12]. The FABRIK method minimizes the system error by adjusting each joint angle one at a time.

Most of inverse kinematics numerical methods could be divided into two classes: linearization algorithms and minimization algorithms. Concerning the linearization algorithms, the idea is piecewise linearization of nonlinear inverse kinematic problem, which is based on the Jacobian matrix. An example of this kind of method is the Jacobian transpose method. In minimization algorithms, the idea is to formulate some cost function, which will be minimized, for example cyclic coordinate descent algorithm. Besides the mentioned methods, there are many other such as pseudoinverse methods, such as the Levenberg–Marquardt damped least squares methods, quasi-Newton and conjugate gradient methods, neural network and artificial intelligence methods.

The basic technique is based on Eq. (39)

ẋ=Jqq̇E39

The above relation can be inverted to so-called Jacobian control method

q̇=JqẋE40

which leads to joint velocity vector qwith minimum norm. The term Jrepresents the Moore-Penrose pseudoinverse given by J=JTJJT1for kinematically redundant mechanisms where m<nJJ=Ior by J=JTJ1JTfor m >nJJ=I.

A very common method on which the solution is based is the Newton-Rhaphson method. The Newton-Rhaphson method is a root-finding algorithm that produces approximations of the roots of a real-valued function. The method starts with differentiable function fdefined for a real variable x, derivative of function f, and initial guess x0for a root of function f. If these assumptions are satisfied and initial guess is close, then

x1=x0fx0fx0E41

Talking about numerical motion optimization of kinematically redundant mechanisms, there are two approaches. The first approach deals with local methods, which are solved typically online, and the second one with global methods, which require quantity of computation. For this reason, the global methods are computed usually offline.

One of the commonly used local methods is the family of null-space methods. This method uses the extension of Eq. (40) and gives

q̇=Jqẋ+IJJq̇0E42

where q̇0Rnis an arbitrary joint space velocity vector, chosen according to desired behavior; so it is chosen for optimization purposes. Next, IRn×nis the identity matrix. The term IJJrepresents the orthogonal projection matrix in the null space of J, Jqẋis orthogonal to IJJq̇0. For this reason, q=0. Physically, this term corresponds to self-motion, where the combined joints motion generates no motion in the task space (no motion of end-effector). So, the term IJJis symmetric and idempotent (IJJ2=IJJ). Also, it ensures IJJ=IJJ. The inverse kinematic solution expressed by Eq. (42) is equivalent to solving a quadratic programming (QP) problem based on Hq̇=minq̇12q̇q̇0TWq̇q̇0subjected to ẋ=Jqq̇.

Now the question is, how the vector q̇0can be chosen. One of the basic ways to choose it is the so-called projected gradient method q̇0=qHq. Supposing that ẋ=0, that is, the mechanism performs only self-motion, it can be written q̇=IJJqH; so, IJJqH=0is a necessary condition of constrained optimality. Based on these facts, an objective function can be chosen for some optimization of motion:

• Manipulability—maximize the distance from kinematic singularities

Hq=detJqJTqE43

• Joint limit avoidance—minimize the distance from the middle of joints range

Hq=12i=1nqiqiqM,iqm,i2E44

where qiqm,iqM,iand qi=qM,iqm,i2.

• Obstacle avoidance—maximize the minimum distance to obstacle

Hq=minarobotbobstacleaqb2E45

where aqrepresents points on investigated mechanism and brepresents points on the obstacle.

Example: Let us consider a planar six-link robot connected by six revolute joints. All links have the same length L=100mm. The purpose of the simulation is path tracking (circle form) described by matrix Xpath=xdydRm×p, where pis the number of geometric points of the desired path, while xd=2.5L+Lcosφ, yd=Lsinφ, φ02πassuming the step of φincrease to be 0.2. That is, xd=x1xpRpand yd=y1ypRp. From the matrix Xpathwill be in each path point determined the desired point ep=xpypTRm. Since, there is consideration of planar task with focus on end-effector position, the task space is m=2. The expected solution assumes only primary solution without any secondary tasks. For inverse kinematic solution, damped least squares method, which avoids many of pseudoinverse method’s problems, will be used. This method is also known as the Levenberg–Marquardt method, which arises from cost function Jqx2+λ2q2where λRis a non-zero scalar constant. By minimizing this term, one obtains

q=JTJJT+λ2I1xE46

where IRm×mis the identity matrix. The simulation will work according to the following algorithm.

Algorithm: Inverse kinematic model for 6-link manipulator.

1: Set desired path for end-effector by matrix Xpathand parameters such as L, λ.

2: FOR step = 1 p.

3:    Set the desired position of end-effector from Xpathep=xpypTRm

4:    WHILExactualep

5:        Compute Jacobian

6:        Compute xactual=xactyactTRm

7:        Compute q=q+JTJJT+λ2I1x

8:        q=q

9:    END WHILE

10: END FOR

The results of the simulation can be seen in Figures 8 and 9. Figure 8 presents the motion of planar robot. The aim is to tracking of path with circle shape (green color) by end-effector of the robot. The robot has a fixed frame in point [0,0]. The initial position of all joints is q=000000T.

During the simulation, no restriction such as joint limit was considered. The simulation was done with a tolerance ±5mm. Figure 9 presents the variation of individual robot joints during the path tracking.

Example: Let us consider a planar 20-link robot connected with revolute joints. The links have the same length L=16.75mm. The aim is to move the end-effector from its initial position to the end position by tracking the desired path. We will consider two cases. The first one considers free robot environment, the second one considers obstacles in the robot environment. The second solution will also consider kinematic singularities avoidance task and joint limit avoidance task.

Now, let us consider the cost function dealing with all mentioned secondary tasks [10].

H=Jq̇ẋ2+Jcq̇xc2+JLq̇xL2+ρq̇2E47

After mathematical adjustment, we get the final formula for kinematic control

q̇=JTWJ+JcTWcJc+JLTWLJL+Ws1JTWẋE48

where W, Wc, WL, and Wsare in our case 20 × 20 weight matrices of primary task, obstacle avoidance task, joint limit avoidance task, and kinematic singularities avoidance task, respectively. The setting of weight matrices is subjective. For example, if obstacle avoidance task should have higher priority above primary task by 100 times, the matrix Wcwould consist of values 100 while Wconsist of values 1.

Let us consider individual secondary tasks. The joint limit avoidance task deals with the range of motion of individual manipulator links. How many joints will have their limit range is up to us. Of course, in real robots, usually all joints are limited in their motion. There are several ways on how to model the range of joint motion. In this case, an approach with changing of value of weight variable Wlibased on joint position will be used. If the joint is in admissible range, the value of the weight variable is set to be zero. When the joint reaches the boundary of its range motion, the value of the weight variable increases. When the joint reaches a value outside its admissible range, the value of the weight variable increases to its maximum. This approach can be expressed by Eq. (49)

Wli=Wwqi<qiminWw21+cosπqiqiminρiqiminqiqimin+ρi0qimin+ρi<qi<qimaxρiWw21+cosπqimaxqiρiqimaxρiqiqimaxWwqi>qimaxE49

The value of the weight variable has to be set for every joint of the manipulator that needs to be limited in the range of motion. Individual weight variables Wliwhere i0Nare parts of the final weight matrix of the joint limit avoidance task WlRn×n. The final weight matrix Wlis the diagonal matrix [14]:

Wl=Wl1Wl2Wl3WlnE50

The weight matrix Wlis used with the corresponding Jacobian matrix JLRn×n. The Jacobian matrix for the joint limit avoidance task is JL=e/q. If a particular joint does not consider the joint limit avoidance task, the value of JLis set to be zero; otherwise it is set to be one. The limit of all joints in motion of the manipulator investigated in this study is set to be ±100°. Different way of joint limit control is according to above mentioned Eq. (44).

During the obstacle avoidance task, the control system investigates the relation between manipulator links and obstacles in their environment. In general, this task can be solved from two views. At first, one group of obstacles can represent static obstacles or other robots in an investigated environment. The second group of obstacles can be represented by dynamic obstacles, which means that these obstacles change their position relating to global reference system in the time. Of course, the second group of obstacles is more difficult from the view of control in comparison with static obstacles. It is more difficult especially in the cases of requirements for real-time control [15].

The aim of obstacle avoidance is to prevent the collision between any part of the manipulator and potential obstacles, other robots, or collision with itself. Again, there are many methods on how to control robot motion at a safe distance from other objects, regardless of whether the obstacles have regular or irregular shape. For simplification, the irregular shapes are usually replaced by appropriate regular shape. This simplification can also significantly simplify the mathematical model and obtaining the numerical solution can be faster and the solution more stable. One of the methods on how to simplify irregular shapes is to replace all irregular shapes by a cylinder, with the obstacle being situated in the center of the cylinder, see Figure 10. The diameter of the cylinder determines the distance of influence of this obstacle.

At first, we set the coordinate of an obstacle in the task space as so. The projection of the line from the i-th joint of the manipulator link to the center of a cylinder (obstacle) on the i-th link is:

pi=eiTs0siE51

The coordinate of the link point with potential to get into collision is:

sci=si+pieiE52

The distance between the potential point of collision and the center of the cylinder is:

dci=scis0E53

Subsequently, the unit vector of the potential point of collision can be given by:

ui=sais0dciE54

Now, the Jacobian matrix for the obstacle avoidance task can be given. The i-th row of the Jacobian matrix can be expressed as

Jci=uiTJsciE55

where matrix Jsciis:

Jsci=sciqE56

The Jacobian matrix Jcconsists of submatrices Jci. The dimension of the Jacobian matrix is JcRc×c, where c represents the number of manipulator links that could collide with the obstacles.

For numerical simulation, we will use following algorithm: Inverse kinematic model for 20-link manipulator [14].

Algorithm: Inverse kinematic model for 20-link manipulator

1: CYCLE WHILE 1

2:   Determination of new required vector xdRmfrom the matrix of planned path PRr×2

3:   CYCLE WHILE 2

4:      Computation of Jacobian matrix J (damped least squares method)

5:   Determination of actual end-effector position in the task space xRmwith actual generalized variables qRn

6:      Computation of general equation

q̇=J1WJ+Jc1WcJc+Jl1WlJl+Ws1JTWẋ

7:      q=qprevious+q̇dt

8:      qprevious=q

9:      IF xd=xTHEN

END CYCLE WHILE 2

ELSE

CYCLE WHILE 2 continues

END IF

10:  END CYCLE WHILE 2

11: END CYCLE WHILE 1

In Figure 11 can be seen the simulation of motion of a 20-link manipulator, which moves in free environment without any obstacles. This case also does not consider any joint limit avoidance task. The aim is to move the end-effector of manipulator by predefined path (green color).

Figure 12 depicts a different situation. A 20-link manipulator moves according to predefined path between four obstacles. The solver also assumes joint limit avoidance task for all 20 joints. From this figure can be seen the difference in “self-motion” in joint space, while it does not affect the motion of end-effector in task space. The end-effector always tracks the same path (by neglecting end-effector orientation).

The second case is significantly difficult from the view of computational complexity in comparison with the case without any constraints in motion.

## 6. Conclusion

This chapter was focused on forward and inverse kinematics of open-chain mechanisms, namely manipulators with serial kinematic structures. We have introduced rigid motion and subsequently we have focused on forward kinematics. The chapter presents a kinematic model of SCARA by the well-known Denavit-Hartenberg convention. Within inverse kinematics was introduces several methods, including analytical, geometrical, and numerical. The last section dealt with modeling of kinematically redundant planar robots. At first, we introduced a six-link planar robot with focus on numerical solution using DLS. The last example presented a 20-link redundant manipulator moving between the obstacles. The solution includes, besides the primary solution, secondary tasks such as singularity avoidance, joint limit avoidance, and obstacle avoidance.

## Acknowledgments

The authors would like to thank to Slovak Grant Agency VEGA 1/0389/18 “Research on kinematically redundant mechanisms” and to KEGA 018TUKE-4/2018 “Implementation of new technologies and education methods in area of controlling systems for improvement of educational level and practical experiences of graduate students of Mechatronics study program” and also to KEGA 030TUKE-4/2020 “Transfer of knowledge from the field of industrial automation and robotics to the education process in the teaching program mechatronics.”

## How to cite and reference

### Cite this chapter Copy to clipboard

Ivan Virgala, Michal Kelemen and Erik Prada (July 11th 2020). Kinematics of Serial Manipulators [Online First], IntechOpen, DOI: 10.5772/intechopen.93138. Available from: