Y_MA_InvertFrameMatrix
Frame inversion of a 4 x 4 position and orientation matrix that can be used for coordinate system transforms in robotics.
Parameters:
| * | Parameter | Data Type | Description | Default |
|---|---|---|---|---|
| VAR_IN_OUT | ||||
| V | Frame | Yt_MA_Matrix4x4 | 4 x 4 matrix | |
| V | InvFrame | Yt_MA_Matrix4x4 | 4 x 4 Matrix |
|
| VAR_INPUT | ||||
| B | Enable | BOOL | The function block will continue to execute every scan while Enable is TRUE and there are no errors. | FALSE |
| VAR_OUTPUT | ||||
| B | Valid | BOOL | The Valid output indicates that the function block is operating normally and the outputs of the function block are valid. | |
| B | Error | BOOL | The Error output is set to TRUE if an error has occurred during the operation of the function block. The output is cleared when the Execute or Enable input becomes FALSE. |
|
| B | ErrorID | UINT | The ErrorID output provides the identifier of the error when there is an active error in the function block execution. The output is cleared when the Execute or Enable input becomes FALSE. |
|
Notes:
Assumes that the frame matrix describes position and orientation in a Cartesian coordinate system.
Takes a 4x4 frame matrix and inverts it.
INPUT:
Frame [Yt_MA_Matrix4x4] -- 16 values are used to represent a 4x4 matrix. [a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 a41 a42 a43 a44]
OUTPIT:
InvFrame [Yt_MA_Matrix4x4] -- 16 values are used to represent a 4x4 matrix. [a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 a41 a42 a43 a44]
Inverse of a frame/transformation matrix is a special case with a simple calculation without doing full inverse routine.
T = [nx ox ax px ; ny oy ay py ; nz oz az pz ; 0 0 0 1]
T^-1 = [nx ny nz -dot(p,n); ox oy oz -dot(p,o); ax ay az -dot(p,a) ; 0 0 0 1 ]
Need to check if the column vectors in the rotation vector of the frame matrix are unit vectors.
Need to check if the column vectors in the rotation vector of the frame matrix are orthogonal.
Need to check if the last row = (0, 0 , 0, 1)