计算2个姿势之间的方位角差

安阳

我有2个Pose代表相机的2个位置,并且我想获得它们的方位角之间的差。
较旧的姿势是从具有较旧相机姿势的锚集中检索的,因此我不应该因ARCore对世界的了解而出错。
从当前帧中检索较新的姿势。

我试图从维基百科使用这个公式

psi = atan2(
    2*(qw*qz + qx*qy),
    1-2*(qy*qy + qz*qz)
)

然后,我从较新的角度减去较旧的角度,但没有成功:当我仅移动电话以修改俯仰角时,得到的结果也会有所不同。

我认为它没有用,因为它假定+ Z为垂直轴,而+ Y为ARCore中的垂直轴。所以我旋转了公式中的轴,使垂直轴为Y:

psi = atan2(
    2*(qw*qy + qz*qx),
    1-2*(qx*qx + qy*qy)
)

它仍然不起作用,仅当我改变音高时,结果仍然会变化。显然,这不是正确的转换。

如何计算相机两个姿势之间的方位角差异?

这实际上可能是Mathematics Stack Exchange的问题,但是我不确定是误解了ARCore还是数学,所以就在这里。

安迪·费多罗夫(Andy Fedoroff)

使用以下方法来计算始终在二维中测量的方位角:

public float getAzimuth(PointF aim) {

    float angle = Math.toDegrees(Math.atan2(aim.x - x, aim.y - y));

    // the range of ± 90.0° must be corrected...

    if(angle < 0.0) {
        angle += 360.0;
    }
    return angle;
}

...以下计算距离的方法:

float distance = Math.sqrt((x2 – x1) / 2.0 + 
                           (y2 – y1) / 2.0 + 
                           (z2 – z1) / 2.0); 

...以及以下方法来计算暴跌:

float plunge = Math.asin((z2 – z1) / distance)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从方位角和距离计算纬度和经度

在Swift中计算两个CLLocation点之间的方位

这些方位角值中的哪一个是正确的?又为什么呢

计算两个以上数据点之间的方位

太阳(方位角)在Lua中的位置

使用OrbitControls限制相机方位角

如何计算每行2个时间戳之间的总差

Python:计算两个纬度/经度之间的方位

计算方位角测量中的位置差异

R; 滚动窗口:计算3个previos点的方位角并将其与数据框中以下3个值的方位角进行比较

如何从enu向量中获得方位角和仰角

计算2个给定时间之间的毫秒差

如何将“方位角”转换为变量?

用固定的方位角校正平面参数

将方位角精确转换为人类

在设备未平放地面时查找方位角值-Android?

如何计算PostGIS中两点之间的方位角?

赤道上的方位角等于非赤道上的方位角吗?

如何使用Excel计算两点之间的方位角(十进制)

如何计算2个数字之间的差

C#方位角和距离计算(使用Vincenty公式)的结果是否为NaN?

如何转换方位角?

使用R或ggplot2对散点图的y方位角上的数据进行箱形图

三角 - 从方位角和仰角创建的矢量与平面的交集

在 MATLAB 中创建角度(方位角)数据的半圆图

C++ 控制台 - 使用方位角和范围的新纬度/经度坐标

使用方位角旋转谷歌地图图标

如何计算给定中心和方位角的扇区点的地理坐标

如何为 n 公里的方位角创建矩形