2014-10-16 91 views
0

我有两个相对于ECI坐标系的具有位置和方向数据(欧拉角,四元数)的运动物体。我想从我猜测的第一个对象的“身体框架”中计算AZ/EL。我试图通过旋转矩阵(X-Y-Z和Z-Y-X旋转序列)将这两个对象转换为主体框架,并用这种方式计算目标向量AZ/EL,但没有成功。我也试图获得身体框架的位置和计算身体轴/角度,并转换回欧拉(相对于身体框架)。我不知道我应该创建的坐标系轴是如何沿着我的对象对齐的。相对于第一个物体的方向,从一个运动物体到另一个运动物体的方位角和仰角

我发现了其他一些问题,如四舍五入解决方案的答案,以便可能是最好的路径,但是我的四元数最好的背景是最好的,我没有看到给定的计算结果如何导致目标向量。

任何意见,将不胜感激,我很高兴分享我未来的进展/经验。

+0

会像[this](http://www.mathworks.nl/help/aerotbx/ug/quat2angle.html)帮助吗?如果您没有航空航天工具箱,您可以轻松地在线找到类似的功能。 – MeMyselfAndI 2014-10-16 19:06:31

+0

我相信这将有助于如果我有一个四元数相对于两个对象之间的身体框架。像这样容易计算吗? – bottleR 2014-10-16 19:13:13

回答

1
  1. 获取当前尼变换矩阵的移动物体

    必须知道位置和北,东,身高至少两个方向(向上或高度)移动的否则对象是你的问题无法解决无论如何。该矩阵/帧称为NEH(X =北,Y =东,Z =高)或有时也称为ENU(X =东,Y =北,Z =上)。看看这里transform matrix anatomy和这里Earth's NEH construction并改变位置和半径以匹配你的移动物体。从GCS

  2. 转换点P0(全球坐标系)到尼

    简单:P1=Inverse(NEH)*P0其中P1现在在 LCS(局部坐标系)。这两个P0,P1在齐次坐标{ x,y,z,w=1 },以便与4x4矩阵乘法,所以你可以从它直接计算方位角和仰角:

    NEH vs. Azimutal coordinates

    • Azimut=atanxy(P1.x,P1.y);
    • Elevation=atan(P1.z/sqrt((P1.x*P1.x)+(P1.y*P1.y)));

    其中atanxy是我的atan2(4象限atan)首先是dx然后dy。我认为matlab中的atan2反过来。

[注释]

始终目视检查所有帧(尤其是NEH)。只需将3个轴画成一些长度的线来验证结果是否正确。它应该看起来像图像,每个轴只有不同的颜色。 只有在NEH OK的情况下才能移动到下一个点!

检查atan2/atanxy操作数的顺序,并检查测角功能单位(rad,deg),以避免混淆。

相关问题