**Robot Kinematics and Dynamics**

**What is Robot Kinematics?**

The study of the flow of multi-degree of freedom kinematic chains that make up the configuration of robotic systems is called Robot Kinematics. The robot’s relations are modelled as rigid bodies, and its joints are thought to provide pure rotation or translation, due to its reliance on geometry. In order to schedule and monitor movement and compute actuator forces and torques, Robot Kinematics studies the relationship between the dimensions and connectivity of kinematic chains and the direction, velocity, and acceleration of each connection in the robotic system.

It can be best understood and demonstrated using serial ** robotic manipulators** because of their wide and common usage in the manufacturing industry. Robotic Manipulators are less complex than mobile robots because they execute tasks in a controlled and predictable environment. Since they travel in three spatial dimensions and three rotational dimensions, they are more complex than mobile robots.

The two core problems of manipulators are addressed using a generalised planar model of a robotic arm. Forward kinematics is concerned with determining where the arm’s end effector will be after a series of joint rotations. Inverse kinematics explores which joint rotations can carry the end effector to a given position. Coordinate frames are used to execute kinematic computations. Each joint of the manipulator is connected to a plate, and motion is described as rotations and translations from one frame to another.

**What is Robot Dynamics?**

As part of Robot Dynamics, the relationship between mass and inertia properties, rotation, and the related forces and torques is investigated.

This article majorly focuses on Robot Kinematics and its various solutions, in regards with a two-link robotic manipulator.

**Configuration Space**

Robot Kinematics require to define the structure of a robot by a set of links, which are rigid bodies mostly, and joints linking them and constraining their relative movement, such as rotational or translational joints. The robot’s configuration constitutes the list of joint coordinates. This is true for all fixed-base mechanisms, serial or branched. Configuration is significant because it is a non-redundant and minimal representation of the robot’s layout.

The setup for floating/mobile bases is slightly more complicated, necessitating the use of virtual linkages to account for the movement of the base link. The situation is even more complicated for parallel mechanisms.

**Workspace**

In Robot Kinematics and Dynamics, workspace is a bit of an overused term; it also refers to the range of positions and orientations of a privileged link known as the end effector. End effectors are at the extreme periphery or the end tip of a serial chain of links, and they are often where tool points are found because these links have the greatest range of motion. In simpler words, the workspace refers to the 2D or 3D environment in which the robot exists.

**Kinematics**** of Open and Closed Chain**

Robot Kinematics defines a kinematic chain as a mathematical model for a mechanical system that consists of an assembly of rigid bodies linked by joints to provide restricted (or desired) motion. The stiff bodies, or links, are restricted by their relationships to other links, as in the common use of the term chain.

Kinematic pairs are mathematical models of the relationships, or joints, between two links. Lower pairs model hinged and sliding joints, which are important in robotics, and higher pairs model surface contact joints. In robot kinematics, A kinematic diagram is a representation of the kinematic chain in a mechanical system.

**Open Kinematic Chain**

An open kinematic chain in Robot Kinematics is one in which only one link (the unitary link) is linked to a single joint. The kinematic model for a typical robot manipulator is a simple open chain formed by links linked in series, similar to the ordinary chain.

**Closed Kinematic Chain**

A closed kinematic chain in Robot Kinematics is one in which each link is linked to two adjacent links through joints.

Compliance arising from flexure joints in precision mechanisms, link compliance in compliant mechanisms and micro-electro-mechanical systems, and cable compliance in cable robotic and tensegrity systems are all examples of contemporary applications of kinematic chains.

**Forward Kinematics vs Inverse Kinematics**

**Forward Kinematics**

As discussed earlier, Forward kinematics provides solution to the question-

Forward kinematics is simple to calculate since the change in direction caused by shifting each joint is calculated using simple trigonometry. If there are several links, the final location is determined by adding up the equations for each joint.Given a sequence of commands, what is the final position of the robotic arm?

