python 欧拉角转四元数代码,用公式编写
时间: 2024-04-08 22:35:28 浏览: 132
欧拉角转四元数
以下是将欧拉角转换为四元数的Python代码:
```python
import math
def euler_to_quaternion(roll, pitch, yaw):
"""
将欧拉角转换为四元数
:param roll: 横滚角(绕X轴旋转)
:param pitch: 俯仰角(绕Y轴旋转)
:param yaw: 偏航角(绕Z轴旋转)
:return: 四元数 [w, x, y, z]
"""
cy = math.cos(yaw * 0.5)
sy = math.sin(yaw * 0.5)
cp = math.cos(pitch * 0.5)
sp = math.sin(pitch * 0.5)
cr = math.cos(roll * 0.5)
sr = math.sin(roll * 0.5)
w = cr * cp * cy + sr * sp * sy
x = sr * cp * cy - cr * sp * sy
y = cr * sp * cy + sr * cp * sy
z = cr * cp * sy - sr * sp * cy
return [w, x, y, z]
```
这个函数接受三个欧拉角参数:roll(横滚角,绕X轴旋转),pitch(俯仰角,绕Y轴旋转)和yaw(偏航角,绕Z轴旋转)。函数返回一个四元数列表,表示为 [w, x, y, z]。
请注意,代码中的角度单位是弧度,需要确保传入正确的单位。
阅读全文