wikillm

Concept · 2 papers · updated 2026-10-25

Product of exponentials

Product of exponentials (PoE) writes a body's pose on a serial or tree chain as matrix exponentials of joint screws times a reference pose. Covers the path product with fixed screws, a body-frame form with reference transforms, and the loop-aware use for parallel robots, where each closed loop is cut to a tree. Both sources are author-reported and use a single robot example each.

kinematicsscrew-theoryserial-chainparallel-manipulators

Markdown4 min read

AI-compiled overview, updated 2026-10-25, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

Overview

A body's pose in a chain of joints can be written as a product of matrix exponentials, one per joint on the path from the body to ground, multiplied by a fixed reference pose. Each factor is built from one joint's screw and its current value 2412.13638 §3.1. Body twists follow from the same path: the joint screws on the path are stacked into a matrix, and the body twist is that matrix times the joint rates 2412.13681 §3.2.

Both sources apply this to a tree, not a single chain. A closed loop is broken by removing one joint, and the loop's constraints are kept aside and solved separately, so the tree stays a PoE chain [arxiv:2412.13638 §3.3, §3.4] 2412.13681 §3.3. This is how the form is used for parallel robots whose limbs contain loops.

Variants

Path product with fixed screws

Each body's pose is the product of exponentials of the joints on its path, with the screws taken at zero configuration and a fixed reference matrix for the body. The factors are ordered from the joint nearest ground outward 2412.13681 §3.2. The same paper uses this form for every limb of a Delta-type robot 2412.13681 §9.1. Card: Modular screw-theory model for complex-limb robots.

Body-frame form with reference transforms

The paper writes the same pose with a reference transform between each pair of consecutive joints, instead of one reference per body. It states that this is equivalent to the path product 2412.13638 §3.1, eq. 3. The platform pose uses the same pattern, followed by a platform reference shared by all limbs 2412.13638 eq. 4. Card: Constraint-embedding dynamics for hybrid-limb parallel robots.

Loop-aware product for hybrid limbs

For a limb with closed loops, one joint per loop is removed. The remaining tree is a PoE chain, and each loop's constraints split the joint variables into dependent and independent parts. A matrix H maps independent rates to all joint rates, so the limb becomes a serial chain in its independent coordinates 2412.13638 §3.4, eq. 17, eq. 18 [arxiv:2412.13681 §3.3.2]. The loops themselves are solved numerically, either in a nested scheme 2412.13638 alg. 1, alg. 2 or in one combined step 2412.13638 alg. 3. Both papers need each loop's dependent-variable Jacobian to be square and invertible 2412.13638 §3.4 [arxiv:2412.13681 §3.3.2].

When to use which

The two sources give no comparison with other parametrisations, so the table only covers the situations they address.

SituationUseWhy
Chain or limb with no closed loopPath product with fixed screwsThe tree is the whole chain, so no loop step is needed 2412.13681 §3.2
Hybrid limb (loops in series) with regular loop constraintsLoop-aware product with a numerical loop solveBoth papers give the derivation for this case 2412.13638 §3.3 2412.13681 §2
Loops well conditioned and inverse kinematics needed quicklyCombined step (alg. 3) instead of nested solveReported at about 3 iterations per step on the one example, but only justified for regular loop constraints 2412.13638 §6.4.1
Geometric inverse kinematics without a closed formJacobian step Δθ = H F Δx, repeatedThe simple iteration is given without a stopping rule or maximum count 2412.13681 §4.4
Constraints redundant within one loopNot covered as a recipeThe claim is made, but no rule for choosing constraints is given 2412.13638 §7 2412.13638 §3.3
Many structurally identical limbsOne representative limb in construction framesThe model is reused per limb, and only frames change 2412.13681 §7

Implementation sketch

Path product for one body, with a comment above each step. Joint values are read in path order, from the body back toward ground:

Pseudocode
# Pose of body k: product of exponentials along its path  [arxiv:2412.13681 §3.2]
# Input:  path (joint indices, body k first, nearest-ground joint last)
#         theta[i] (joint value), Y[i] (screw at zero configuration)
#         A_k (fixed reference matrix of body k)
# Output: C_k (homogeneous transform of body k)

def body_pose(path, theta, Y, A_k):
    # Start from the reference matrix of the body  [arxiv:2412.13681 §3.2]
    C = A_k
    # Prepend one joint factor per joint on the path  [arxiv:2412.13681 §3.2]
    for i in path:
        C = expm(theta[i] * Y[i]) @ C    # expm: matrix exponential
    return C

Joint rates from independent rates, for one loop. The dependent block must be square and invertible 2412.13638 §3.4:

Pseudocode
# Joint rates of one loop from its independent rates  [arxiv:2412.13638 eq. 18]
# G_y: Jacobian of the dependent joints (square, invertible)
# G_q: Jacobian of the independent joints

def loop_rate_map(G_y, G_q, dim_q):
    # Dependent rates: -G_y^-1 G_q applied to the independent rates
    # [arxiv:2412.13638 eq. 18]
    H_top = -solve(G_y, G_q)
    # Stack the dependent block above the identity on the independent rates
    # [arxiv:2412.13638 eq. 18]
    return stack(H_top, identity(dim_q))

Notes that apply to both sketches:

  • Joint angles describe the body that follows a joint relative to its predecessor, in the direction of the edge. Sign conventions depend on the tree orientation 2412.13681 §3.2.
  • The choice of independent coordinates is not unique and sets the conditioning of G_y and H 2412.13638 §3.4.

Contradictions

None on the product-of-exponentials form itself: both sources state the same path product. Only one of them states that the body-frame form is equivalent 2412.13638 §3.1, eq. 3. The numbers the two sources report come from different robots and setups and are not comparable 2412.13638 §6.4 2412.13681 tab. 1.

Papers

Source and license

Compiled from the papers listed on this page, all published under CC BY, CC BY-SA or CC0, with citations. See each paper's page for its authors and license.