Nav2

Overview

Nav2项目继承并发扬ROS导航栈的精神。该项目力求以安全的方式让移动机器人从A点移动到B点。Nav2也可以应用于其他应用,包括机器人导航,如下动态点跟踪,在这个过程中需要完成动态路径规划、计算电机的速度、避免障碍、恢复行为。想要更详细的了解这个项目的相关信息,比如相关项目、使用的机器人、与ROS1的对比和项目的维护者,可以参考 关于和联系[校准@首飞]

Nav2使用行为树调用模块化服务器来完成一个动作。动作可以是计算路径、控制力、恢复或任何其他与导航相关的操作。这些都是通过ROS Action服务器与行为树 (BT) 通信的独立节点。下图可以让你对Nav2的架构有一个很好的初步了解。注意: 在每个服务器中有多个控制器、规划器和恢复的插件,并且每个服务器中都有相匹配的BT插件用于机器人恢复。这可用于创建具有上下文的导航行为。如果你想看这个项目和ROS (1) 导航之间的对比,请参考 ROS到ROS2变化 [待校准@307][校准@小鱼]

提供给Nav2的TF变换希望是符合REP-105所定义的规则,对于地图来源,如果提供了一个静态的代价地图、一个BT(行为树) XML文件和任何相关的传感器数据。然后,它将提供有效的速度指令,让一个完整或非完整的机器人的电机跟随。我们目前支持主要机器人的底盘类型有 : holonomic(所有自由度都可控的), differential-drive(差速驱动的), legged(足式机器人)和 ackermann(car-like)(阿克曼) ! 我们用圆形和任意形状的机器人对它们进行SE2碰撞检查。 [校准@小鱼]

它有以下工具: [校准@小鱼]

  • 加载、提供和存储地图的地图服务器(Map Server) [校准@小鱼]

  • 在地图上确定机器人的位置 (AMCL) [校准@小鱼]

  • 规划一条从A到B的且绕过沿途障碍物的路径 (Nav2规划器) [校准@小鱼]

  • 控制机器人沿着路径前进 (Nav2控制器) [校准@小鱼]

  • 将传感器数据转换为世界代价地图(Costmap)表示 (Nav2 2D Costmap) [校准@小鱼]

  • 使用行为树构建复杂的机器人行为 (Nav2 Behavior Trees 和 BT Navigator) [校准@小鱼]

  • 计算发生故障时的脱困行为 (Nav2 Recoveries) [校准@小鱼]

  • 跟随连续路标点 (Nav2路标点追踪器) [校准@首飞]

  • 管理服务器的生命周期和看门狗 (Nav2生命周期管理) [校准@小鱼]

  • 使用自定义的算法和行为插件 (Nav2 Core) [校准@小鱼]

Navigation2框架图     `[校准@小鱼] <http://dev.nav2.fishros.com/calibpage/#/home?msgid=1510>`_

我们还提供一套启动插件让你去。NavFn计算最短路径对目标姿势使用A*或Dijkstra的算法。DWB将使用DWA算法计算控制努力跟随路径,几个插件的轨迹批评者。有回收行为包括: 等待,旋转,清除costmaps,备份。有一组BT插件调用这些服务器和计算条件。最后,有一组Rviz插件交互堆栈控制生命周期。所有用户报告插件可以查找 导航插件[校准@小鱼]

本文档旨在通过Turtlebot3(TB3)为例,教你如何安装和使用Nav2,以及如何在其他自定义的机器人上调节参数以实现更好性能,还可以通过自定义插件来实现更加底层和高级的操作。 [校准@小鱼]

引用

如果你使用了导航框架这个仓库中的算法,或其中的想法,请在你的论文中引用这项工作! [校准@小鱼]

S. Macenski, F. Martín, R. White, J. Clavero. The Marathon 2: A Navigation System. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2020.

IROS2020关于Nav2马拉松实验讨论: [校准@小鱼]

@InProceedings{macenski2020marathon2,
author = {Macenski, Steven and Martin, Francisco and White, Ruffin and Ginés Clavero, Jonatan},
title = {The Marathon 2: A Navigation System},
booktitle = {2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
year = {2020}
}

如果使用我们在VSLAM上的工作和正式比较服务机器人的需要,请引用本文: [校准@小鱼]

A.Merzlyakov,S。Macenski。 A Comparison of Modern General-Purpose Visual SLAM Approaches 。IEEE/RSJ国际会议智能机器人与系统 (IROS),2021。 [校准@小鱼]

@InProceedings{vslamComparison2021,
author = {Merzlyakov, Alexey and Macenski, Steven},
title = {A Comparison of Modern General-Purpose Visual SLAM Approaches},
booktitle = {2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
year = {2021}
}

示例

下面是一个TB3在小休息室导航的例子。 [校准@小鱼]