Robot Kinematics: Forward and Inverse
Published:

Forward Kinematics: From Joint Angles to Pose
A serial robot manipulator consists of rigid links connected by joints. Given a vector of joint angles \(\mathbf{q} = [q_1, \dots, q_n]^T\), forward kinematics (FK) computes the end-effector pose \(\mathbf{x} \in SE(3)\):
Each \({}^{i-1}T_i\) is a \(4 \times 4\) homogeneous transformation matrix parameterised by the Denavit-Hartenberg (DH) convention using four parameters per joint: link length \(a_i\), link twist \(\alpha_i\), link offset \(d_i\), and joint angle \(\theta_i\). The DH matrix is:
FK is straightforward to compute — it is a simple chain of matrix multiplications — and always has a unique solution. This makes it useful for simulation, collision checking, and rendering.
The Jacobian: Velocity Kinematics
The Jacobian \(J(\mathbf{q}) \in \mathbb{R}^{6 \times n}\) relates joint velocities to end-effector velocities (linear and angular):
The Jacobian has two block components: the linear velocity Jacobian \(J_v\) and the angular velocity Jacobian \(J_\omega\). Each column \(J_i\) corresponds to the contribution of joint \(i\) to the end-effector velocity. For a revolute joint:
\[J_i = \begin{pmatrix} \mathbf{z}_{i-1} \times (\mathbf{p}_n - \mathbf{p}_{i-1}) \\ \mathbf{z}_{i-1} \end{pmatrix}\]where \(\mathbf{z}_{i-1}\) is the joint axis and \(\mathbf{p}_n - \mathbf{p}_{i-1}\) is the vector from joint \(i\) to the end-effector. The Jacobian is critical for real-time control and for identifying singularities.
Inverse Kinematics: The Hard Reverse Problem
Inverse kinematics (IK) asks: given a desired end-effector pose \(\mathbf{x}^*\), find joint angles \(\mathbf{q}\) such that \(\text{FK}(\mathbf{q}) = \mathbf{x}^*\). This is far harder than FK for three reasons:
- Non-uniqueness: multiple joint configurations can achieve the same pose (e.g., elbow-up vs elbow-down for a 6-DOF arm).
- Singularities: some poses are unreachable or have infinitely many solutions.
- Non-linearity: the relationship between \(\mathbf{q}\) and \(\mathbf{x}\) is highly non-linear.
Closed-form IK exists for specific kinematic structures (e.g., robots with a spherical wrist) and is preferred for speed. Numerical IK iteratively updates \(\mathbf{q}\) using the Jacobian pseudoinverse:
This minimises \(\|\dot{\mathbf{q}}\|\) subject to achieving \(\dot{\mathbf{x}}\). Damped least squares (\(J^+ = J^T(JJ^T + \lambda^2 I)^{-1}\)) avoids numerical blow-up near singularities. Learning-based IK trains a neural network \(q = f_\theta(x)\) on large datasets of FK evaluations, providing fast inference at the cost of exactness.
Singularities and Redundancy
A singularity occurs when \(\det(J(\mathbf{q})) = 0\) (for square Jacobians) or when \(J\) loses rank. At singularities, the robot loses one or more degrees of freedom in Cartesian space — certain directions become instantaneously unreachable. Common singularities include wrist singularities (axes align) and shoulder singularities (arm fully extended or retracted).
Redundancy arises when the robot has more DOF than the task requires (e.g., a 7-DOF arm for a 6-DOF task). The extra DOF live in the null space of the Jacobian: motions \(\dot{\mathbf{q}} = (I - J^+J)\mathbf{z}\) for any \(\mathbf{z}\) do not affect the end-effector. Null-space motions can be used for secondary objectives: obstacle avoidance, joint limit avoidance, or manipulability maximisation.
References
- Craig, J. J. (2005). Introduction to Robotics: Mechanics and Control (3rd ed.). Pearson.
- Sciavicco, L., & Siciliano, B. (2001). Modelling and Control of Robot Manipulators (2nd ed.). Springer.
- Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
