ROS2与Navigation2入门教程-Navigation 2概述
说明:
- 介绍Navigation 2
Navigation 2概述
Navigation 2(以下简称“Nav2”)项目是ROS导航(Navigation)软件堆栈的精神继任者。该项目旨在寻找一种安全的方式让移动机器人从A点移动到B点。Nav2也可以应用于其他涉及机器人导航的应用,例如跟踪动态点。为此,Nav2将会完成动态路径规划、计算电机速度、避开障碍物和结构恢复行为。要了解Nav2项目相关项目、使用Nav2的机器人、ROS 1对比、维护者等的更多信息,请参见其“关于和联系方式”网页。
Nav2使用行为树(BT,Behavior Trees)调用模块化服务器来完成一个动作。动作可以是计算路径、控制工作(control efforts)、恢复或任何其他与导航相关的动作。这些都是通过ROS动作服务器与行为树(BT)进行通信的独立节点。下图将让您对Nav2的结构有一个很好的初步了解。请注意:在每个控制器、规划器和恢复器服务器中可以有多个插件,并具有与之匹配的BT插件。这可以用来创建基于具体环境(上下文)的导航行为。若想查看Nav2项目与 ROS (1) Navigation之间的对比,请参阅“ROS到ROS 2 的导航(Navigation)”。
Nav2的预期输入是符合REP-105的TF坐标变换、使用静态成本地图图层的地图源、BT XML文件和任何相关的传感器数据源。这样Nav2就可以为完整性约束机器人或非完整性约束机器人的电机提供有效的速度指令以进行跟随。目前Nav2支持所有的主要机器人类型:完整性约束机器人、差分驱动机器人、腿式机器人和阿克曼(类汽车)机器人等基本类型!Nav2同时使用用于SE2碰撞检测的圆形和任意形状机器人为这些基本类型的机器人提供独特的支持。
Nav2具有下列工具:
加载、提供和存储地图的工具(地图服务器Map Server)
在地图上定位机器人的工具 (AMCL)
避开障碍物从A点移动到B点的路径规划工具(Nav2 Planner)
跟随路径过程中控制机器人的工具(Nav2 Controller)
将传感器数据转换为机器人世界中的成本地图表达的工具(Nav2 Costmap 2D)
使用行为树构建复杂机器人行为的工具(Nav2 行为树和BT Navigator)
发生故障时计算恢复行为的工具(Nav2 Recoveries)
跟随顺序航点的工具(Nav2 Waypoint Follower)
管理服务器生命周期的工具和看门狗(Nav2 Lifecycle Manager)
启用用户自定义算法和行为的插件(Nav2 Core)
Nav2还提供了一组启动插件来帮助您进行机器人导航。NavFn使用A*或Dijkstra算法计算从一个位置到达目标位置的最短路径。DWB会使用DWA算法来计算跟踪路径的控制工作,并通过其自身的几个插件计算轨迹评分(critics)。恢复行为包括:等待、旋转、清除成本地图以及后退。有一组行为树(BT)插件用于调用这些服务器和计算条件。最后,还有一组用于与Nav2软件堆栈交互和控制生命周期的Rviz插件。可以在“导航插件(Navigation Plugins)”网页上找到用户报告的全部插件列表。
本Nav2系列教程包括如何安装Nav2、以Turtlebot 3(TB3)为示例机器人使用Nav2的方法、如何为其他机器人进行Nav2自定义、调整行为以获得更佳性能以及自定义内部结构以获得高级软件堆栈等内容。
- 相关视频
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号