Embodied AI Glossary中文

Intrinsic vs. Extrinsic Rotations

内旋与外旋Advanced

For successive rotations, whether each step turns about the new, moving axes (intrinsic) or the original, fixed axes (extrinsic).

Describing orientation with three angles (Euler angles) requires a convention for which axis each step rotates about. Intrinsic rotation turns about the object's own, moving coordinate axes, so the axis used at each subsequent step has already changed with the previous rotation; extrinsic rotation always turns about the fixed axes of the world frame. The two are interchangeable: applying the same three angles intrinsically in the order Z→Y→X gives the same rotation matrix as applying them extrinsically in the reverse order X→Y→Z, namely R = Rz(α)Ry(β)Rx(γ) (Rz(α) denotes the rotation matrix for an angle α about the z-axis, and so on). The ZYX Euler angles commonly used in robotics are intrinsic, while roll-pitch-yaw (RPY) angles are usually defined as extrinsic XYZ, which is why the two end up with the same numerical values. Conventions differ across software and datasets, so before reading someone else's pose data, it's important to check whether it's intrinsic or extrinsic and what the axis order is.

ExampleSciPy's Rotation.from_euler uses uppercase 'ZYX' for intrinsic rotation and lowercase 'zyx' for extrinsic; the same set of angles written as 'XYZ' versus 'xyz' produces a different orientation, so a single letter's case can send a robot arm's end effector spinning the wrong way.

Also called
Intrinsic Rotation, Extrinsic Rotation, Euler Angle Rotation Order Convention
Related
Euler Angles · Roll-Pitch-Yaw (RPY) · Rotation Matrix · Gimbal Lock · Coordinate Transformation · Quaternion
Sources
Wikipedia: Davenport chained rotations(Intrinsic / Extrinsic rotations)
SciPy 文档:Rotation.from_euler(大写为内旋、小写为外旋) (Chinese)
Lynch & Park, Modern Robotics(2017)附录 B:ZYX 欧拉角与 roll-pitch-yaw 角 (Chinese)

See it in the full glossary →