No jobs
Foundation 8 min 1 of 3

Forward kinematics as composition

Each joint contributes one transform. The tip pose is their product, and the product is the whole model.

What this repairs

Learning Denavit–Hartenberg parameters as a procedure, without seeing that they are one particular way of writing a product of poses.

Assumes

Attach a frame to every link. Link ii 's frame is related to link i1i-1 's by a transform that depends on the joint variable between them:

0Tn(q)=0T1(q1)1T2(q2)n1Tn(qn).^{0}T_{n}(\mathbf{q}) = {}^{0}T_{1}(q_1)\, {}^{1}T_{2}(q_2)\cdots{}^{n-1}T_{n}(q_n).

That is forward kinematics, complete. Indices cancel exactly as in the transform topic, and the only new content is that each factor now has a knob on it.

Denavit–Hartenberg parameters are a convention for choosing where those frames go so that each link needs only four numbers instead of six. It is a compression scheme, and a slightly awkward one — the frames it produces often sit in geometrically unintuitive places, and there are two incompatible variants in common use. Modern libraries increasingly skip it and specify each joint by an axis and an offset, which is more numbers and less to get wrong.

For the planar two-link arm the composition is small enough to write out:

x=l1cosq1+l2cos(q1+q2),y=l1sinq1+l2sin(q1+q2).x = l_1\cos q_1 + l_2\cos(q_1 + q_2), \qquad y = l_1\sin q_1 + l_2\sin(q_1 + q_2).

Two facts about the workspace follow directly, and generalise to every serial chain. The reachable set is an annulus with outer radius l1+l2l_1 + l_2 and inner radius l1l2\lvert l_1 - l_2 \rvert . And equal link lengths make the inner radius zero — the arm can reach its own base — which is why equal links are a common design choice and why the singularity at full retraction is unavoidable.

Check yourself

Why can a robot arm not smoothly track a straight-line tool path that crosses between an elbow-up and an elbow-down configuration?

Show answer

Because the two branches are separated by a singular configuration — the arm must pass through full extension (or full retraction) to swap. At that configuration the Jacobian drops rank and the joint velocities required to maintain the tool velocity grow without bound. Real controllers either plan a path that stays in one branch, or accept a stop-and-reconfigure at the crossing. The tool path being straight and smooth says nothing about the joint path being either.

Euler View - ML Experiment Monitor