轴角
Axis-Angle Representation常用用「绕哪根轴转、转多少角度」来表示一次三维旋转。
轴角表示用一个单位向量 e(旋转轴方向)和一个角度 θ(绕该轴转过的弧度)来描述三维旋转,依据是任何旋转都等价于绕某根固定轴的一次转动。把两者相乘得到三维的旋转向量 θe:方向是转轴,长度是转角,只用 3 个数,SciPy 里叫 rotvec。它和旋转矩阵之间用罗德里格斯公式互相换算,数学上就是 SO(3) 指数映射的坐标。缺点是不唯一:θ 加减 2π,或把轴和角同时取反,都表示同一个旋转,θ 接近 0 或 π 时换算要特殊处理。因为维度低、小角度时平滑,它常被用作机械臂末端姿态增量的动作表示。
例子robosuite 的 OSC_POSE 控制器动作是 6 维(不含夹爪),后 3 维就是相对当前末端姿态的旋转增量,用轴角 (ax, ay, az) 表示;绕 z 轴转 90° 写作 (0, 0, 1.571)。
- 也叫
- 旋转向量、Rotation Vector、rotvec、轴-角表示、Euler vector
- 相关
- 旋转矩阵、四元数、欧拉角、罗德里格斯公式、指数映射、6D 旋转表示
- 来源
- Axis–angle representation - Wikipedia
scipy.spatial.transform.Rotation.as_rotvec - SciPy Manual
Controllers - robosuite documentation