Product of exponentials formula: Difference between revisions
added Category:Robotics; removed {{uncategorized}} using HotCat |
m Fixed some matrix size errors, changed the variable name for translation vector. |
||
Line 32: | Line 32: | ||
====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 43: | Line 43: | ||
====Calculate translation==== |
====Calculate translation==== |
||
The |
The 3x1 translation vector is calculated from the components of the twist.<math display="block"> |
||
t_i = (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 ; 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> |
<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> |
||
Line 51: | Line 51: | ||
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 calculated according to the formula:<math display="block">e^{\hat{\xi}_{i} \theta _{i}} = |
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 calculated according to the formula:<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_i \\ |
||
0 & 1 \\ |
0 & 1 \\ |
||
\end{array} \right]</math> |
\end{array} \right]</math> |
Revision as of 18:35, 19 July 2018
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
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"
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
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,
For a prismatic joint,
The resulting twist has two 1x3 vector components: Linear motion along an axis (v) and rotational motion along the same axis (ω).
Calculate rotation matrix
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
The 3x1 translation vector is calculated from the components of the twist.where I is the 3x3 identity matrix. [3]
Compose matrix exponential
For each joint i, the matrix exponential for a given joint angle is calculated according to the formula:
Compose structure equation
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
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.
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.[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
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.[4]
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.
References
- ^ 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) - ^ Wu, Liao; Crawford, Ross; Roberts, Jonathan (October 2017). "An Analytic Approach to Converting POE Parameters Into D–H Parameters for Serial-Link Robots". IEEE Robotics and Automation Letters. 2 (4): 2174–2179. doi:10.1109/LRA.2017.2723470.