仿真机器人加真实机器人功能包下载链接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改为<param name=”namespace” value=””/> 把assigner.py的maptopic的value改为/map, global_frame的value改为/map, namespace改为<param name=”namespace” value=””/>
二、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 那你就把这个改过来就是了。