俯仰,滚转和偏航角转换为方向向量
俯仰,滚转和偏航角。我如何将这些转换为方向向量?
这将是特别酷,如果你能告诉我一个四元数和/或矩阵表示这个!
不幸的是,有关如何定义这些东西有不同的约定(和滚动,俯仰,偏航不是完全相同的欧拉角),所以你必须要小心。
如果我们将pitch = 0定义为水平(z = 0)并且偏离从x轴逆时针,则方向矢量将是
x = cos(yaw)*cos(pitch)
y = sin(yaw)*cos(pitch)
z = sin(pitch)
注意我没有使用roll;这是方向单位向量,它不指定态度。它很容易写一个旋转矩阵,将物体携带到飞行物体的框架(如果你想知道,例如,左翼尖指向),但它是一个好主意,首先指定约定。你能告诉我们更多的问题吗?
编辑:
(我已经有意回答这个问题两年半了。)
对于全旋转矩阵,如果我们使用上面的约定,并且我们想要矢量先偏航,然后俯仰,然后滚动,以获得世界坐标系中的最终坐标,我们必须以相反的顺序应用旋转矩阵。
第一卷:
| 1 0 0 |
| 0 cos(roll) -sin(roll) |
| 0 sin(roll) cos(roll) |
然后间距:
| cos(pitch) 0 -sin(pitch) |
| 0 1 0 |
| sin(pitch) 0 cos(pitch) |
然后偏航:
| cos(yaw) -sin(yaw) 0 |
| sin(yaw) cos(yaw) 0 |
| 0 0 1 |
组合它们,总旋转矩阵为:
| cos(yaw)cos(pitch) -cos(yaw)sin(pitch)sin(roll)-sin(yaw)cos(roll) -cos(yaw)sin(pitch)cos(roll)+sin(yaw)sin(roll)|
| sin(yaw)cos(pitch) -sin(yaw)sin(pitch)sin(roll)+cos(yaw)cos(roll) -sin(yaw)sin(pitch)cos(roll)-cos(yaw)sin(roll)|
| sin(pitch) cos(pitch)sin(roll) cos(pitch)sin(roll)|
因此,对于从x轴开始的单位矢量,最终坐标将是:
x = cos(yaw)cos(pitch)
y = sin(yaw)cos(pitch)
z = sin(pitch)
对于从y轴(左翼尖)开始的单位矢量,最终坐标为:
x = -cos(yaw)sin(pitch)sin(roll)-sin(yaw)cos(roll)
y = -sin(yaw)sin(pitch)sin(roll)+cos(yaw)cos(roll)
z = cos(pitch)sin(roll)

浙公网安备 33010602011771号