ROS teb_local_planner使用

2023-05-16

teb_local_planner则是2D导航堆栈的base_local_planner的插件。实现了一个在线优化的本地轨迹规划器,用于导航和控制移动机器人,作为ROS 导航包的插件。全局规划器生成的初始轨迹在运行时期间进行优化,最小化轨迹执行时间(时间最优目标), 与障碍物分离并符合动力学约束,例如满足最大速度和加速度。当前的实施符合非完整机器人(差动驱动和类似汽车的机器人)的运动学。自Kinetic以来,包括对完整机器人的支持。
 

一.teb_local_planner配置方法
安装步骤

源码安装
需要安装teb_local_planner,前往teb_local_planner,将分支切换到melodic-devel然后下载源码到本地,并解压源码包到~/catkin_ws_nav/src/后,就可以编译安装了

#安装依赖
source ~/catkin_ws_nav/devel/setup.bash 
rosdep install teb_local_planner

cd  ~/catkin_ws_nav/
catkin_make  -DCATKIN_WHITELIST_PACKAGES="teb_local_planner"

teb_local_planner源码中关于plugin的配置文件均已写好,直接编译源码就能完成plugin的注册及插入,非常方便

源码安装可能缺少依赖项:

  1. 检查依赖项,通过下面指令或者可以查看源码里面的package.xml 和 CMakeLists.txt 文件,里面都有列出来:
rosdep check teb_local_planner
  • 如果都安装了会这样显示,如果没有,则需要下面指令安装缺少的依赖:

    rosdep install teb_local_planner
  • 查看teb_local_planner是否安装完成:(查看导航包插件)
  • rospack plugins --attrib=plugin nav_core
    (30条消息) teb 安装及使用 teb local planner and tutorials intall from source Ubuntu20_一个摩羯座的程序猿 的 知识笔记-CSDN博客https://blog.csdn.net/shanpenghui/article/details/89091064
  • 二进制安装方法
  1. 打开teminal,输入
    sudo apt-get install ros-melodic-teb-local-planner
    

  2. 验证是否安装成功
  3. roscd teb_local_planner
    
  4. 若能进入teb_local_planner的目录,则表明安装成功

  5. 原文链接:https://blog.csdn.net/mecheall/article/details/104413372

二.仿真中的使用 

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中的。

关于参数配置的具体讲解就不展开,请直接参考wiki官方教程:http://wiki.ros.org/move_base

   可以将teb_local_planner_params.yaml和navigation中其他的配置文件(如costmap_common_params.yaml等)放在一起,方便查阅调用。

 然后在可以launch文件中注明全局和局部规划器,最好写一个导航核心控制参数配置move_base_params.yaml文件。

<launch>

    <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen" clear_params="true">
        <param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" />
        <param name="global_global_planner" value="global_planner/GlobalPlanner" />
        <rosparam file="$(find navigation)/param/costmap_common_params.yaml" command="load" ns="global_costmap" />
        <rosparam file="$(find navigation)/param/costmap_common_params.yaml" command="load" ns="local_costmap" />
        <rosparam file="$(find navigation)/param/local_costmap_params.yaml" command="load" />
        <rosparam file="$(find navigation)/param/global_costmap_params.yaml" command="load" />
        <rosparam file="$(find navigation)/param/teb_local_planner_params.yaml" command="load" />
    
    </node>

