给定初始和目标位置以及初始滚动、俯仰和偏航角,计算目标滚动、俯仰和偏航角
Compute target roll, pitch and yaw angles given initial and target positions and intial roll, pitch and yaw angles
我有一个模型可以在模拟世界中移动。操作框架是右手的,X - 向前,Y - 左,Z - 上。
我知道当前位置 P1 (x1, y1, z1)
和当前 RPY 角度 (R1, P1, Y1)
。我有一个目标位置,P2 (x2, y2, z2)
。我想将我的模型从 P1
移动到 P2
。我一直在计算目标 RPY 角度。我希望我的模型首先从 P1 到 P2 的方向掉头,然后朝那个方向移动以达到目标。
根据上述信息,我如何计算目标 RPY 角度 (R2, P2, Y2)
?
计算方向向量D = P2 - P1 = (x2 - x1, y2 - y1, z2 - z1)
音高P2 = asin(Dz / |D|)
偏航Y2 = atan2(Dy, Dx)
(NB 可以使用 P2 = atan2(Dz, sqrt(Dx^2 + Dy^2))
代替球形极点附近的更强健壮性)
我有一个模型可以在模拟世界中移动。操作框架是右手的,X - 向前,Y - 左,Z - 上。
我知道当前位置 P1 (x1, y1, z1)
和当前 RPY 角度 (R1, P1, Y1)
。我有一个目标位置,P2 (x2, y2, z2)
。我想将我的模型从 P1
移动到 P2
。我一直在计算目标 RPY 角度。我希望我的模型首先从 P1 到 P2 的方向掉头,然后朝那个方向移动以达到目标。
根据上述信息,我如何计算目标 RPY 角度 (R2, P2, Y2)
?
计算方向向量
D = P2 - P1 = (x2 - x1, y2 - y1, z2 - z1)
音高
P2 = asin(Dz / |D|)
偏航
Y2 = atan2(Dy, Dx)
(NB 可以使用 P2 = atan2(Dz, sqrt(Dx^2 + Dy^2))
代替球形极点附近的更强健壮性)