You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于GPS输出的NED速度与磁航向计算前进速度矢量

问题解答

结论

你给出的计算方法是错误的,按该逻辑计算得到的结果既不是前进速度,也没有正确利用磁航向的参考意义。

原理说明

我们需要先明确几个基础定义的默认约定(如果你的传感器输出定义不同需要对应调整):

  • NED地理坐标系下,velocity_n为北向速度(向北为正),velocity_e为东向速度(向东为正)
  • 磁航向rad_heading指载体机头指向与磁北方向的顺时针夹角,单位为弧度
    前进速度的本质是:NED坐标系下的水平速度矢量,在载体机头前向轴上的投影值,不需要开平方操作,直接投影计算即可。

正确计算公式

forward_velocity = velocity_n * cos(rad_heading) + velocity_e * sin(rad_heading)

原计算方法的问题

你将两个投影分量分别平方相加再开根号,本质上消除了速度的方向属性,举个简单的验证案例就能看出问题:
假设磁航向为45度,北向速度velocity_n=1m/s,东向速度velocity_e=1m/s,此时载体沿机头方向的前进速度应为√2≈1.414m/s,用正确公式计算结果符合预期,但用你给出的方法计算得到的结果是1m/s,明显不符合实际情况。

补充注意事项

  • 如果你仅需要获取水平地速的大小,不需要引入磁航向参数,直接计算sqrt(velocity_n^2 + velocity_e^2)即可
  • 若你的磁力计输出的航向定义为逆时针为正,需要将公式中sin(rad_heading)替换为sin(-rad_heading)再计算
  • 如果需要使用真航向作为参考,要先将磁航向叠加当地磁偏角修正为真航向后代入公式

内容的提问来源于stack exchange,提问作者saikat mondal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:15:05