如何将ROS2差速驱动里程计数据用于UKF机器人定位?
UKF融合ROS2差速里程计与GPS的定位问题
我用FilterPy实现了UKF进行机器人定位,目前GPS传感器工作正常,但在接入ROS2差速驱动的里程计数据时遇到了问题:
- 直接输入里程计的(x,y,heading)数据:因里程计存在误差累积问题,定位结果会逐渐失效
- 改用里程计的线速度/角速度数据:初期定位效果比仅用GPS好,但后期结果和仅用GPS的情况一致(附测试图表,黑线为真实轨迹)
我清楚卡尔曼滤波的原理与实现方法,现在需要:
- 用通俗语言解释UKF如何利用带累积误差的数据
- 明确应从ROS2
/odom话题中选取哪些数据输入UKF
补充说明
- 当前代码假设里程计仅为位置添加噪声,未考虑误差累积,仅适用于粗略测试
- 现有状态量为x、y、theta,需保留历史值来计算速度、加速度,不确定是否需要将速度、加速度、角速度等也加入状态量
- 测试代码本身没有模拟误差累积效果,但ROS2仿真中的里程计位置误差会累积,目前我仅使用其速度与角速度数据
- 可通过
dictSensors变量的注释/取消注释来组合不同传感器
内容的提问来源于stack exchange,提问作者Steve Brown
相关产品推荐
相关产品推荐