The easiest way to understand Forward kinematics is by developing it on a 2D robotic arm that contains two links, two joints and one end-effector or a gripper. The first joint will rotate, but it is connected to a table or the floor by a foundation. While link *l _{1}* connects it to a second joint that can translate and rotate, a second link

*l*links this joint to the fixed end effector. The figure below gives a proper visualization of this system.

_{2}The links have length *l _{1}* and

*l*respectively with a 2D coordinated system assigned to the whole manipulator. The base or the first joint is coordinated at (0,0) while the gripper has coordinates (

_{2}*x,y*). The link

*l*connecting the first joint to the second is rotated by an angle

_{1}*α*, followed by the rotation of the second link connecting the second joint and the gripper by angle

*β*. Now we must determine the values of the gripper’s coordinates (

*x,y*) in terms of

*l*and

_{1}*l*, which are constants and

_{2}*α*and

*β*, which are variables.

Using trigonometric calculations, we project *x’* and *y’* on the x-axis and the y-axis respectively.

[latex]x^{‘} = l_{1}cos\alpha[/latex]

[latex]y^{‘} = l_{1}sin\alpha[/latex]

Now (*x’,y’*) becomes the origin of a new coordinate system on which (*x,y*) is projected to derive (*x”,y”*). This is now the position of the end effector with respect to the new coordinate system.

[latex]x^{”} = l_{2}cos(\alpha+\beta)[/latex]

[latex]y^{”} = l_{2}sin(\alpha+\beta)[/latex]

Hence the conclusive equations are:

[latex]x_{e} = x^{‘}+ x^{”} = l_{1}cos\alpha+l_{2}cos(\alpha+\beta)[/latex]

[latex]y_{e} = y^{‘}+ y^{”} = l_{1}sin\alpha+l_{2}sin(\alpha+\beta)[/latex]

**Forward Kinematics Example**

Let* l _{1}* =

*l*=1,

_{2}*α*= 60°

*β*=-30°,

Then

[latex]x_{e} = 1.cos 60^{\circ} + 1.cos (60^{\circ}-30^{\circ}) = \frac{1+\sqrt{3}}{2}[/latex]

And

[latex]y_{e} = 1.sin 60^{\circ} + 1.sin (60^{\circ}-30^{\circ}) = \frac{1+\sqrt{3}}{2}[/latex]

**Inverse Kinematics**

Inverse kinematics answers the question-

The pre-requisite to the problem of Inverse kinematics involves information about the workspace of the two-link robotic manipulator.Given a desired position of the robotic arm, what sequence of commands will bring it to that position?

Let us assume that *l _{1}>l_{2}* for an easy calculation. We consider that the workspace of the manipulator is circularly symmetric with the assumption that there is no limitation to the rotation of the links within any region of the workspace, i.e. -180

^{◦ }to +180

^{◦ }

**.**

Each point on the circumference of the outer circle like *a* is the arm’s furthest spot from the origin; it is achieved by lining up the two links such that the arm length is* l _{1}+l_{2}*. Points like

*b*on the inner circle’s circumference are the nearest to the root throughout the workspace. As the second link is bent back on the first connection, a length of

*l*is obtained. Another reachable position is

_{1}+l_{2}*c*; there are two positions (joint rotations) that allow the arm to be in this position.

Since we have assumed that *l _{1}>l_{2}*, there is no sequence of rotations that can position the end of the arm closer to the origin that

*l*and only positions lesser than or equal to a distance of

_{1}−l_{2}*l*from the origin are accessible. Hence the problem of Inverse kinematics can have zero, one or multiple solutions.

_{1}+l_{2}The law of cosines is used for finding the solution to Inverse kinematics problem:

[latex]a^{2}+b^{2}-2abcos\theta = c^{2}[/latex]

Which gives [latex]x^{2}+y^{2} = r^{2}[/latex]

Now we want the values of *α* and *β*, if there are any for the given point (*x,y*) that must lie at the centre of the end-effector. Hence the robotic arm is supposed to be brought to this point.

