teb_local_planner是用于机器人导航和控制的局部轨迹优化器。
由于笔者所使用的ros2 galactic版本没有可以直接使用apt安装的debian包,所以需要使用源代码进行编译。
开发环境
操作系统:Ubuntu 20.04
ROS版本:ROS2 Galactic
编译和安装
直接从github上clone teb_local_planner ros2分支的源码,另外还需要clone costmap_converter源码。然后进行编译。以下列出详细操作步骤。
创建工作空间并获取源码:
mkdir -p ~/teb_ws/src
cd ~/teb_ws/src
git clone https://github.com/rst-tu-dortmund/costmap_converter.git -b ros2
git clone https://github.com/rst-tu-dortmund/teb_local_planner.git -b ros2-master
编译前先使用rosdep安装依赖库。因为可能会缺少libg2o
cd ~/teb_ws
rosdep install -i --from-path src --rosdistro galactic -y
然后进行编译安装
colcon build
最后执行以下命令后就能在navigation2里使用teb_local_planner了。
. ~/teb_ws/src/install/local_setup.bash
运行
teb_local_planner ros2-master分支源码里没有launch文件,所以不能像teb wiki教程里那样直接运行示例。
在teb_local_planner/teb_local_planner/params
路径下有完整的配置参数teb_params.yaml,可以复制到navigation2的配置文件中替换dwb_local_planner插件,然后运行turtlebot3模拟的launch查看导航运行效果。
navigation2的Controller Server配置方法请参考navigation2教程:Setting Up Navigation Plugins — Navigation 2 1.0.0 documentation (ros.org)