我一直认为navigation 功能包集中的 move_base就是控制小车运动。
move_base包是一个高级别的导航功能包,可以将目标位姿传递给控制节点,由控制节点控制小车移动,以达到目标位置。
具体来说,move_base包的核心功能是根据当前机器人的位置、目标位置和地图信息来计算机器人的运动路径,然后将运动路径转化为速度控制命令,通过ROS消息发布到控制节点
先看一下导航的结构图

这个包里都有什么呢?
- 接收机器人的目标位置;
- 从机器人当前位置开始规划一条全局路径到目标位置;
- 将全局路径分解成一系列局部路径点,使机器人沿着这些点运动;
- 生成速度指令,将机器人导航到目标位置。
move_base 包含以下几个组件:
- 全局规划器(global planner):根据机器人的起始位置和目标位置,在地图上进行全局路径规划,生成一条连接起始点和目标点的路径;
- 局部规划器(local planner):根据机器人在全局路径上的位置,生成一系列局部路径点,并控制机器人运动,使其沿着局部路径点运动;
- costmap:提供机器人周围环境的代价地图,包括静态障碍物、动态障碍物和不可行驶区域等;
- 动态调整器(recovery behavior):当机器人遇到无法到达目标的情况时,执行一系列的恢复动作,尝试让机器人重新恢复到可行的状态。
浙公网安备 33010602011771号