【问题标题】:How to minimize the error integrating 3D angular velocity data obtained by the IMU to get linear velocity?如何将 IMU 获得的 3D 角速度数据积分得到线速度的误差最小化?
【发布时间】:2021-11-17 18:03:18
【问题描述】:

拥有 IMU 传感器,可为我提供方向、角度和线性加速度等原始数据。我正在使用 ROS 并做一些 Gazebo UUV 模拟。此外,我想从原始 IMU 数据中获得线速度。

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

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

有什么帮助吗?

【问题讨论】:

    标签: ros numerical-integration imu


    【解决方案1】:

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

    它可以处理 3D 传感器输入,但您必须配置参数(没有真正的默认值,所有配置)。除了上面的配置文档,github 有很好的 yaml 参数配置示例(Ex.)(你需要一个独立于启动文件的文件)和示例启动文件(Ex.)

    【讨论】:

    • 这并不能解决集成问题。为了获得速度需要对加速度进行积分。随着时间的推移,错误会累积起来,而且会很大。所以我的问题是如何最小化这个错误。理解?我做了研究,在优化函数等方面有一些数值方法。一种解决方案是robomechjournal.springeropen.com/articles/10.1186/…。我正在寻找一些更好的解决方案。无需额外传感器。所以错误仍然存​​在,但使用一些数学方法可以最大限度地减少错误
    • @Bob9710 JWCS 试图说明的一点是,计算速度时你根本不应该积分。由于您所看到的原因,它不起作用。
    • 那怎么办呢?
    • 好的。 docs.ros.org/en/noetic/api/robot_localization/html/index.html 的要点是运动模型适用于带轮子的机器人,以及一些地面机器人。我的机器人是水下鱼机器人 UUV,认为docs.ros.org/en/noetic/api/robot_localization/html/index.html 不适合这种机器人。你明白我的意思了吗?
    • @Bob9710 您对该软件包的看法不正确。它的构建考虑了带有轮子的机器人,但这不是唯一用例。主要目的是提供 3D 空间中的状态估计;这不是特定于带轮子的东西。
    猜你喜欢
    • 2021-11-14
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    相关资源
    最近更新 更多