</launch>

 文件具体可以参考链接SLAM+语音机器人DIY系列:(六)SLAM建图与自主避障导航——3.ros-navigation机器人自主避障导航 - 小虎哥哥爱学习 - 博客园 (cnblogs.com)

 之后就可以在仿真里调处path看到teb_local_planner的轨迹了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS teb_local_planner使用 的相关文章

  • 如何通过文件名访问本地文件夹?

    我有一个文件夹是我的动画 游戏 该文件夹中有 pyw 文件和 wav 音乐文件 我有 import wave wave open 而且我不知道括号里该放什么 我知道它应该是文件名 但有人可能会将游戏安装在未知的目录中 如何通过文件名访问本地
  • PHP 会话变量与局部变量互换?

    我遇到了一个关于 php ini 中的会话变量和局部变量的非常奇怪的问题 我试图弄清楚我是否不了解 php 中的会话 或者这是否是我的主机使用的 php 版本的问题 这是一个非常简单的代码来演示这个奇怪的问题 session start v
  • 为什么 Cython 强制在函数开头声明局部变量

    这是作为评论提出的Cython 复制构造函数 以下代码无法在 Cython 中编译 def bar int i if i 0 return i else cdef int j j i 1 return j 而这个是完全正确的 def foo
  • 在 Joda 中将 UTC 转换为 LocalDateTime?

    DateTime dt new DateTime 2014 09 15T21 20 14 System out println dt System out println dt plusMillis 581042272 toDateTime
  • 错误状态:平台不允许不安全的 HTTP:http://0.0.0.0:9090

    我正在尝试从我的 flutter 应用程序连接到 ws local host 9090 使用 rosbridge 运行 的 Ros WebSocket 服务 但我在 Flutter 中收到以下错误 错误状态 平台不允许不安全的 HTTP h
  • Caught exception in launch(see debug for traceback)

    Caught exception in launch see debug for traceback Caught exception when trying to load file of format xml Caught except
  • 使用 Javascript 或 Jquery 自动导入本地 CSV 文件

    我的客户想要一个包含导入 CSV 数据但不托管在服务器上的网站 这个想法是为了让他们的销售人员可以展示他们的产品 而无需在他们的电脑上访问网络或设置托管 他们还可以通过从原始 Excel 文档导出新的 CSV 文件来更新数据 而无需了解 H
  • PhantomJs 脚本中的 Ajax 请求

    Problem phantomJs 脚本中对本地页面的 Ajax 请求不起作用 无响应 问题 我怎样才能让它发挥作用 有什么想法或可能的解决方案吗 描述 我正在运行 phantomJs 脚本 我需要访问另一个页面 本地 中的 php 函数提
  • 分离本地数据库.mdf,复制,附加新文件

    我尝试分离本地数据库 mdf 将其复制到另一个文件夹中 并在启动时附加新文件 并在关闭时复制到旧文件夹 它似乎在启动时有效 但在表单关闭时出现错误 该进程无法访问文件 C ProgramData MyData db1 mdf 因为它正在被另
  • 访问 ASM Java 库中的局部变量

    我试图在插入方法时调用局部变量 到目前为止 我能够获取节点中的局部变量 但在实际访问任何内容时遇到困难 这是我的插入内容 非常杂乱 我已经这样做了一段时间 设计不再是我的首要任务 不久前 final ClassReader reader n
  • 可以在catkin工作区之外创建ROS节点吗?

    我想在catkin工作区之外创建一个ROS发布者节点 可以创建吗 当然可以 像对待任何其他 cpp 库或 python 包一样对待 ROS 在Python中你必须保留PYTHONPATH环境变量指向ros包 opt ros kinetic
  • ios - 应用程序关闭时本地通知不更新徽章号码

    我注意到 当 iOS 设备中收到本地通知时 通知会显示在通知中心 但应用程序关闭时应用程序徽章编号不会更新 我需要点击通知中心的通知才能将本地推送消息传输到应用程序 这是正常行为吗 可以通过远程推送通知来解决这个问题吗 您可以利用appli
  • 如果只使用一次本地函数,那么使用它们还有什么意义吗?

    想象一下我有这样的代码 public void Foo Do bar work Do baz work Do foobar work 我意识到我可以 而且应该因为它做了不止一件事 将其重构为 public void Foo bar baz
  • 在本地运行“python manage.pysyncdb”时出错,但通过 Heroku 运行相同命令时没有错误

    我是 Heroku 和 Django Python 的新手 我希望找到我遇到的问题的答案 我一直在关注 Heroku 开发中心的入门教程 https devcenter heroku com articles django https de
  • 使用应用程序中存储的图像的本地路径将 Web 应用程序加载到 Web 视图中

    我希望能够创建一个使用 WebView 请求 url 的应用程序 从外部 Web 应用程序返回 html 和 css 引用作为实际应用程序中的资产的图像 这 想法基本上是加速一切 以便图像永远不必 被下载 这是一个简化的示例 服务器 HTM
  • 是否可以在 C++11 之前创建函数局部闭包?

    借助 C 11 我们获得了 lambda 并且可以在我们真正需要的地方 而不是在它们不真正属于的地方 即时创建函数 函子 闭包 在 C 98 03 中 创建函数局部函子 闭包的好方法如下 struct void operator int i
  • 如何修改python中的本地命名空间

    如何修改Python中函数的本地命名空间 我知道 locals 在函数内部调用时返回函数的本地命名空间 但我想做这样的事情 我有一个原因为什么我想在 f 无法访问 g 的情况下执行此操作 但给出更快一个简单的 愚蠢的例子来说明问题 def
  • 安装 ROS 时 Cmake 未检测到 boost-python

    我一直在尝试在我的 Mac 上安装 ROS 并根据不同版本的 boost 使用不同的库解决了错误 然而 似乎有一个库甚至没有检测到 boost python 这是我得到的错误 CMake Error at usr local share c
  • Magento:如何覆盖本地模块中的模型

    我试图在本地文件夹中覆盖本地文件夹中的模块 但我不知道是否可能 这就是我所做的 我创建了 local Mycompany Modulename Model Model php 我想覆盖 local Othercompany Modulena
  • 在webview android中加载本地html文件

    我正在尝试在 android 的 webview 中加载 html 文件的内容 但是 它给了我 网页不可用错误 如果我尝试使用谷歌或雅虎等网站 它们就会起作用 html文件位于src gt main gt assests gt index

