Product of exponentials formula: Difference between revisions
No edit summary |
No edit summary |
||
(16 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
The product of exponentials (POE) method is a [[Robotics conventions|robotics convention]] for mapping the links of a spatial [[kinematic chain]]. It is an alternative to [[ |
The '''product of exponentials (POE)''' method is a [[Robotics conventions|robotics convention]] for mapping the links of a spatial [[kinematic chain]]. It is an alternative to [[Denavit–Hartenberg parameter|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.<ref>{{cite book|last1=Lynch|first1=Kevin|last2=Park|first2=Frank|title=Modern Robotics|date=2017|publisher=Cambridge University Press|isbn=9781107156302|edition=1st}}</ref> |
||
The POE method was introduced by [[ |
The POE method was introduced by [[Roger W. Brockett]] in 1984.<ref>{{cite journal|last1=Brockett|first1=Roger|title=Robotic manipulators and the product of exponentials formula|journal=International Symposium on the Mathematical Theory of Networks and Systems|date=1983}}</ref> |
||
==Method== |
==Method== |
||
The following method is used to determine the product of exponentials for a kinematic chain, with the goal of parameterizing an [[Transformation matrix|affine transformation matrix]] between the base and tool frames in terms of the joint angles <math display="inline">\theta_1...\theta_N.</math> |
The following method is used to determine the product of exponentials for a kinematic chain, with the goal of parameterizing an [[Transformation matrix|affine transformation matrix]] between the base and tool frames in terms of the joint angles <math display="inline">\theta_1...\theta_N.</math> |
||
===Define " |
===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 <math display="inline">g_{st}(0)</math> 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. |
The first step is to select a "zero configuration" where all the joint angles are defined as being zero. The 4x4 matrix <math display="inline">g_{st}(0)</math> 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. |
||
Line 17: | Line 18: | ||
===Calculate matrix exponential for each joint=== |
===Calculate matrix exponential for each joint=== |
||
The following steps should be followed for each of N joints to produce an affine transform for each. |
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==== |
====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. |
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. |
||
Line 27: | Line 29: | ||
For a prismatic joint,<math display="block">\xi_i=\left(\begin{array}{c} v_i \\ 0 \\ \end{array}\right) .</math> |
For a prismatic joint,<math display="block">\xi_i=\left(\begin{array}{c} v_i \\ 0 \\ \end{array}\right) .</math> |
||
The resulting twist has two 1x3 vector components: Linear motion along an axis ( |
The resulting twist has two 1x3 vector components: Linear motion along an axis (<math>v</math>) and rotational motion along the same axis (''ω'').<math display="block">\xi= \left(\begin{array}{c} v \\ \omega \\ \end{array}\right).</math> |
||
====Calculate rotation matrix==== |
====Calculate rotation matrix==== |
||
The |
The 3x1 vector ''ω'' is rewritten in [[cross product]] matrix notation: <math display="block">\hat{\omega} = |
||
\left[ \begin{array}{ccc} |
\left[ \begin{array}{ccc} |
||
0 & -\omega_3 & \omega_2 \\ |
0 & -\omega_3 & \omega_2 \\ |
||
Line 36: | Line 38: | ||
-\omega_2 & \omega_1 & 0 \\ |
-\omega_2 & \omega_1 & 0 \\ |
||
\end{array} \right]. |
\end{array} \right]. |
||
</math> |
</math> |
||
Per [[Rodrigues' rotation formula]], the rotation matrix is calculated from the rotational component:<math display="block">e^{\hat{\omega} \theta} = I + \hat{\omega}\sin{\theta} + \hat{\omega}^2(1-\cos{\theta}).</math> |
Per [[Rodrigues' rotation formula]], the rotation matrix is calculated from the rotational component:<math display="block">e^{\hat{\omega} \theta} = I + \hat{\omega}\sin{\theta} + \hat{\omega}^2(1-\cos{\theta}).</math> |
||
====Calculate translation==== |
====Calculate translation==== |
||
The |
The 3x1 translation vector is calculated from the components of the twist.<math display="block"> |
||
t = (I-e^{\hat{\omega} \theta})(\omega \times v) + \omega \omega^T v \theta |
|||
</math>where ''I'' is the 3x3 [[identity matrix]]. |
</math>where ''I'' is the 3x3 [[identity matrix]]. |
||
<ref name=Murray1994>{{cite book|last1=Sastry|first1=Richard M. Murray |
<ref name=Murray1994>{{cite book|last1=Sastry|first1=Richard M. Murray; Zexiang Li; S. Shankar|title=A mathematical introduction to robotic manipulation|date=1994|publisher=CRC Press|location=Boca Raton, Fla.|isbn=9780849379819|edition=1. [Dr.]|url=http://www.cds.caltech.edu/~murray/books/MLS/pdf/mls94-complete.pdf}}</ref> |
||
====Compose matrix exponential==== |
====Compose matrix exponential==== |
||
For each joint ''i'', the matrix exponential <math display="inline">e^{\hat{\xi}_{i} \theta _{i}}</math> for a given joint angle <math display="inline">\theta</math> is |
For each joint ''i'', the matrix exponential <math display="inline">e^{\hat{\xi}_{i} \theta _{i}}</math> for a given joint angle <math display="inline">\theta</math> is composed from the rotation matrix and translation vector, combined into an augmented 4x4 matrix:<math display="block">e^{\hat{\xi}_{i} \theta _{i}} = |
||
\left[ \begin{array}{cc} |
\left[ \begin{array}{cc} |
||
e^{\hat{\omega} \theta} & |
e^{\hat{\omega} \theta} & t \\ |
||
0 & 1 \\ |
0 & 1 \\ |
||
\end{array} \right]</math> |
\end{array} \right]</math> |
||
===Compose |
===Compose structure equation=== |
||
The matrix exponentials are multiplied to produce a |
The matrix exponentials are multiplied to produce a 4 × 4 affine transform <math display="inline">g_d(\theta_i,\ldots,\theta_n)</math> from the base frame to the tool frame in a given configuration.<math display="block">g_d=e^{\hat{\xi}_1\theta_1}\cdots e^{\hat{\xi}_n\theta_n}g_{st}(0).</math> |
||
==Application to kinematics== |
==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.<ref name=Malik2021>{{cite journal|last1=Malik|first1=Aryslan|last2=Henderson|first2=Troy|last3=Prazenica|first3=Richard|title=Trajectory Generation for a Multibody Robotic System using the Product of Exponentials Formulation|journal=AIAA Scitech 2021 Forum|date=January 2021|pages=2016|doi=10.2514/6.2021-2016|isbn=978-1-62410-609-5 |s2cid=234251587 |url=https://arc.aiaa.org/doi/abs/10.2514/6.2021-2016}} |
|||
Forward kinematics may be computed directly from the POE chain for a given manipulator. Inverse kinematics for most common robot manipulators can be solved with the use of [[Paden-Kahan subproblems]]. |
|||
</ref> [[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]]).<ref name=Malik2021 /> |
|||
==Relationship to |
==Relationship to Denavit–Hartenberg parameters== |
||
===Advantages=== |
===Advantages=== |
||
The product of exponentials method uses only two [[frames of reference]]: the base frame ''S'' and the tool frame ''T''. Constructing the |
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.<ref name=Murray1994 /> 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=== |
===Conversion=== |
||
There is not a one-to-one mapping between twist coordinate mapping in both methods, but algorithmic mapping from POE to |
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.<ref>{{cite journal|last1=Wu|first1=Liao|last2=Crawford|first2=Ross|last3=Roberts|first3=Jonathan|title=An Analytic Approach to Converting POE Parameters Into D–H Parameters for Serial-Link Robots|journal=IEEE Robotics and Automation Letters|date=October 2017|volume=2|issue=4|pages=2174–2179|doi=10.1109/LRA.2017.2723470|s2cid=13335943 |url=https://eprints.qut.edu.au/109080/1/POE2DH.pdf}}</ref> |
||
==Application to |
==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. |
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. |
||
Line 72: | Line 76: | ||
{{Robo-stub}} |
{{Robo-stub}} |
||
[[Category:Robotics engineering]] |
Latest revision as of 14:45, 21 November 2024
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.[1]
The POE method was introduced by Roger W. Brockett in 1984.[2]
Method
[edit]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
Define "zero configuration"
[edit]The first step is to select a "zero configuration" where all the joint angles are defined as being zero. The 4x4 matrix 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.
Calculate matrix exponential for each joint
[edit]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
[edit]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
[edit]A 1x6 twist vector is composed to describe the movement of each joint. For a revolute joint,
For a prismatic joint,
The resulting twist has two 1x3 vector components: Linear motion along an axis () and rotational motion along the same axis (ω).
Calculate rotation matrix
[edit]The 3x1 vector ω is rewritten in cross product matrix notation:
Per Rodrigues' rotation formula, the rotation matrix is calculated from the rotational component:
Calculate translation
[edit]The 3x1 translation vector is calculated from the components of the twist.where I is the 3x3 identity matrix. [3]
Compose matrix exponential
[edit]For each joint i, the matrix exponential for a given joint angle is composed from the rotation matrix and translation vector, combined into an augmented 4x4 matrix:
Compose structure equation
[edit]The matrix exponentials are multiplied to produce a 4 × 4 affine transform from the base frame to the tool frame in a given configuration.
Application to kinematics
[edit]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.[4] 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).[4]
Relationship to Denavit–Hartenberg parameters
[edit]Advantages
[edit]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.[3] 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
[edit]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.[5]
Application to parallel robots
[edit]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.
References
[edit]- ^ Lynch, Kevin; Park, Frank (2017). Modern Robotics (1st ed.). Cambridge University Press. ISBN 9781107156302.
- ^ Brockett, Roger (1983). "Robotic manipulators and the product of exponentials formula". International Symposium on the Mathematical Theory of Networks and Systems.
- ^ a b Sastry, Richard M. Murray; Zexiang Li; S. Shankar (1994). A mathematical introduction to robotic manipulation (PDF) (1. [Dr.] ed.). Boca Raton, Fla.: CRC Press. ISBN 9780849379819.
{{cite book}}
: CS1 maint: multiple names: authors list (link) - ^ a b Malik, Aryslan; Henderson, Troy; Prazenica, Richard (January 2021). "Trajectory Generation for a Multibody Robotic System using the Product of Exponentials Formulation". AIAA Scitech 2021 Forum: 2016. doi:10.2514/6.2021-2016. ISBN 978-1-62410-609-5. S2CID 234251587.
- ^ Wu, Liao; Crawford, Ross; Roberts, Jonathan (October 2017). "An Analytic Approach to Converting POE Parameters Into D–H Parameters for Serial-Link Robots" (PDF). IEEE Robotics and Automation Letters. 2 (4): 2174–2179. doi:10.1109/LRA.2017.2723470. S2CID 13335943.