pos_final.json 不是输入文件,而是输出文件。输入文件是 taco_bell_data.json,可以在 tar.gz 存档中找到。它包含以下变量:
"timestamp": 1.482995526836e+09,
"gps_lat": 0,
"gps_lon": 0,
"gps_alt": 0,
"pitch": 13.841609,
"yaw": 225.25635,
"roll": 0.6795258,
"rel_forward_acc": -0.014887575,
"rel_up_acc": -0.025188839,
"abs_north_acc": -0.0056906715,
"abs_east_acc": 0.00010974275,
"abs_up_acc": 0.0040153866
他使用 GPS 测量位置,使用加速度计测量方向/加速度。 pos_final.json 中的 NED 速度由卡尔曼滤波器估计。这是卡尔曼滤波器(和其他观察者)的主要任务之一:估计未知量。
GPS 通常会输出速度,但它们将相对于物体的主体。如果您知道身体的方向(滚动、俯仰和偏航),您可以将身体相对速度转换为 NED 速度。假设您有一架无人机以航向 030° 移动,并且 GPS 显示前进速度为 1 m/s,无人机将具有以下北速度:
vel_north = 1 m/s * cos(30°) = 0.86 m/s
以及以下东速度:
vel_east = 1 m/s * sin(30°) = 0.5 m/s
这没有考虑滚动和俯仰。要考虑滚动和俯仰,您可以查看维基百科上的 rotation matrices 或 quaternions。
速度通常在 GPS 输出的VTG telegram 中找到。它并不总是被输出。 GPS 必须具有该功能,并且必须在 GPS 上启用。也可以使用 RMC 电报。
来自 GPS 的速度通常非常嘈杂,这就是为什么通常使用卡尔曼滤波器而不是使用上述方法将身体相对速度转换为 NED 速度的原因。不过,GPS 速度在更高的速度下也能正常工作。