Back to all posts
Tutorial

Part 2: The Skeleton of Robotics (Kinematics)

Ensemble AI
June 20, 2026
6 min read

Welcome to Part 2 of "Robotics Zero to Hero." In Part 1 we learned to describe a single rigid body with SE(3)SE(3). Now we chain those transforms together to form a robot's "skeleton." This is Kinematics — the geometry of motion without worrying about the forces that cause it.

The Math: Forward Kinematics

Forward Kinematics (FK) answers: given the joint values, where is the end-effector (the "hand" or "tip")? For a serial robot with nn joints, FK is a product of transforms:

Tbasetip(q)=T01(q1)T12(q2)Tn1n(qn)T^{tip}_{base}(\mathbf q) = T_0^1(q_1)\, T_1^2(q_2)\cdots T_{n-1}^n(q_n)

where qiq_i is an angle for a revolute joint or a displacement for a prismatic one. FK is always well-defined and unique — it is the easy direction. (Inverse kinematics, Part 3, is where the pain lives.)

There are two dominant ways to fill in those Ti1iT_{i-1}^i matrices, and they have genuinely different trade-offs.

Approach 1 — Denavit–Hartenberg (D-H) parameters

D-H describes each link with exactly four numbers, exploiting a clever convention that aligns successive joint axes:

  • θi\theta_i — joint angle (rotation about zi1z_{i-1})
  • did_i — link offset (translation along zi1z_{i-1})
  • aia_i — link length (translation along xix_i)
  • αi\alpha_i — link twist (rotation about xix_i)

giving

Ti1i=[cosθisinθicosαisinθisinαiaicosθisinθicosθicosαicosθisinαiaisinθi0sinαicosαidi0001]T_{i-1}^i = \begin{bmatrix} \cos\theta_i & -\sin\theta_i \cos\alpha_i & \sin\theta_i \sin\alpha_i & a_i \cos\theta_i \\ \sin\theta_i & \cos\theta_i \cos\alpha_i & -\cos\theta_i \sin\alpha_i & a_i \sin\theta_i \\ 0 & \sin\alpha_i & \cos\alpha_i & d_i \\ 0 & 0 & 0 & 1 \end{bmatrix}

Approach 2 — Product of Exponentials (PoE)

Building on the Lie-group view from Part 1, screw theory writes each joint as a twist SiR6\mathcal{S}_i \in \mathbb{R}^6 (an axis of rotation/translation in space) and FK becomes a clean product of matrix exponentials (Brockett's formula):

Tbasetip(q)=e[S1]q1e[S2]q2e[Sn]qn  MT^{tip}_{base}(\mathbf q) = e^{[\mathcal{S}_1]q_1}\, e^{[\mathcal{S}_2]q_2}\cdots e^{[\mathcal{S}_n]q_n}\; M

where MM is the tip pose at the home configuration. No per-link frame assignment is required — every twist is expressed in a single base frame — which is why modern libraries lean toward PoE.

Which parameterization? Competing conventions and their costs

MethodParams/jointStrengthsShortcomings
Denavit–Hartenberg4Compact; ubiquitous in textbooks/industryAmbiguous frame assignment; ill-defined for parallel/intersecting axes; two incompatible variants (standard vs. modified)
Product of Exponentials6 (twist)Single base frame; geometrically transparent; no singular conventionsMore numbers per joint; requires Lie-group machinery
URDF/kinematic tree6 (pose) per linkDirect, tool-friendly (ROS, simulators)Verbose; no analytical insight; easy to mis-specify inertials

The takeaway: D-H is the lingua franca, but its compactness hides edge cases (it literally cannot represent two parallel adjacent joint axes without an arbitrary choice). PoE pays a small storage cost to make those edge cases disappear.

Python Implementation: Building a D-H Chain

Loading Interactive Python Environment...

Continuum Kinematics: When the Chain Never Ends

For a rigid robot the product above has nn terms and we are done. A continuum arm has no discrete joints — it bends continuously. Its shape is a space curve r(s)\mathbf r(s) parameterized by arc length s[0,L]s \in [0, L], and FK becomes an integral rather than a product:

T(s)=T(0)exp ⁣(0s[ξ(σ)]dσ)T(s) = T(0)\,\exp\!\left(\int_0^{s} [\boldsymbol{\xi}(\sigma)]\, d\sigma\right)

where ξ(s)\boldsymbol\xi(s) is the local curvature/twist along the backbone. In practice we adopt one of two modeling regimes:

  1. Piecewise Constant Curvature (PCC). Approximate the arm as a small number of constant-curvature arcs, each described by curvature κ\kappa, bending plane angle ϕ\phi, and length \ell. This is the workhorse for cable-driven arms and reduces an infinite-dimensional problem to a handful of parameters — at the cost of accuracy when external loads break the constant-curvature assumption.
  2. Cosserat rod theory. Model the backbone as a continuum that can bend, twist, shear, and stretch, governed by partial differential equations. This is far more accurate (and is the basis of modern soft-robot dynamics) but requires numerically integrating a boundary-value problem.
Continuum modelDOF capturedAccuracyCost
Constant curvature (PCC)bending only, per segmentGood for light, cable-driven armsCheap, closed-form per arc
Pseudo-rigid-body (many small links)bending, discretizedTunable via segment countGrows with #segments
Cosserat rod (PDE)bend, twist, shear, extendHighest; handles loads/gravitySolve a BVP/PDE per step

This is the high-dim vs. low-dim tension made concrete: to model a tentacle as a serial chain you must pick a number of segments NN. Small NN is fast but inaccurate; large NN approaches the true continuum but inflates the configuration dimension toward infinity. There is no free lunch — only a dial between speed and fidelity.

Focus on the Octopus: Finding the Tip

Traditional industrial arms have rigid links and discrete joints, so D-H parameters are highly effective. Our metallic continuum octopus tentacle instead bends along its entire length.

To approximate its forward kinematics we treat the tentacle as a series of many short constant-curvature segments, each bending slightly. The "joint variables" q\mathbf q become the curvature parameters of each segment, which we map from the underlying actuation (cable pull lengths or pneumatic pressures) through a constant-curvature kinematic map. Chaining dozens of these small transforms — exactly like the D-H loop above, but with curvature-driven blocks — gives the 3D coordinate of the tip.

The subtlety unique to our hardware: the map from cable lengths to curvature is itself nonlinear and shifts as cables stretch and rub against the segment walls (we return to this "actuation-space vs. configuration-space" gap in Part 5). For now, the key idea is that FK for a continuum robot is the limit of FK for a rigid one — and that limit is where the degrees of freedom explode.

In Part 3 we flip the problem: given a desired tip position, what configuration achieves it? Welcome to Inverse Kinematics — and the curse of redundancy.

Further reading: Brockett (1984) on the product-of-exponentials formula; Webster & Jones (2010), "Design and Kinematic Modeling of Constant Curvature Continuum Robots: A Review"; "Rod models in continuum and soft robot control: a review" (arXiv:2407.05886).

Interested in the research?

We collaborate with researchers, engineers, and institutions pushing Physical AI into extreme environments. Get in touch to explore working with the lab.

Collaborate with us

Ensemble Assistant

Ready

Quick Actions: