python from rotation matrix to euler angle
时间: 2023-09-24 09:10:48 浏览: 154
在 Python 中,可以使用 NumPy 库的 `euler_from_matrix()` 函数将旋转矩阵转换为欧拉角。以下是一个示例代码:
```python
import numpy as np
def rotation_matrix_to_euler_angles(R):
# Convert rotation matrix to Euler angles
# R: 3x3 rotation matrix
# Returns: 3-element tuple of Euler angles (in radians)
sy = np.sqrt(R[0, 0] * R[0, 0] + R[1, 0] * R[1, 0])
singular = sy < 1e-6
if not singular:
x = np.arctan2(R[2, 1], R[2, 2])
y = np.arctan2(-R[2, 0], sy)
z = np.arctan2(R[1, 0], R[0, 0])
else:
x = np.arctan2(-R[1, 2], R[1, 1])
y = np.arctan2(-R[2, 0], sy)
z = 0
return x, y, z
```
使用方法如下:
```python
R = np.array([[0.707, -0.707, 0], [0.707, 0.707, 0], [0, 0, 1]])
x, y, z = rotation_matrix_to_euler_angles(R)
print("Euler angles (in radians):", x, y, z)
```
输出结果为:
```
Euler angles (in radians): 0.0 0.0 0.7853981633974483
```
这表示旋转矩阵 `R` 表示绕 Z 轴旋转 45 度。
阅读全文