从加速度计和陀螺仪 (IMU) 获取轨迹

Getting a trajectory from accelerometer and gyroscope (IMU)

我很清楚 this question 的存在,但我会有所不同。我也知道这种方法可能存在重大错误,但我也想从理论上了解配置。

我有一些基本的问题,我自己很难清楚地回答。有很多关于加速度计和陀螺仪的资料,但我仍然没有找到对一些基本属性的解释"from first principles"。

所以我有一个包含加速度计和陀螺仪的平板传感器。还有一个我现在跳过的磁力计。

所以我们知道可以考虑加速度是位置的二阶导数来计算无穷小运动。

假设您的传感器附在您的手或腿上。第一时刻我们可以认为它在3Dspace中的点为(0,0,0),初始坐标系也依附在这个物理点上。所以对于第一个时间步,我们将有

r(1) = 0.5a(0)dt^2

其中r为无穷小运动矢量,a(0)为加速度矢量。

在接下来的每一步中我们都会用到计算

r(t+1) = 0.5a(t)dt^2 + v(t)dt + r(t)

其中 v(t) 是将以某种方式估计的速度向量,例如 (r(t) -r(t-1)) / dt.

此外,在每次无限小的运动之后,我们都必须考虑来自陀螺仪的数据。我们将使用旋转矩阵来旋转向量 r(t+1).

这样一来,可能误差很大,我会根据初始坐标系得到一些轨迹。

我的查询是:

  1. 这个算法我基本上是正确的吗?如果不是,我哪里错了?
  2. 我非常感谢一些资源,其中包含一个未跳过首要原则的工作示例。
  3. 我应该如何继续使用卡尔曼滤波器来获得更好的轨迹?我究竟以什么方式将所有 IMU 数据(加速度计、陀螺仪和磁力计)传递给卡尔曼滤波器?

您的概念框架是正确的,但方程式需要一些改进。加速度是在平台架上测得的,可以很快旋转,所以不宜在平台架上集成加速度,旋转位置变化。相反,加速度被转换成一个相对缓慢的旋转框架,并在那里完成速度变化和位置变化的积分。通常是 locally-level 框架(例如 North-East-Down 或 Wander Aziumuth)或 Earth-centered 框架(ECEF 或 ECI)。重力和科里奥利力必须包含在加速度中。

可以在许多参考文献中找到从第一原理推导出来的内容,我最喜欢的一篇是 Titterton 和 Weston 的 Strapdown Inertial Navigation Technology。 locally-level和Earth-fixed坐标系中惯性导航方程的推导在第3章给出。

正如您在问题中所认识到的那样 - 初始速度是一个未知的积分常数。如果没有对初始速度的一些估计,整合惯性数据产生的轨迹可能会大错特错。