ROS到ROS2变化 [待校准@307]

move_base 已被分割成多个组件。navigation 2不是一个单一的单体状态机,而是利用行动服务器(action server)和ROS 2的低延迟、可靠的通信来分离概念。行为树被用来协调这些任务。这允许Navigation 2具有高度可配置的导航行为,而无需通过在行为树xml文件中重新排列任务进行编程。 [校准@混沌无形]

nav2_bt_navigator*取代了顶层的``move_base`` ,用一个*Action*接口来完成基于树的动作模型的导航任务。它使用*Behavior Trees,使其有可能拥有更复杂的状态机,并作为额外的*Action Servers*加入恢复行为。这些行为树是可配置的XMLs,并且我们提供了几个上手示例。 [校准@混沌无形]

规划、恢复和控制器服务器也是BT导航器可以调用的行动服务器,以进行计算。所有3个服务器都可以托管许多算法的插件,并单独从导航行为树中调用特定行为。提供的默认插件是从ROS 1移植过来的,即:DWB、NavFn,以及类似的恢复,如旋转和清除成本地图。还增加了一个新的等待固定时间的恢复。这些服务器通过其动作服务器从BT navigator调用,以计算结果或完成任务。状态由BT导航器行为树维护。 [校准@混沌无形]

所有这些变化使得在启动/运行时用任何其他实现相同接口的算法替换这些节点成为可能。更多细节见每个软件包的README.md。 [校准@混沌无形]

Move Base -> Navigation2概述 `[校准@混沌无形] <http://dev.nav2.fishros.com/calibpage/#/home?msgid=312>`_

注: nav2_simple_navigator 已不复存在,已被 nav2_bt_navigator 取代。 [待校准@313]

总结: ** [待校准@314]

移植包: [待校准@315]

新包: [待校准@324]

  • nav2_bt_navigator: 替换 move_base 状态机 [待校准@325]

  • Nav2_lifeycle_manager: 处理服务器程序生命周期 [待校准@326]

  • nav2_waypoint_follower: 可以通过采取许多航点来执行一个复杂的任务 [校准@混沌无形]

  • nav2_system_tests: 一套用于CI的集成测试和模拟的基本教程 [校准@混沌无形]

  • nav2_rviz_plugins: 用于控制Navigation2服务器、命令、取消和导航的rviz插件 [校准@混沌无形]

  • nav2_experimental: 深度强化学习控制器的实验性(和不完整)工作 [校准@混沌无形]

  • navigation2_behavior_trees: 行为树库的包装器,用于调用ROS动作服务器 [待校准@331]