Part 2: The Skeleton of Robotics (Kinematics)
Welcome to Part 2 of "Robotics Zero to Hero." In Part 1 we learned to describe a single rigid body with . 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 joints, FK is a product of transforms:
where 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 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:
- — joint angle (rotation about )
- — link offset (translation along )
- — link length (translation along )
- — link twist (rotation about )
giving
Approach 2 — Product of Exponentials (PoE)
Building on the Lie-group view from Part 1, screw theory writes each joint as a twist (an axis of rotation/translation in space) and FK becomes a clean product of matrix exponentials (Brockett's formula):
where 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
| Method | Params/joint | Strengths | Shortcomings |
|---|---|---|---|
| Denavit–Hartenberg | 4 | Compact; ubiquitous in textbooks/industry | Ambiguous frame assignment; ill-defined for parallel/intersecting axes; two incompatible variants (standard vs. modified) |
| Product of Exponentials | 6 (twist) | Single base frame; geometrically transparent; no singular conventions | More numbers per joint; requires Lie-group machinery |
| URDF/kinematic tree | 6 (pose) per link | Direct, 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 terms and we are done. A continuum arm has no discrete joints — it bends continuously. Its shape is a space curve parameterized by arc length , and FK becomes an integral rather than a product:
where is the local curvature/twist along the backbone. In practice we adopt one of two modeling regimes:
- Piecewise Constant Curvature (PCC). Approximate the arm as a small number of constant-curvature arcs, each described by curvature , bending plane angle , and length . 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.
- 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 model | DOF captured | Accuracy | Cost |
|---|---|---|---|
| Constant curvature (PCC) | bending only, per segment | Good for light, cable-driven arms | Cheap, closed-form per arc |
| Pseudo-rigid-body (many small links) | bending, discretized | Tunable via segment count | Grows with #segments |
| Cosserat rod (PDE) | bend, twist, shear, extend | Highest; handles loads/gravity | Solve 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 . Small is fast but inaccurate; large 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" 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