当前位置: 首页 > news >正文

【ROS】局部规划器概述

【ROS】局部规划器概述

  • 前言
  • 局部规划器的种类
  • 如何使用局部规划器

前言

本文介绍 ROS 导航系统中非常重要的一部分——局部规划器(local_planner

全局规划器只是给出一条大致的路径,但机器人具体怎么走怎么避开障碍物,是由局部规划器来决定的。它会根据机器人当前的位置、障碍物信息等,实时计算出速度指令(cmd_vel),控制机器人行动。

如果局部规划器配置不当,机器人可能无法沿着全局路径前进,或者在遇到障碍物时无法正确避让。

它的核心作用包括:

  • 实时生成控制指令,控制机器人运动
  • 动态避障,处理临时出现的障碍物

可以把局部规划器理解为导航过程中的“司机”,负责开车。

我的环境:
本教程使用的环境是:实体 ROS 小车,Ubuntu 18.04,ROS1 Melodic

参考资料:

  • ROS导航系统 | 局部规划器 | Local Planner

局部规划器的种类

ROS 中有多种局部规划器可供选择,常见的包括:

  • TrajectoryPlanner(官方默认,内部为 DWA 算法)
  • DWAPlanner(官方推荐,结构更清晰)
  • EbandPlanner(第三方)
  • TEBPlanner(第三方,性能更强)

局部规划器对比图

此外,也可以根据特定任务需求,自行开发局部规划器。但从零开发难度较大,建议先尝试现有开源的规划器,选择效果较好的进行微调或基于其代码进行优化开发。

说明:

  • Trajectory Planner 是 ROS 早期的默认局部规划器,内部基于 DWA 算法,但代码维护较差,因此后来又推出了结构更清晰的 DWA Planner

  • Eband PlannerTEBP lanner 原理相似,但 TEB Planner 引入了时间维度的优化,支持代价函数插件,具备更好的运动平滑性和执行效率。

✅ 实践中,使用最多的局部规划器是 DWA PlannerTEB Planner


如何使用局部规划器

使用步骤如下:

  1. 编写对应的参数文件,如 my_teb_planner.yaml,根据实际情况调整参数
  2. launch 启动文件中加载该参数文件,使 move_base 能正确调用所配置的规划器
  3. move_base 节点中指定局部规划器的名称,例如 base_local_planner: teb_local_planner/TebLocalPlannerROS

相关文章:

  • 抽象的https原理简介
  • React JSX 语法深度解析与最佳实践
  • 第九节:React HooksReact 18+新特性-React 19的use钩子如何简化异步操作?
  • React 开放封闭原则详解,构建可扩展的应用
  • React Native 0.79 稳定版发布,更快的工具、更多改进
  • 6、事件处理法典:魔杖交互艺术——React 19 交互实现
  • MySQL数据库安装配置详细教程
  • AUTOSAR图解==>AUTOSAR_SWS_DefaultErrorTracer
  • 网络层IP协议知识大梳理
  • 探寻Gson解析遇到不存在键值时引发的Kotlin的空指针异常的原因
  • docker Windows 存放位置
  • k8s 手动续订证书
  • LoRA个关键超参数:`LoRA_rank`(通常简称为 `rank` 或 `r`)和 `LoRA_alpha`(通常简称为 `alpha`)
  • 从EOF到REOF:如何用旋转经验正交函数提升时空数据分析精度?
  • 万向死锁的发生
  • k8s 下 java 服务出现 OOM 后获取 dump 文件
  • pytest自动化中关于使用fixture是否影响用例的独立性
  • 基于PAI+专属网关+私网连接:构建全链路 Deepseek 云上私有化部署与模型调用架构
  • 【JavaEE初阶】多线程重点知识以及常考的面试题-多线程进阶(三)
  • mvccc