Forward kinematics: set joint values and propagate world poses down the
kinematic chain. Each joint's axis is interpreted in its parent's frame,
so a child's world pose is parentWorld ∘ jointTransform(joint, value).
Bodies not driven by a joint (chain roots) start at the origin. jointValues
overrides a joint's stored value, keyed by the child node name; omitted
joints use joint.value. Resolution is topological (reuses the Phase-0
ordering), so chains of any depth compose. Returns a world pose for every node.
Forward kinematics: set joint values and propagate world poses down the kinematic chain. Each joint's axis is interpreted in its parent's frame, so a child's world pose is
parentWorld ∘ jointTransform(joint, value).Bodies not driven by a joint (chain roots) start at the origin.
jointValuesoverrides a joint's stored value, keyed by the child node name; omitted joints usejoint.value. Resolution is topological (reuses the Phase-0 ordering), so chains of any depth compose. Returns a world pose for every node.