robot_pose_ekf包保姆级使用教程
Posted Love and Robot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了robot_pose_ekf包保姆级使用教程相关的知识,希望对你有一定的参考价值。
1.下载地址
https://github.com/udacity/robot_pose_ekf
本文对odom数据以及imu数据进行融合。
2.如何方便完成订阅话题?
为了方便对订阅话题的管理,对源文件进行修改:
robot_pose_ekf/robot_pose_ekf.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_footprint"/>
<param name="freq" value="50.0"/>
<param name="sensor_timeout" value="1.0"/>
<param name="odom_used" value="true"/>
<param name="odom_data" value="odom"/>
<param name="imu_used" value="true"/>
<param name="imu_data" value="imu"/>
<param name="vo_used" value="false"/>
</node>
</launch>
robot_pose_ekf/odom_estimation_node.cpp:
找到相应的代码行,添加:
...
nh_private.param("odom_used", odom_used_, true);
nh_private.param("odom_data", odom_data_, std::string("/odom_data"));
nh_private.param("imu_used", imu_used_, true);
nh_private.param("imu_data", imu_data_, std::string("/imu_data"));
...
odom_sub_ = nh.subscribe(odom_data_, 10, &OdomEstimationNode::odomCallback, this);
...
imu_sub_ = nh.subscribe(imu_data_, 10, &OdomEstimationNode::imuCallback, this);
同样,对头文件进行修改:
robot_pose_ekf/include/robot_pose_ekf/odom_estimation_node.h:
...
std::string output_frame_, base_footprint_frame_, tf_prefix_, odom_data_, imu_data_;
...
至此,可以通过上述修改的launch文件完成对话题的修改,当话题修改时,只需要修改launch文件中的参数即可,而不需要重新编译。
3.编译
在工作空间目录下,执行:
catkin_make
4.如何使用?
如果你使用的是实际的机器人,则需要将发布odom坐标转换的相关代码注释掉,一般位于底盘的启动文件中,注意是坐标转换,也就是tf brodcaster,而不是里程计数据,里程计数据需要保留。
如果使用的是gazebo仿真环境下的机器人,则需要对控制器进行修改,以差速机器人为例:
<gazebo>
<plugin name="differential_drive_controller" filename="libgazebo_ros_diff_drive.so">
...
<publishOdomTF>true</publishOdomTF>
...
</gazebo>
没有找到相关参数的话,添加即可。
运行:
roslaunch robot_pose_ekf robot_pose_ekf.launch
此时,打开tf树,会发现odom到base_link(base_footprint)的转换为robot_pose_ekf发布,这说明EKF配置成功。
如果给您带来帮助,希望能给点个关注,以后还会陆续更新有关机器人的内容,点个关注不迷路~欢迎大家一起交流学习,有问题评论区留言。
都看到这了,点个推荐再走吧~
未经允许,禁止转载。
以上是关于robot_pose_ekf包保姆级使用教程的主要内容,如果未能解决你的问题,请参考以下文章