旋转向量v和旋转矩阵R
旋转向量 v 和旋转矩阵 R 是三维空间中描述旋转的两种数学表示方式。两者的关系通过 Rodrigues 公式 建立。
1. 旋转向量v

2. 旋转矩阵R

3. 旋转向量v和旋转矩阵R的关系
两者通过 Rodrigues 公式 和特殊的矩阵运算互相转换:


4. 代码示例
1. 旋转向量到旋转矩阵:
import numpy as np
from scipy.spatial.transform import Rotation as R
# 定义旋转向量
rotvec = np.array([0.1, 0.2, 0.3]) # 旋转向量
rotation_matrix = R.from_rotvec(rotvec).as_matrix() # 转换为旋转矩阵
print("Rotation Matrix:\n", rotation_matrix)
2. 旋转矩阵到旋转向量:
rotation_matrix = np.array([
[0.936, -0.289, 0.198],
[0.313, 0.944, -0.103],
[-0.161, 0.153, 0.975]
])
rotvec = R.from_matrix(rotation_matrix).as_rotvec() # 转换为旋转向量
print("Rotation Vector:", rotvec)
总结
- 旋转向量 是一种紧凑表示,适合参数化和优化问题。
- 旋转矩阵 是用于实际旋转操作的线性变换工具。
- 两者通过 Rodrigues 公式和迹公式互相转换,提供了灵活性和效率兼具的解决方案。