这两天在调试ROS小车的过程中就经常会出现这么一个问题,那就是小车走着走着雷达扫描显示的信息和建好的地图会出现偏移,导致了小车在自主导航的过程中不成功。网上找了一圈发现有robots_pose_ekf这个包,就想着把车上的imu也融合进来,不单单依靠车上的雷达,让车的定位更加精确,不会出现雷达信息和地图信息不匹配的情况。接下来就是包的安装配置了。
安装robots_pose_ekf
为了今后方便配置,决定就把这个包直接下载下来装在现在的工作空间里,以后修改相关配置文件的时候就不用去找半天了。
$ cd catkin_ws/src #进入到自己所用的工作空间的src文件夹
$ git clone https://github.com/ros-planning/robot_pose_ekf.git #下载robots_pose_ekf包
$ cd .. # 返回工作空间
$ catkin_make # 进行编译
耐心等待下载编译完成,就可以开始下一步的配置了。
相关配置
<launch>
<node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
<param name="output_frame" value="odom_combined"/>
<param name="base_footprint_frame" value="base_footprint"/>
<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"/>
<remap from="odom" to="pr2_base_odometry/odom" />
</node>
</launch>
打开launch文件我们可以看到如上参数,由于我们并没有用摄像头,就把vo_used那里改为false了。最后那部分可以看到这个launch文件本来可能是拿来给PR2机器人用的,删掉即可,不用重映射。
其他一些参数的配置、TF树的配置大家根据自己的实际情况来进行配置即可。