Hence the law of the cosines gives us:

[latex]l_{1}^2+l_{2}^2-2l_{1}l_{2}cos(180^{\circ}-\beta )=r^2[/latex]

From the above equation, we can get the value of as:

[latex]cos(180^{\circ}-\beta )=\frac{l_{1}^2+l_{2}^2-r^2}{2l_{1}l_{2}}[/latex]

So, we have-

[latex]\beta =180^{\circ}-\cos^{-1}(\frac{l_{1}^2+l_{2}^2-r^2}{2l_{1}l_{2}})[/latex]

Now we must find the values of *γ* and *α*. To find the value of *γ*, we have to use the law of cosines with *γ* as the central angle. This gives us-

[latex]cos\gamma =\frac{l_{1}^2+r^2-l_{2}^2}{2l_{1}r}[/latex]

[latex]\gamma =\cos^{-1}(\frac{l_{1}^2+r^2-l_{2}^2}{2l_{1}r})[/latex]

Now (x,y) forms a right-angled traingle which gives us

[latex]tan(\alpha -\gamma )=\frac{x}{y}[/latex]

[latex]\alpha =\gamma +\tan^{-1}(\frac{x}{y})[/latex]

[latex]\alpha =\cos^{-1}(\frac{l_{1}^2+r^2-l_{2}^2}{2l_{1}r})+\tan^{-1}(\frac{x}{y})[/latex]

**Inverse Kinematics Example**

Let *l _{1} = l_{2}*

_{ }=1 and (

*x*) =( (1+√3)/2, (1+√3)/2)

_{e},y_{e}Then

[latex]r^2= x_{e}^2+ y_{e}^2 = 2 + \sqrt{3}[/latex]

And

[latex]\beta =180^{\circ}-\cos^{-1}(\frac{-\sqrt{3}}{2})= \pm 30^{\circ}[/latex]

And

[latex]\gamma = \cos^{-1}(\frac{r}{2})= \pm 15^{\circ}[/latex]

Therefore,

[latex]\alpha = \tan^{-1}(\frac{y}{x})+\gamma = 60^{\circ} or 30^{\circ}[/latex]

**Coordinate Frames | End effector Frame**

Coordinate frames are used to represent the motion of a robotic manipulator. The arm is represented by three frames, one of which is associated with the origin joint that is a fixed base on the floor or on a table. We have the second frame associated with the joint between the two links and the third frame is concerned with the ** end effector** at the end of the second link. Hence coordinate frames are necessarily assigned to calculate robot kinematics, both forward and inverse.

**Rotation Matrix**

Rotation matrices can be used to mathematically model the rotational motion of a robotic arm for calculation of robot kinematics. The second joint has an offset by *l _{1} *linear distance from the end effector whereas the end effector has an offset by a

*l*distance from the second joint linearly.

_{2}**are a type of rotation matrices that can be used to treat translations mathematically. There are three interpretations of a rotation matrix:**

*Homogeneous transforms*- Vector Rotation
- Coordinate Frame Rotation
- Transforming a Vector from one Coordinate Frame to another

But robot kinematics for both rotation and translation of a coordinate frame. The links connect the joints on robotic manipulators, so the coordinate systems are linked not only by rotations but also by translations.

In the figure above, a point in the (red) coordinate frame *b* is denoted by *p* but in relation to the (blue) coordinate frame. Both coordinate frames* a *and *b* are rotated by the angle, and their origins are translated by *∆x* and *∆y*. So if the coordinates of the point *p* in the frame b is known to *be ^{ b}p=(^{b}x,^{b}y), *then let us find out its coordinates in frame a which are

*.*

^{a}p=(^{a}x,^{a}y)An indeterminate coordinate frame is defined as *a*_{1,} which has its origin as same as that of frame *b* and orientation as that of frame *a. *The coordinates of the point *p* in the coordinate frame *a _{1}* can be simply derived with a rotation of θ.

