Are there some site that I can convert the following set of rotations, of a 3D picture, i.e.
Rot Axe Y → Rot Axe X → Rot Axe Z → Rot Axe X → Rot Axe Y (or any other set of rotations)
Rot Axe X → Rot Axe Y → Rot Axe Z (in any sequence)
I have the intuition that can be done through matrices manipulation. But perhaps there are available some site that can input the angles and get the output angles. Or some script already done. Or some Matlab instruction. In last case you can give me the theoretical concerning that.
You can go to
wolfram.com and seach for EulerAngles, RawPitchYawAngles, etc.
You can multiply all your input rotations in their order to obtain a singe matrix called
R and then do this:
double yaw = std::atan2(R(1,0), R(0,0));
double pitch = std::atan2(-R(2,0), std::sqrt( R(2,1)*R(2,1) + R(2,2)*R(2,2))));
double roll = std::atan2(R(2,1), R(2,2));
Notice that we named the angles
roll since whether they actually correspond to rotY, rotX and rotZ depends on your axes conventions (e.g. X is the first axis, right- or left handed, etc.).
Source: Determining yaw, pitch, and roll from a rotation matrix
However, the solution above can exhibit numerical instability whereas the header-olny library Eigen’s implementation (Eigen: Main Page) is gimbal-lock-proof:
Matrix3f R = ...; //multiply all your input rotations here.
Vector3f angles = R.eulerAngles(2, 1, 0).reverse();
Refer to the documentation of
eulerAngeles() here: Eigen: Geometry module