仿真机器人加真实机器人功能包下载链接https://download.csdn.net/download/qq_42145185/11019965
博主为了图方便,就直接使用了古月老师的仿真包了,博主先和自己的朋友先在真实的机器人上实现了这个功能,再在仿真上来实现了一下。
也可以先去zhangrelay老师的博客看看关于rrt的资料。
这里继续更新
这里先展示rrt建图的过程,下面再介绍rrt如何使用到我们自己的机器人上面
可以先去wiki上看看rrt的介绍,并先把demo跑起来,这样才能先确定你的依赖安装完成没有。
http://wiki.ros.org/rrt_exploration
这里就不介绍怎么去跑demo了
如果不会,可以去zhangrelay老师博客去搜索rrt,本人也是在张老师的博主里去了解到rrt的。
Github链接:
- 软件包本身:https://github.com/hasauino/rrt_exploration
- Gazebo模拟文件:https://github.com/hasauino/rrt_exploration_tutorials
去下载这两个源码包。
其实要让自己机器人用rrt_exploration的包,让rrt_里的话题发布到自己的机器人的节点上去,就可以实现了。
rrt_exploration修改规则
一、single.launch
eta:此参数控制用于检测边界点的RRT的增长率,单位为米。 此参数应根据地图大小设置,非常大的值将使树生长得更快,从而更快地检测边界点,但是大的增长率也意味着树将缺少地图中的小角落。
把global_rrt_detector节点的maptopic的value改为/map
把local_rrt_detector节点的maptopic的value改为/map, robot_frame的value改为/base_link
把filter.py的maptopic的value改为/map, 把namespace改为
把assigner.py的maptopic的value改为/map, global_frame的value改为/map, namespace改为
二、global_rrt_detector.cpp
把整篇出现的ns+都删掉
把所有的/robot_1删掉
84行的ns+"_shapes"改为”/local_detected_shapes”
三、local_rrt_detector.cpp
把整篇出现的ns+都删掉
把所有的/robot_1删掉
第85行的ns+"_shapes"改为"/local_detected_shapes"
第96、97行的mapData.header.frame_id改为”/map”
整篇出现的map_topic改为”/map”, base_frame_topic改为”/base_link”
四、assigner.py
整篇出现的map_topic改为”/map”, frontiers_topic改为”/filtered_points”
最后main下面的的
try:
node()
except rospy.ROSInterruptException:
pass
改为node()
五、functions.py
把整篇出现的ns+都删掉
把整篇出现的self.name+都删掉
把整篇出现的name+都删掉
把整篇出现的global_frame和self.global_frame都替换为’/map’
37、38行的/move_base_node/NavfnROS/make_plan改为/move_base/NavfnROS/make_plan
删除functions.pyc
六、filter.py
71行的namespace+str(i+namespace_init_count)+'/move_base_node/global_costmap/costmap'改为'/move_base/global_costmap/costmap'
73行的'/move_base_node/global_costmap/costmap'改为'/move_base/global_costmap/costmap'
88行的global_frame[1:], namespace+str(i+namespace_init_count)+'/base_link'改为'/map', '/base_link'
90行的global_frame[1:], '/base_link'改为'/map', '/base_link'
七、move_base配置文件修改
这里我们直接用我们下载的仿真包里的move_base的四个配置文件。
做一下简单的修改costmap_common_params.yaml里把13行的footprint注释掉。
把29行的sensor_frame: base_laser_link去掉,再把topic:/base_link改为/scan
最后注意:我们这里用的/base_link 是因为我们的机器人的基坐标系是/base_link 但是有的机器人的是/base_footprint 那你就把这个改过来就是了。