注意事项
1、rrt_exploration包中的python节点文件需要赋予可执行权限
2、当某节点连接不对时,可以单独启动该节点,在此终端下查看输出
3、movebase的启动我采用的是rrt_exploration_tutorial/launch/includes/move_baseSafe.launch中的movebese内容,修改了节点名字,用自己的movebase配置节点正确,可以自己用rviz发布目标点进行导航,但是没办法用assigner.py发布的点作为导航点
实操展示
视频链接
代码链接
修改提示
1.运行auto_slam.launch
其中启动、建图改成自己的launch文件即可
<launch>
<!-- 启动 -->
<include file="$(find control)/launch/ready.launch" />
<!-- 建图 -->
<include file="$(find control)/launch/gmapping.launch"/>
<!-- 导航 -->
<include file="$(find control)/launch/move_base.launch"/>
<!-- rrt -->
<include file="$(find rrt_exploration)/launch/single.launch"/>
<!-- Rviz -->
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find control)/rviz/rrtslam.rviz"/>
</launch>
2.修改move_base.launch
其中修改name后面的move_base_node为move_base(因为威我已经把源码的move_base_node改为move_base了),global_costmap和local_costmap开头的参数改成自己机器人对应的frame和topic名字(用rosrun rqt_tf_tree rqt_tf_tree和rostopic list可以查看)
<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
<param name="footprint_padding" value="0.01" />
<param name="controller_frequency" value="5.0" />
<param name="controller_patience" value="3.0" />
<param name="oscillation_timeout" value="30.0" />
<param name="oscillation_distance" value="0.5" />
<param name="planner_patience" value="1" />
<param name="controller_patience" value="1" />
<remap from="cmd_vel" to="/cmd_vel"/>
<param name="recovery_behavior_enabled" value="false" />
<rosparam file="$(find rrt_exploration_tutorials)/param/costmap_common_params.yaml" command="load" ns="global_costmap" />
<rosparam file="$(find rrt_exploration_tutorials)/param/costmap_common_params.yaml" command="load" ns="local_costmap" />
<rosparam file="$(find rrt_exploration_tutorials)/param/local_costmap_params.yaml" command="load" />
<rosparam file="$(find rrt_exploration_tutorials)/param/global_costmap_params.yaml" command="load" />
<rosparam file="$(find rrt_exploration_tutorials)/param/base_local_planner_params.yaml" command="load" />
<param name="global_costmap/global_frame" value="/map"/>
<param name="global_costmap/robot_base_frame" value="/base_link"/>
<param name="global_costmap/laser_scan_sensor/sensor_frame" value="/laser_link"/>
<param name="global_costmap/laser_scan_sensor/topic" value="/scan"/>
<param name="local_costmap/global_frame" value="/odom"/>
<param name="local_costmap/robot_base_frame" value="/base_link"/>
<param name="local_costmap/laser_scan_sensor/sensor_frame" value="/laser_link"/>
<param name="local_costmap/laser_scan_sensor/topic" value="/scan"/>
<param name="local_costmap/obstacle_layer/laser_scan_sensor/topic" value="/scan"/>
</node>
3.如果单独启动python节点,在single.launch中注释掉启动,且修改源码中的接收节点名字
单独启动,正常情况下,filter.py的终端下有"the map and global costmaps are received"提示
如果不需要单独启动,取消注释即可
其中一般都是/map和/base_link,如果是/base_footprint的请自行搜索文件中的base_link进行替换修改