前言
多机器人编队在狭窄环境中避障能力较差,领航机器人有时规划不出一条可达路径,故希望采用TEB算法来进行领航者机器人的局部路径规划。以提高机器人编队整体的避障能力。
一、TEB的下载与安装
源码下载地址:https://gitcode.com/mirrors/rst-tu-dortmund/teb_local_planner/tree/noetic-devel
选择对应版本的代码(我的系统为18.04选择melodic版本):
把下载好的teb_local_planner解压,放在自己的工作空间里,建议放在导航(navigation)功能包中。
Navigation 所在工作空间运行以下命令:
rosdep install --from-paths src --ignore-src --rosdistro=melodic -r -y
显示successfully:
#All required rosdeps installed successfully
返回总的工作空间目录下,对teb功能包单独编译:
catkin_make -DCATKIN_WHITELIST_PACKAGES="teb_local_planner"
查看是否安装成功:
rospack plugins --attrib=plugin nav_core
出现:teb_local_planner /opt/ros/melodic/share/teb_local_planner/teb_local_planner_plugin.xml
则代表安装成功。
二、TEB的使用
为把下载好的teb_local_planner成功应用在机器人编队领航者小车的局部路径规划中费了好大一会功夫,在网上也找到了许多的参考资料,但都未能达到预期的效果,最终在ros.wiki中找到了解决办法。
遇到的问题:
解决办法:
在自己启动navigation的launch文件中,找到需要启动的move_base.launch文件
(我的导航启动文件为:navigation_demo3.launch,
其调用的move_base文件为:move_base_ares2.launch)
按照ros.wiki社区的提示,添加
<param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" />
三、效果演示
可以在Local Plan中找到:
/move_base/TebLocalPlannerROS/local_plan
导航测试一下:
teb规划出的局部路径,红色路线,与dwa最大的区别就是可以倒退了,提高了路径规划的效果。
多机:
总结
虽然整体上机器人编队的避障效果有所改善,但仍未能达到预期的效果,后面打算通过调参来进一步改进,且目前跟随机器人在移动时在地图中留下了障碍物痕迹,对导航效果产生了消极的影响,后面想办法消除他们。