Dashing to Eloquent

从 ROS 2 Dashing 迁移到 Eloquent,增加了许多稳定性改进,我们不会在此具体讨论。

新软件包

Navigation2 现在包含一个新软件包“nav2_waypoint_follower”。 航点跟随器是一个动作服务器,它将接收要跟随的航点列表并按顺序跟随它们。 有一个参数“stop_on_failure”,用于指示机器人在单个航点失败时是否应继续前往下一个航点, 还是将失败返回给动作客户端。 航点跟随器也是一个参考应用程序,用于说明如何使用 Navigation2 动作服务器完成基本的自主任务。

Navigation2 现在支持用于控制和 SLAM 的新算法。 定时弹性带 (TEB) 控制器已实现,可以在此处找到 <https://github.com/rst-tu-dortmund/teb_local_planner>`_。 它是自己的控制器插件,可以代替 DWB 控制器使用。 Nav2 还支持 SLAM Toolbox 作为 ROS 2 的默认 SLAM 实现。 这取代了 Cartographer 的使用。

新插件

Eloquent 将 pluginlib 插件重新引入导航堆栈。 nav2_core 定义用于实现控制器、规划器、恢复和目标检查器插件的插件头接口。

所有算法(NavFn、DWB、恢复)都作为插件接口添加,并创建了服务器的通用包。 nav2_planner 是用于规划的操作服务器,它托管规划器的插件。 nav2_controller 是用于控制器的操作服务器,它托管控制器的插件。 nav2_recovery 是用于恢复的操作服务器,它托管用于恢复的插件。

添加了新的恢复插件,包括备份,如果没有碰撞,它将占用一段距离进行备份。 此外,还添加了等待恢复,它将等待一段可配置的时间,然后再尝试再次导航。

此插件对于时间相关的障碍物或暂停导航以使场景变得不那么动态特别有用。

添加了许多新的行为树节点。这些行为树节点在行为树引擎中是硬编码的。

行为树 cpp v3 支持插件,将在下一版本中进行转换。