是否可以根据位置随时间的变化计算欧拉角/方位角?

问题描述

如果我在时间t和时间t + 1有两个3D(XYZ)位置,是否可以计算相对于t的第二个位置(t + 1)的欧拉角/方向角?

我可以很容易地获得偏航/ Z。 y在x或atan2(dx,dy)上的变化。间距/ Y,我认为是Z随行进距离的变化。而且不,我不知道roll / X。

要执行此操作,还需要什么其他信息?还有积分吗?开始定位?

我试图生成/模拟位置,速度和方向数据,其中我所拥有的只是一系列点/航路点以及航路点之间的时间。与该matlab工具箱类似的API,用户可以在其中输入航路点和航路点之间的时间,并生成航路点和航路点之间的方向。 https://www.mathworks.com/help/nav/ref/waypointtrajectory-system-object.html

解决方法

您始终可以从利用叉积的轨迹的两个必然点构造3 basis vectors and origin determining coordinate system

但是,由于您没有定义锚点,因此这样的系统倾向于沿轨迹轴旋转。为了解决这个问题,通常将Up矢量或您获得的任何固定方向用作叉积的起点。但是,如果您的轨迹与之过于平行,则仍然会发生旋转/扭曲奇点。

要从中获得欧拉角,可以使用Is there a way to calculate 3D rotation on X and Y axis from a 4x4 matrix