Franka Emika Pose Format¶
Franka Emika robots use a transformation matrix to define a pose. A transformation matrix combines a rotation matrix and a translation vector .
The pose given by Franka Emika’s “Measure Pose” App consists of a translation in millimeters and a rotation in degrees. The rotation convention is -- (i.e. --) and is computed by
Conversion from transformation matrix to quaternion¶
The conversion from a rotation matrix (with ) to a quaternion can be done as follows:
The operator returns -1 if the argument is negative. Otherwise, 1 is returned. It is used to recover the sign for the square root. The function ensures that the argument of the square root function is not negative, which can happen in practice due to round-off errors.
Conversion from Rotation-XYZ to quaternion¶
The conversion from the angles in degrees to a quaternion can be done by first converting all angles to radians
and then calculating the quaternion with
Conversion from quaternion and translation to transformation¶
The conversion from a quaternion and a translation vector to a transformation matrix can be done as follows:
where and if is a unit quaternion.
Conversion from quaternion to Rotation-XYZ¶
The conversion from a quaternion with to the angles in degrees can be done as follows.
Pose representation in RaceCom messages and state machines¶
In RaceCom messages and in state machines a pose is usually defined as one-dimensional array of 16 float values, representing the transformation matrix in column-major order. The indices of the matrix entries below correspond to the array indices