# bullet euler angle methods What exactly are the differences between:

• getEulerZYX/setEulerZYX
• getEulerYPR/setEulerYPR
• getRPY/setRPY

EDIT: I'm looking at bullet (and the ROS patches).

edit retag close merge delete

Which library/set of code are you using? Is this for bullet?

Sort by » oldest newest most voted These were discussed in this meeting

The methods are documented in the headers. However, I see the doxygen docs are not generating correctly at the moment so I'll copy them here:

get/setRPY is recommended

  /**@brief Set the quaternion using fixed axis RPY
* @param roll Angle around X
* @param pitch Angle around Y
* @param yaw Angle around Z*/
void setRPY(const btScalar& roll, const btScalar& pitch, const btScalar& yaw)


get/setEuler is defined as follows:

  /**@brief Set the quaternion using Euler angles
* @param yaw Angle around Y
* @param pitch Angle around X
* @param roll Angle around Z */
void setEuler(const btScalar& yaw, const btScalar& pitch, const btScalar& roll)


get/setEulerZYX is deprecated due to being ambiguous in different implementations:

  /**@brief Set the quaternion using euler angles
* @param yaw Angle around Z
* @param pitch Angle around Y
* @param roll Angle around X */
void setEulerZYX(const btScalar& yaw, const btScalar& pitch, const btScalar& roll) __attribute__((deprecated))

more

I'm not sure I understand the difference between fixed-axis rotation and Euler angles. Is different from R(θ) = Rx(θ) * Ry(θ) * Rz(θ)? Also, what's the convention for get/setEuler? YXZ? Is pitch really around the x axis? I thought it was the y axis...
Bullet natively uses a different convention for yaw pitch and roll. The difference between fixed axis and euler angles are defined here http://en.wikipedia.org/wiki/Euler_angles#Euler_angles_as_composition_of_extrinsic_rotations