首页 > 解决方案 > 在给定初始和目标位置以及初始滚动、俯仰和偏航角的情况下计算目标滚动、俯仰和偏航角

问题描述

我有一个在模拟世界中移动的模型。操作框架是右手的,X - 前进,Y - 左和 Z - 上。

我知道当前位置P1 (x1, y1, z1)和当前 RPY 角度(R1, P1, Y1)。我有一个目标位置,P2 (x2, y2, z2)。我想将我的模型从 移动P1P2. 我一直在计算目标 RPY 角度。我希望我的模型首先朝从 P1 到 P2 的方向转身,然后朝那个方向移动以达到目标。

(R2, P2, Y2)给定上述信息,我如何计算目标 RPY 角度?

标签: openglvectorgraphics3drobotics

解决方案


  • 计算方向向量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)) 改为在球形极点附近使用以提高鲁棒性)


推荐阅读