我一直认为navigation 功能包集中的 move_base就是控制小车运动。
move_base
包是一个高级别的导航功能包,可以将目标位姿传递给控制节点,由控制节点控制小车移动,以达到目标位置。
具体来说,move_base
包的核心功能是根据当前机器人的位置、目标位置和地图信息来计算机器人的运动路径,然后将运动路径转化为速度控制命令,通过ROS消息发布到控制节点
先看一下导航的结构图
这个包里都有什么呢?
- 接收机器人的目标位置;
- 从机器人当前位置开始规划一条全局路径到目标位置;
- 将全局路径分解成一系列局部路径点,使机器人沿着这些点运动;
- 生成速度指令,将机器人导航到目标位置。
move_base
包含以下几个组件:
- 全局规划器(global planner):根据机器人的起始位置和目标位置,在地图上进行全局路径规划,生成一条连接起始点和目标点的路径;
- 局部规划器(local planner):根据机器人在全局路径上的位置,生成一系列局部路径点,并控制机器人运动,使其沿着局部路径点运动;
- costmap:提供机器人周围环境的代价地图,包括静态障碍物、动态障碍物和不可行驶区域等;
- 动态调整器(recovery behavior):当机器人遇到无法到达目标的情况时,执行一系列的恢复动作,尝试让机器人重新恢复到可行的状态。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!