Mitsubishi XYZ-ABC format¶
The pose format that is used by Mitsubishi robots is the same as that for KUKA robots (see KUKA XYZ-ABC format), except that \(A\) is a rotation around \(x\) axis and \(C\) is a rotation around \(z\) axis. Thus, the rotation is computed by \(r_z(C) r_y(B) r_x(A)\).
Conversion from Mitsubishi-ABC to quaternion¶
The conversion from the \(ABC\) angles in degrees to a quaternion \(q=(\begin{array}{cccc}x & y & z & w\end{array})^T\) can be done by first converting all angles to radians
\[\begin{split}A_r = A \frac{\pi}{180} \text{,} \\
B_r = B \frac{\pi}{180} \text{,} \\
C_r = C \frac{\pi}{180} \text{,} \\\end{split}\]
and then calculating the quaternion with
\[\begin{split}x = \cos{(C_r/2)}\cos{(B_r/2)}\sin{(A_r/2)} - \sin{(C_r/2)}\sin{(B_r/2)}\cos{(A_r/2)} \text{,} \\
y = \cos{(C_r/2)}\sin{(B_r/2)}\cos{(A_r/2)} + \sin{(C_r/2)}\cos{(B_r/2)}\sin{(A_r/2)} \text{,} \\
z = \sin{(C_r/2)}\cos{(B_r/2)}\cos{(A_r/2)} - \cos{(C_r/2)}\sin{(B_r/2)}\sin{(A_r/2)} \text{,} \\
w = \cos{(C_r/2)}\cos{(B_r/2)}\cos{(A_r/2)} + \sin{(C_r/2)}\sin{(B_r/2)}\sin{(A_r/2)} \text{.}\end{split}\]
Conversion from quaternion to Mitsubishi-ABC¶
The conversion from a quaternion \(q=(\begin{array}{cccc}x & y & z & w\end{array})^T\) with \(||q||=1\) to the \(ABC\) angles in degrees can be done as follows.
\[\begin{split}A &= \text{atan}_2{(2(wx + yz), 1 - 2(x^2 + y^2))} \frac{180}{\pi} \\
B &= \text{asin}{(2(wy - zx))} \frac{180}{\pi} \\
C &= \text{atan}_2{(2(wz + xy), 1 - 2(y^2 + z^2))} \frac{180}{\pi}\end{split}\]