Axis-Angle Representation
轴角CommonRepresenting a 3D rotation by which axis it turns around and by how large an angle.
Axis-angle representation describes a 3D rotation with a unit vector e (the rotation axis direction) and an angle θ (the rotation about that axis, in radians), based on the fact that every rotation is equivalent to a single turn about some fixed axis. Multiplying the two together gives the 3D rotation vector θe: its direction is the rotation axis and its length is the rotation angle, so it packs everything into just 3 numbers — SciPy calls this rotvec. It converts to and from a rotation matrix using Rodrigues' rotation formula, and mathematically it's just the coordinates of the SO(3) exponential map. Its downside is non-uniqueness: adding or subtracting 2π from θ, or flipping the sign of both the axis and the angle, represent the exact same rotation, and the conversion needs special handling when θ is near 0 or π. Because it's low-dimensional and smooth for small angles, it's a common action representation for end-effector orientation deltas in robot arm control.
Examplerobosuite's OSC_POSE controller takes a 6-dimensional action (excluding the gripper); the last 3 values are a rotation delta relative to the current end-effector orientation, given in axis-angle form (ax, ay, az) — a 90° rotation about z is written (0, 0, 1.571).
- Also called
- Rotation Vector, rotvec, Euler Vector
- Related
- Rotation Matrix · Quaternion · Euler Angles · Rodrigues' Rotation Formula · Exponential Map · 6D Rotation Representation
- Sources
- Axis–angle representation - Wikipedia
scipy.spatial.transform.Rotation.as_rotvec - SciPy Manual
Controllers - robosuite documentation