[latex]^{a^{1}}p=\begin{bmatrix} ^{a^{1}}x \\ ^{a^{1}}y \end{bmatrix}=\begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix}\begin{bmatrix} ^{b}x\\ ^{b}y \end{bmatrix}[/latex]

Now we add the offsets of the translation to find the coordinates of the point *p* in frame *a,*

[latex]^{a}p=\begin{bmatrix} ^{a}x \\ ^{a}y \end{bmatrix}=\begin{bmatrix} ^{a_{1}}x \\ ^{a_{1}}y \end{bmatrix}+\begin{bmatrix} \Delta x\\ \Delta y \end{bmatrix}[/latex]

**Differential Kinematics | Manipulator Jacobian**

**Forward Kinematics Jacobian**

From Forward kinematics of the two-link robotic manipulator above, we can deduce the position of the end effector as:

[latex]x_{e} = x^{‘}+ x^{”} = l_{1}cos\alpha+l_{2}cos(\alpha+\beta)[/latex]

[latex]y_{e} = y^{‘}+ y^{”} = l_{1}sin\alpha+l_{2}sin(\alpha+\beta)[/latex]

It is seen that change the end effector position can witness changes with variations in either *α* or *β*. Which means that the end effector position depends on the joint angle variables. We can take the partial derivatives of the above equation and establish a differential relationship between the end effector position and the joint angle position in the way as shown below:

[latex]dx_{e} = \frac{\partial x_{e}(\alpha + \beta )}{\partial \alpha} d\alpha + \frac{\partial x_{e}(\alpha + \beta )}{\partial \beta} d\beta[/latex]

[latex]dy_{e} = \frac{\partial y_{e}(\alpha + \beta )}{\partial \alpha} d\alpha + \frac{\partial y_{e}(\alpha + \beta )}{\partial \beta} d\beta[/latex]

In a more concise manner, the above above equations can be represented as:

[latex]dx = J.dq[/latex]

Where,

[latex]dx = \begin{bmatrix} dx_{e} \\ dy_{e} \end{bmatrix}[/latex]

And

[latex]dq = \begin{bmatrix} d\alpha \\ d\beta \end{bmatrix}[/latex]

[latex]J=\begin{bmatrix} – l_{1}sin\alpha – l_{2} sin(\alpha +\beta ) & – l_{2} sin(\alpha +\beta )\\ l_{1}cos\alpha – l2cos(\alpha +\beta ) & l_{2} cos(\alpha +\beta ) \end{bmatrix}[/latex]

The vector *q* is called the system state and the matrix *J* is called the Jacobian.

Or,

[latex]v_{e} = J.\dot{q}[/latex]

Thus, Jacobian is a matrix of partial differential equations that represents the velocity of the manipulator system and the way it affects the end effector’s position.

**Inverse Kinematics Jacobian**

For the Inverse kinematics Jacobian, the isolation of the joint velocity matrix can give us:

[latex]\dot{q} = J^{-1}.v_{e}[/latex]

It is very interesting to note that the Inverse kinematics solution can only have one solution mathematically if the Jacobian is non-singular. A Jacobian loses rank and becomes non-invertible in mathematical terms of robot kinematics.

**How is manipulability connected to Robot Kinematics ?**

**Manipulability**

It is critical to examine manipulability for derivation of robot kinematics, which is one of the most important parameters of a robotic manipulator’s functionality. This term has a significant effect on design because it encourages the definition of robot kinematics performance indicators that enable the robot’s size to be optimized.Manipulability is defined as the robot’s capacity to accept change in position and orientation of its end effector for a given joint configuration.

Manipulability can be modelled as an ellipsoid in n-dimensional Euclidian space, with the following equation defining its geometry:

The set of all velocities that every joint can satisfy is represented by this equation, and the Euclidean norm of vector is lower than the unit. This initial assumption aids in the establishment of a standard metric that can be used to compare a variety of manipulators and determine their kinematics.