Robot kinematics and dynamics

The parts of a robot arm, forward and inverse kinematics, the Jacobian, and how dynamics links joint torques to motion.

Before a robot arm can do anything useful, we need to answer two questions: how does it move (kinematics) and what does it take to move it (dynamics). This post explains both with a simple two-joint arm that you can try in the simulation below.

The parts of a robot arm

Part What it does
Links The rigid parts that form the arm's body
Joints Connect the links: revolute joints rotate, prismatic joints slide
Actuators Motors that move the joints
Transmissions Gears, belts or pulleys that carry the motion from motor to joint
Sensors Encoders measure joint angles; force sensors measure contact
Controller Computes the motor commands from the sensor readings
End effector The gripper or tool at the tip
User interface Lets a person program, control or monitor the arm

Start from the task

There is no single best arm. The design follows from the job:

  • Reach: how far must the tip go?
  • Payload: how heavy is the object?
  • Speed and accuracy: how fast, and how precisely?
  • Budget and complexity: how many joints can we afford?

Example: an arm that cuts plastic sheets needs a flat workspace the size of the sheet, steady speed along the cut and only a light tool, so a simple SCARA-type arm may be better than a six-joint industrial robot.

Kinematics: motion without forces

Kinematics describes position, velocity and acceleration, without asking what forces cause them.

Forward kinematics: from joint angles to the tip

For a two-link arm in a plane, with link lengths \(l_1, l_2\) and joint angles \(\theta_1, \theta_2\):

$$ x = l_1 \cos\theta_1 + l_2 \cos(\theta_1 + \theta_2), \qquad y = l_1 \sin\theta_1 + l_2 \sin(\theta_1 + \theta_2) $$

Example. \(l_1 = 1.0\) m, \(l_2 = 0.8\) m, \(\theta_1 = 30^\circ\), \(\theta_2 = 45^\circ\) gives the tip at \(x = 1.073\) m, \(y = 1.273\) m.

Inverse kinematics: from the target to joint angles

Usually we know where the tip should go and need the joint angles. For the two-link arm there is a closed-form answer:

$$ \cos\theta_2 = \frac{x^2 + y^2 - l_1^2 - l_2^2}{2\,l_1 l_2}, \qquad \theta_1 = \operatorname{atan2}(y, x) - \operatorname{atan2}\!\big(l_2 \sin\theta_2,\; l_1 + l_2 \cos\theta_2\big) $$

Plugging in the tip from the example gives back \(\theta_2 = 45^\circ\) and \(\theta_1 = 30^\circ\). Note two things:

  • \(\cos\theta_2\) must lie between −1 and 1. If not, the target is out of reach.
  • \(\theta_2\) and \(-\theta_2\) both work: elbow up and elbow down are two valid solutions.
Inverse kinematics on a two-link arm. Drag the target and the joint angles are solved so the tip follows it. Near the edge of the workspace the manipulability falls towards zero: the arm is close to a singularity.

The Jacobian: velocities and singularities

The Jacobian \(\mathbf{J}\) links joint speeds to tip speed:

$$ \begin{bmatrix} \dot{x} \\ \dot{y} \end{bmatrix} = \mathbf{J}(\boldsymbol{\theta}) \begin{bmatrix} \dot{\theta}_1 \\ \dot{\theta}_2 \end{bmatrix}, \qquad \det\mathbf{J} = l_1 l_2 \sin\theta_2 $$

When \(\det\mathbf{J} = 0\), at \(\theta_2 = 0^\circ\) (arm stretched out) or \(180^\circ\) (folded back), the arm is at a singularity: no combination of joint speeds can move the tip in some direction. That is what the manipulability value in the simulation shows.

Dynamics: adding forces

Dynamics answers the engineering questions: how much torque does each joint need, which motor can provide it, and how much energy will the arm use?

A quick first estimate is the torque needed just to hold a load still against gravity. For a mass \(m\) at horizontal distance \(d\) from the joint:

$$ \tau = m\,g\,d $$

Example. A 2 kg load held 0.5 m from the shoulder needs \(\tau = 2 \times 9.81 \times 0.5 \approx 9.8\) N·m, plus the weight of the links themselves. Add a safety margin and the torque needed for acceleration, and you have a starting point for choosing the motor and gearbox.

The full model for an arm with joint angles \(\mathbf{q}\) is

$$ \underbrace{\mathbf{M}(\mathbf{q})\,\ddot{\mathbf{q}}}_{\text{to accelerate}} + \underbrace{\mathbf{C}(\mathbf{q},\dot{\mathbf{q}})\,\dot{\mathbf{q}}}_{\text{Coriolis and centrifugal}} + \underbrace{\mathbf{G}(\mathbf{q})}_{\text{to hold against gravity}} = \boldsymbol{\tau} $$

It is used to size the motors, to simulate the arm before building it and inside advanced controllers that cancel gravity and inertia so the arm moves smoothly.

In short

$$ \text{Task} \;\rightarrow\; \text{Kinematics (where and how fast)} \;\rightarrow\; \text{Dynamics (how much torque)} \;\rightarrow\; \text{Motors and control} $$

Kinematics gives the robot its skeleton, dynamics its muscles, and control its brain.

Watch the video

For a full explanation, see Robot kinematics and dynamics on YouTube.

Basheer Al-Tawil is a PhD researcher in Robotics and AI at Otto von Guericke University. Found a mistake or have a question? Write to me.

Browse by topic