# Product of exponentials formula

The product of exponentials (POE) method is a robotics convention for mapping the links of a spatial kinematic chain. It is an alternative to Denavit–Hartenberg parameterization. While the latter method uses the minimal number of parameters to represent joint motions, the former method has a number of advantages: uniform treatment of prismatic and revolute joints, definition of only two reference frames, and an easy geometric interpretation from the use of screw axes for each joint.
The POE method was introduced by Roger W. Brockett in 1984.

## Method

The following method is used to determine the product of exponentials for a kinematic chain, with the goal of parameterizing an affine transformation matrix between the base and tool frames in terms of the joint angles θ$_1$...θ$_N$.{\textstyle \theta _{1}...\theta _{N}.}

### Define "zero configuration"

The first step is to select a "zero configuration" where all the joint angles are defined as being zero. The 4x4 matrix g$_{st}$(0){\textstyle g_{st}(0)} describes the transformation from the base frame to the tool frame in this configuration. It is an affine transform consisting of the 3x3 rotation matrix R and the 1x3 translation vector p. The matrix is augmented to create a 4x4 square matrix.
$g_{st}(0)=\left[{\begin{array}{cc}R&p\\0&1\\\end{array}}\right]$

### Calculate matrix exponential for each joint

The following steps should be followed for each of N joints to produce an affine transform for each.

#### Define the origin and axis of action

For each joint of the kinematic chain, an origin point q and an axis of action are selected for the zero configuration, using the coordinate frame of the base. In the case of a prismatic joint, the axis of action v is the vector along which the joint extends; in the case of a revolute joint, the axis of action ω the vector normal to the rotation.

#### Find twist for each joint

A 1x6 twist vector is composed to describe the movement of each joint. For a revolute joint,$\xi _{i}=\left({\begin{array}{c}-\omega _{i}\times q_{i}\\\omega _{i}\\\end{array}}\right).$
For a prismatic joint,$\xi _{i}=\left({\begin{array}{c}v_{i}\\0\\\end{array}}\right).$
The resulting twist has two 1x3 vector components: Linear motion along an axis ($v$) and rotational motion along the same axis (ω).$\xi =\left({\begin{array}{c}v\\\omega \\\end{array}}\right).$

#### Calculate rotation matrix

The 3x1 vector ω is rewritten in cross product matrix notation: ${\hat {\omega }}=\left[{\begin{array}{ccc}0&-\omega _{3}&\omega _{2}\\\omega _{3}&0&-\omega _{1}\\-\omega _{2}&\omega _{1}&0\\\end{array}}\right].$
Per Rodrigues' rotation formula, the rotation matrix is calculated from the rotational component:$e^{{\hat {\omega }}\theta }=I+{\hat {\omega }}\sin {\theta }+{\hat {\omega }}^{2}(1-\cos {\theta }).$

#### Calculate translation

The 3x1 translation vector is calculated from the components of the twist.$t=(I-e^{{\hat {\omega }}\theta })(\omega \times v)+\omega \omega ^{T}v\theta$where I is the 3x3 identity matrix.

#### Compose matrix exponential

For each joint i, the matrix exponential e$^{ξ^iθi}${\textstyle e^{{\hat {\xi }}_{i}\theta _{i}}} for a given joint angle θ{\textstyle \theta } is composed from the rotation matrix and translation vector, combined into an augmented 4x4 matrix:$e^{{\hat {\xi }}_{i}\theta _{i}}=\left[{\begin{array}{cc}e^{{\hat {\omega }}\theta }&t\\0&1\\\end{array}}\right]$

### Compose structure equation

The matrix exponentials are multiplied to produce a 4 × 4 affine transform g$_d$(θ$_i$, …, θ$_n$){\textstyle g_{d}(\theta _{i}, \ldots , \theta _{n})} from the base frame to the tool frame in a given configuration.$g_{d}=e^{{\hat {\xi }}_{1}\theta _{1}}\cdots e^{{\hat {\xi }}_{n}\theta _{n}}g_{st}(0).$

## Application to kinematics

Forward kinematics may be computed directly from the POE chain for a given manipulator. This allows generating of complex trajectories of the end-effector in Cartesian space (Cartesian coordinate system) given trajectories in the joint space. Inverse kinematics for most common robot manipulators can be solved with the use of Paden–Kahan subproblems. The problem of inverse kinematics can also be approached with the use of nonlinear root-finding methods, such as the Newton-Raphson iterative method (Newton's method).

## Relationship to Denavit–Hartenberg parameters
### Advantages

The product of exponentials method uses only two frames of reference: the base frame S and the tool frame T. Constructing the Denavit–Hartenberg parameters for a robot requires the careful selection of tool frames in order to enable particular cancellations, such that the twists can be represented by four parameters instead of six. In the product of exponentials method, the joint twists can be constructed directly without considering adjacent joints in the chain. This makes the joint twists easier to construct, and easier to process by computer. In addition, revolute and prismatic joints are treated uniformly in the POE method, while they are treated separately when using the Denavit–Hartenberg parameters. Moreover, there are multiple conventions for assigning link frames when using the Denavit–Hartenberg parameters.

### Conversion

There is not a one-to-one mapping between twist coordinate mapping in both methods, but algorithmic mapping from POE to Denavit–Hartenberg has been demonstrated.

## Application to parallel robots

When analyzing parallel robots, the kinematic chain of each leg is analyzed individually and the tool frames are set equal to one another. This method is extensible to grasp analyses.