如何将IMU得到的3Dangular速度数据积分得到线速度的误差最小化?

How to minimize the error integrating 3D angular velocity data obtained by the IMU to get linear velocity?

有 IMU 传感器给我原始数据,例如方向、Angular 和线性加速度。我正在使用 ROS 并进行一些 Gazebo UUV 模拟。此外,我想从原始 IMU 数据中获取线速度。

所以朴素积分方法如下: IMU状态估计最简单的方法是测量数据的朴素积分。我们通过整合 IMU 获得的 3D angular 速度数据来估计姿态。假设时间步长Δ较小,可以增量计算每个时间步长的姿态。

如果我随着时间的推移进行积分,将会出现累积误差,并且在例如机器人转弯时的时间将不准确。所以我正在寻找一些可以纠正该错误的方法(ROS 包或外部 ROS 框架)或代码。

有什么帮助吗?

我首先建议您尝试将输入传感器数据从 robot_localization 包中拟合到 EKF 或 UKF 节点中。该包是ROS生态系统中使用最多和最优化的姿态估计包。

它可以处理 3D 传感器输入,但您必须配置参数(没有真正的默认值,所有配置)。除了上面的配置文档,github has good examples of yaml parameter configurations (Ex.) (you'll want a separate file from the launch file) and example launch files (Ex.).