在ROS平台使用扩展卡尔曼融合里程计与IMU传感器

本文探讨了如何利用imu数据增强里程计在机器人定位中的精度问题,通过robot_pose_ekf实现扩展卡尔曼滤波。实验表明,融合后的机器人位姿在转弯时更稳定,实际效果显著改善。

里程计的问题

里程计在转弯的时候, 能容易发生飘移现象,而且精度也不高, 容易产生累积误差
因此, 笔者想到了能不能通过imu来提高机器人的定位效果, 本文采用扩展卡尔曼滤波, ros上的功能包为robot_pose_ekf。
功能包官网链接

需要提供的话题

里程计数据 odom (nav_msgs/Odometry)
惯导传感器数据 imu_data (sensor_msgs/Imu)
甚至也支持 视觉里程计数据 vo (nav_msgs/Odometry)

robot_pose_ekf发布的数据

  1. 传感器数据融合之后的机器人位姿 robot_pose_ekf/odom_combined (geometry_msgs/PoseWithCovarianceStamped)
  2. 发布了从odom_combined 到 base_footprint的tf坐标变换。

launch文件的配置

 <launch>
  <node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
    <param name="output_frame" value="odom"/>
    <param name="base_footprint_frame" value="base_link"/>
    <param name="freq" value="30.0"/>
    <param name="sensor_timeout" value="1.0"/>
    <param name="odom_used" value="true"/>
    <param name="imu_used" value="true"/>
    <param name="vo_used" value="false"/>
    <param name="debug" value="false"/>
    <param name="self_diagnose" value="false"/>
  </node>
 </launch>

实验的效果:

橙色曲线为融合之后的机器人位姿, 绿色为里程计发布的机器人位姿, 可见, 通过传感器融合之后, 机器人在转向上的效果显著提高, 并且更加符合实际。
在这里插入图片描述

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值