teb_local_planner的详尽资料(包括安装及导航,参数调节等)请参考其ros官方文档:http://wiki.ros.org/teb_local_planner和http://wiki.ros.org/teb_local_planner/Tutorials。

teb_local_planner的github源码:https://github.com/rst-tu-dortmund/teb_local_planner。

一、作用机制

teb_local_planner将navigation里的base_local_planner替换,故其作用机制和base_local_planner一样为ros的plugin机制。plugin的使用可以参考:http://www.cnblogs.com/W-chocolate/p/4328725.html。

二、teb_local_planner的安装步骤如下(注意ros为kenetic版):

1、安装依赖:

rosdep install teb_local_planner

2、从github上下载源码:https://github.com/rst-tu-dortmund/teb_local_planner

3、放入工作空间的/src文件夹中

4、catkin_make -DCATKIN_WHITELIST_PACKAGES=“源码存放的文件夹名字”(单独编译teb_local_planner)

5、查看teb_local_planner的plugin是否安装完成

rospack plugins --attrib=plugin nav_core

如果能查询到teb_local_planner,则表明以及准备就绪。

值得一提的是,teb_local_planner源码中关于plugin的配置文件均已写好,直接编译源码就能完成plugin的注册及插入,非常方便。
三、使用

1、新建teb_local_planner配置文件teb_local_planner_params.yaml

在此我偷了个懒,直接从tutorials中下载:

git clone https://github.com/rst-tu-dortmund/teb_local_planner_tutorials.git

在/cfg中找到所需的teb_local_planner_params.yaml。由于使用机器人odom为差动模式的,故选取diff_drive中的。

2、将teb_local_planner_params.yaml和navigation中其他的配置文件(如costmap_common_params.yaml等)放在一起,方便查阅调用。个人习惯如此,也可以不放在一起。

3、在启动navigation的launch文件中load上述配置文件

<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
         ...
        <rosparam file="$(find my_robot_name_2dnav)/base_local_planner_params.yaml" command="load" />
         ...
      </node>

4、在启动navigation的launch文件中声明base_local_planner采用先前注册的plugin

<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
        ...
        <param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" />
        ...
      </node>

当然也可以选择在move_base_params.yaml中声明。

5、启动navigation,在rviz中将三条path调出来,即可观察机器人导航过程中规划路径的变化。

此外,可以通过rosrun rqt_reconfigure rqt_reconfigure动态调节参数使机器人导航性能达到最佳。关于参数调节的方法请参考其ros官方文档。实际使用的经历来看,采用从teb_local_planner_tutorials下载下来的默认参数达到的性能已经远优于原始navigation中的路径规划算法的性能。我认为teb_local_planner的应用价值非常大。
 
四、异常处理

 

原因是相关库没有安装好,根据提示把库安装好就可以使用了。
解决办法,比较懒,没有一个个试试,所以直接都安装了,有兴趣的小伙伴可以尝试分部分,O(∩_∩)O哈哈~