随机推荐

  • Git 常用命令

    git 注 xff1a 在使用的任何的 git 命令前 xff0c 都要切换到 git 项目目录下 git init 初始化一个 git 仓库 git status 查看当前 git 仓库的状态 git add file 修改 file 文
  • 字符串查找函数strstr,strtok的详细介绍

    strstr 返回str2在str1中第一次出现的指针 xff0c 如果str2不是str1的一部分 xff0c 则返回空指针str1 xff08 简单来说就是在字符串里找子字符串 xff09 可以看到上图strstr函数找到子串后会把剩余
  • 实现Windows远程连接

    此方法不止局限于局域网内 xff0c 只要被控制端的电脑连接上了互联网 xff0c 那么在任意一个电脑上都可以连接 话不多说直接上干货 xff01 xff01 xff01 配置被控制端电脑 一 开启远程桌面访问功能 不是windwos专业版
  • Jetpack Compose 不止是一个UI框架~

    Jetpack Compose是用于构建原生Android UI的现代工具包 Jetpack Compose使用更少的代码 xff0c 强大的工具和直观的Kotlin API xff0c 简化并加速了Android上的UI开发 这是Andr
  • 父类和子类方法的调用

    由于没有找到想要的解释 xff0c 于是自己就在idea上自测来寻找答案 关于父类 xff0c 子类 xff0c 多态之间方法的调用 package 思考 public class 子类调用 public static void main
  • vector介绍与使用(C++)

    目录 一 vector的介绍 二 vector的使用 2 1构造函数 2 2vector iterator 的使用 2 3vector 空间增长问题 2 4 vector 增删查改 2 5 vector 迭代器失效问题 一 vector的介
  • 网络层——IP协议详细解读

    文章目录 IP协议1 IP协议的报文格式2 IP协议的地址管理3 IP地址的组成4 IP协议的路由选择 IP协议 之前介绍了传输层的重点协议 xff0c TCP和UDP协议 xff0c 以下将介绍网络层的重点协议IP协议 1 IP协议的报文
  • 基于opencv实现追踪物体的功能

    nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp From sztu 自动化专业的小菜鸡 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 本篇将介绍计算机视觉的物体追踪 基于py
  • PX4源码中CMakeLists.txt文件的相关含义

    在px4每个模块中 xff0c 都会引用到CMakeLists txt文件 比如 代码 px4 add module MODULE modules attitude estimator q MAIN attitude estimator q
  • 位置式Pid和增量式Pid的定义及应用

    PID算法是一个典型的闭环控制系统 P I D xff0c 比例 积分 微分 开环 xff1a 输入量对输出量没有反馈作用 xff1b 闭环 xff1a 输入量对输出量有反馈作用 位置式Pid 位置式Pid就是位置闭环控制 xff0c 位置
  • Mysql中的in和find_in_set的区别?

    1 是否使用索引 find in set xff1a 不使用索引 xff0c 是全表扫描in xff1a 使用索引 2 使用方法 在mysql中in的使用情况如下 xff08 in里面放的是常量 xff09 xff1a select fro
  • Docker 常用命令---持续更新中

    Docker xff1a Docker的三大核心概念 xff1a 镜像 容器 仓库 镜像 xff1a 类似虚拟机的镜像 用俗话说就是安装文件 容器 xff1a 类似一个轻量级的沙箱 xff0c 容器是从镜像创建应用运行实例 xff0c 可以
  • ubutu的Realsense摄像头的环境配置的报错解决(个人认为官方文档存在问题)以及官方视频流样例测试(无需摄像头)

    Realsense支持多种语言进行开发 xff0c 因为之前学过python xff0c 所以计划使用Pycharm进行相关的项目开发 xff0c 由于没带摄像头回家 xff0c 所以使用了官方的视频流进行测试 xff0c 以下是 xff3
  • launch文件

    1 launch文件 可以一次性启动多个ROS节点 实现 选定功能包右击 gt 添加 launch 文件夹 选定 launch 文件夹右击 gt 添加 launch 文件 编辑 launch 文件内容 lt launch gt lt nod
  • ROS文件系统相关命令

    1 增 catkin create pkg 自定义包名 依赖包 61 61 61 创建新的ROS功能包 sudo apt install xxx 61 61 61 安装 ROS功能包 2 删 sudo apt purge xxx 61 61
  • ros服务通信

    1 srv 61 请求 43 响应 2 不要重复添加路径 xff0c 会导致头文件寻找不到 客户端 include 34 ros ros h 34 include 34 plumbing server client AddInts h 34
  • ros常用组件

    一 TF坐标变换 transform frame frame id是被参考的坐标系 xff0c child frame id是另一个坐标系 translation代表child frame id相对于frame id的偏移量 rotatio
  • FreeRTOS学习(1)-- FreeRTOS任务创建、调度、任务间通信

    FreeRTOS学习 xff08 1 xff09 FreeRTOS任务创建 调度 任务间通信 文章目录 FreeRTOS学习 xff08 1 xff09 FreeRTOS任务创建 调度 任务间通信前言一 FreeRTOS任务状态二 Free
  • 让你秒读懂阿里云数据库架构与选型

    01 阿里云RDS的架构与规格大图 下图从高可用类型 数据可靠性 资源复用率 规格大小 规格代码等角度 xff0c 较为完整的概况了当前RDS主要的架构与规格 xff1a 从高可用区架构上 xff0c 分为单节点 xff08 基础版 xff
  • ROS teb_local_planner使用

    teb local planner则是2D导航堆栈的base local planner的插件 实现了一个在线优化的本地轨迹规划器 xff0c 用于导航和控制移动机器人 xff0c 作为ROS 导航包的插件 全局规划器生成的初始轨迹在运行时