1 function [rpy p y] = Quaternion2RPY(q)
2 % [rpy p y] = Quaternion2RPY(q)
6 assert(size(q,2) == 4, 'Quaternion wrong shape');
14 R13 = 2.0 * (q(:,2) .* q(:,4) - q(:,1) .* q(:,3));
15 R11 = q0s + q1s - q2s - q3s;
16 R12 = 2.0 * (q(:,2) .* q(:,3) + q(:,1) .* q(:,4));
17 R23 = 2.0 * (q(:,3) .* q(:,4) + q(:,1) .* q(:,2));
18 R33 = q0s - q1s - q2s + q3s;
20 rpy(:,2) = RAD2DEG * asin(-R13);
21 rpy(:,3) = RAD2DEG * atan2(R12, R11);
22 rpy(:,1) = RAD2DEG * atan2(R23, R33);