从Apple iWatch到SpaceX Falcon9,许多运动设备中都具备惯性测量单元(Inertial Measurement Unit, IMU)进行位置和运动测量。尽管Apple iWatch和SpaceX Falcon9使用的IMU精度悬殊,用于处理IMU数据的演算法也极为不同,但它们背后的物理和数学模型是相同的。

如何理解IMU不同精度参数对应用的影响呢?现在可以通过Aceinna提供的在线工具快速进行IMU相关演算法模拟,通过模拟来直观的理解各个参数的影响。这一在线工具包括了开源的模拟框架GNSS-INS-SIM和基于Web的GUI。之前的文章中,我们讲解了如何在Python中直接配置和使用GNSS-INS-SIM。本文将进一步讲解,如何利用Web GUI快速完成惯性导航演算法模拟。

开始

IMU包含三轴加速度和三轴陀螺仪,也可以选配三轴地磁感测器。通常与GNSS接收机进行融合完成组合导航方案。IMU通常应用于运动测量、平台稳定、姿态测量以及GPS失锁期间的位置跟踪。

在使用在线版本的模拟系统之前,需要在ACEINNA Developer Website完成注册并登陆,然后可以参考快速应用手册中的示例来学习如何使用。本文将著重于一些要点。

创建IMU模型

IMU模型描述了IMU的杂讯和漂移等误差特性。这些特性通常在IMU产品制造商的用户手册中提供,包括零偏稳定性和随机游走(对应陀螺仪为角度随机游走,对应加速度为速度随机游走)等等。模拟系统内置了高精度、中等精度和低精度的IMU模型,可供选择使用。创建完成IMU误差模型后,需要对其命名以供后续使用。

Figure 1 ACEINNA Navigation Studio can be used to create an IMU Sensor Model in seconds

生成运动轨迹

运行演算法前,需要生成运动轨迹。轨迹描述了物体随时间的运动,其用于生成对应的参考加速度和角速度。结合上述的感测器误差模型,模拟系统将会进一步生成带误差的IMU测量数据,而测量数据则可用作演算法的输入。

最简单的运动轨迹为:保持静止。静止时的感测器测量可以用于进行Allan方差分析。下图给出了之前文章中用到的左转测试,它用于模拟无LIDAR、摄像机及GNSS辅助情况下自动驾驶汽车利用惯性导航完成定位的误差特性。

Figure 2 Motion Generator for Left Hand Turn

选择演算法并模拟

具有运动轨迹和感测器模型后,我们需要选择一个演算法来进行模拟。现在,基于Web的在线版本的GNSS-INS-SIM提供了多个预置的演算法,包括Aceinna IMU产品中所使用的演算法。Aceinna将提供工具,支持将ACEINNA』s OpenIMU embedded inertial development tools创建的用户自定义演算法上传。

这里,我们选择了「Free Integration」演算法,该演算法演示了纯IMU产品的导航性能。在一次模拟中可以将演算法运行多次,从而对误差进行统计。

Figure 3 Select an Algorithm to Run Simulation

结果显示

模拟完成后,你将收到提醒。在线版本的GNSS-INS-SIM提供了多种在线数据进行模拟数据分析,包括:

  1. 误差的统计结果;
  2. Allan方差画图;
  3. 数据的时间变化图/误差图
  4. 地图显示(用于位置显示)

下面是将本次模拟结果显示在地图上的结果。

Figure 4 Position vs Ref (「Truth」) Position on Map Plot

Figure 5 Drift in X,Y,Z Position vs Time

下一步

IMU的惯性导航演算法模拟通常费时费力,Aceinna的开发者网站提供了强大的在线工具,可以极大的简化这一过程。我们将根据用户反馈,扩充和增加模拟工具。

后续的文章中,我们将进一步详细讲解如何进行GNSS/INS组合导航模拟,包括如何模拟GNSS因树木、建筑和其他遮挡导致的GPS失锁。


推荐阅读:
相关文章