sudo apt install ros-kinetic-mbf-costmap-core ros-kinetic-mbf-costmap-nav ros-kinetic-move-base-flex ros-kinetic-move-base-to-manip ros-kinetic-moveit-kinematics ros-kinetic-moveit-ros-manipulation ros-kinetic-moveit-ros-move-group ros-kinetic-moveit-ros-perception ros-kinetic-moveit-ros-planning ros-kinetic-moveit-ros-planning-interface ros-kinetic-moveit-ros-warehouse ros-kinetic-assisted-teleop ros-kinetic-carrot-planner ros-kinetic-dwa-local-planner ros-kinetic-global-planner ros-kinetic-goal-passer ros-kinetic-move-slow-and-clear ros-kinetic-navigation ros-kinetic-navigation-experimental ros-kinetic-navigation-layers ros-kinetic-navigation-stage ros-kinetic-navigation-tutorials ros-kinetic-pose-follower ros-kinetic-range-sensor-layer ros-kinetic-roomba-stage ros-kinetic-sbpl-lattice-planner ros-kinetic-sbpl-recovery ros-kinetic-social-navigation-layers ros-kinetic-twist-recovery ros-kinetic-assisted-teleop ros-kinetic-carrot-planner ros-kinetic-dwa-local-planner ros-kinetic-global-planner ros-kinetic-goal-passer ros-kinetic-move-slow-and-clear ros-kinetic-navigation ros-kinetic-navigation-experimental ros-kinetic-navigation-layers ros-kinetic-navigation-stage ros-kinetic-navigation-tutorials ros-kinetic-pose-follower ros-kinetic-range-sensor-layer ros-kinetic-roomba-stage ros-kinetic-sbpl-lattice-planner ros-kinetic-sbpl-recovery ros-kinetic-social-navigation-layers ros-kinetic-twist-recovery ros-kinetic-assisted-teleop ros-kinetic-carrot-planner ros-kinetic-dwa-local-planner ros-kinetic-global-planner ros-kinetic-goal-passer ros-kinetic-move-slow-and-clear ros-kinetic-navigation ros-kinetic-navigation-experimental ros-kinetic-navigation-layers ros-kinetic-navigation-stage ros-kinetic-navigation-tutorials ros-kinetic-pose-follower ros-kinetic-range-sensor-layer ros-kinetic-roomba-stage ros-kinetic-sbpl-lattice-planner ros-kinetic-sbpl-recovery ros-kinetic-social-navigation-layers ros-kinetic-twist-recovery ros-kinetic-cost-map ros-kinetic-cost-map-demos ros-kinetic-cost-map-ros ros-kinetic-cost-map-visualisations ros-kinetic-costmap-prohibition-layer ros-kinetic-grid-map-costmap-2d ros-kinetic-grid-map-cv ros-kinetic-grid-map-ros ros-kinetic-grid-map-visualization

 

teb_local_planner安装及使用的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  3. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. tLinux 2.2下安装Mono 4.8

    Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...

随机推荐

  1. 自然数幂和&伯努利数(Bernoulli)

    二项式定理求自然数幂和 由二项式定理展开得 \[ (n+1)^{k+1}-n^{k+1}=\binom {k+1}1n^k+\binom {k+1}2n^{k-1}+\cdots+\binom {k+ ...

  2. Android Android Studio 如何导出 Jar 给 Unity 使用

    大致步骤如下: 1.创建新的 Android Studio 工程 2.为此 Android Studio 工程创建 Android Library 类库(也就是一个 Module)(后面就是用它生成 ...

  3. IDEA使用的JDK版本1.9换成1.8后,在IDEA中需要改的配置

    今天上午上课spring5使用注解方式的时候,发现jdk9不兼容,果断换jdk8 步骤如下 一.查看Project中的jdk 1.检查Project SDK:中jdk 版本是否为1.8版本 2.检查P ...

  4. windows常用

    host文件位置:C:\Windows\System32\drivers\etc

  5. zjoi 2008 树的统计——树链剖分

    比较基础的一道树链剖分的题 大概还是得说说思路 树链剖分是将树剖成很多条链,比较常见的剖法是按儿子的size来剖分,剖分完后对于这课树的询问用线段树维护——比如求路径和的话——随着他们各自的链向上走, ...

  6. delphi如何设计不规则窗体

    制作多边形窗体的关键在于设定多边形的区域,并根据这个指定的区域改变窗体的形状.Windows的CreatePolygonRgn和SetWindowRgn函数可以解决这两个难点.利用以下代码即可将窗体设 ...

  7. GdiPlus 一个给 Delphi 提供的新的 GDI+ 接口很好用!

    尽管 GDI+ 已经有近 10 年的历史(随 Win2000 推出), 尽管 DirectX 如日中天, 但在 Windows 7 之前的版本下进行 2D 绘图还是离不开它, 微软也没有停止对它的升级 ...

  8. ST表 (模板) 洛谷3865

    题目背景 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1) O(1) 题目描述 给定一个长度为 N N 的数列,和 M M ...

  9. NX文件名与工程图名自动关联

    1.先去D:\Program Files\Siemens\NX 9.0\LOCALIZATION\prc\simpl_chinese\startup里,把默认的图框模板替换成自己定制好的模板,如何替换 ...

  10. 20180713NOIP模拟赛

    20180713NOIP模拟赛 T1:动物园 zoo.cpp 2s [题目描述] 给定一张图,点有点权,求每个点到其他所有点中所有点的权值最小值之和. [思路] \(50pts\)做法:对于每个点跑一 ...