【Nav2中文网】十一、迁移指南 (一)Dashing到Eloquent

导航2在不同发行版本之间的迁移指南。

Dashing到Eloquent [校准@haisenzeng]

从ROS2 Dashing到Eloquent,增加了一些稳定性改进,在此将不具体讨论。 [校准@haisenzeng]

新软件包 [校准@haisenzeng]

Navigation2 项目现在包括一个新的 nav2_waypoint_follower 软件包。该软件包是一个动作服务器,它将接收一系列的航路点并按顺序跟踪它们。参数 `stop_on_failure``指在单个航点出现故障时,机器人是否应该继续到下一个航点,或者将故障返回给动作客户端 。waypoint follower软件包也可以作为一个如何使用Navigation2动作服务器来完成基本的自主任务的参考应用程序。 [校准@haisenzeng]

Navigation2现在支持控制和SLAM的新算法。比如Timed-Elastic Band(TEB) 控制器已经实现 在这里可以查阅 。它是自己的控制器插件,可以代替DWB控制器使用。Nav2还支持 SLAM 工具箱作为 ROS 2的默认 SLAM 实现。这取代了制图员(Cartographer)的使用。 [校准@haisenzeng]

New Plugins

Eloquent介绍回到pluginlib插件导航堆栈。 nav2_core 定义插件头接口用于实现控制器、规划器、恢复和目标检查器等插件。所有算法 (NavFn,DWB,recoveries) 都作为插件接口添加并且创建了服务器的通用包。 nav2_planner 是一个用于计划的动作服务器,它为规划器提供一个插件。 nav2_controller 是控制器的动作服务器,为控制器提供一个插件。 nav2_recovery 一个用于恢复的动作服务器,它包含一个恢复插件。 [校准@haisenzeng]

增加了新的恢复插件,包括备份,如果没有碰撞,备份需要一段距离。添加了等待恢复,它将等待一段可配置的时间后再次导航。这个插件特别有助于时间依赖性的障碍物或暂停导航,使场景变得不那么动态。 [校准@haisenzeng]

添加了许多新的行为树节点。这些行为树节点在行为树引擎中进行硬编码。行为树cpp v3支持插件,并将在下一个版本中进行转换。 [待校准@723]

导航2架构变化 [待校准@724]

这个 nav2_world_model 包装被移除。单个 nav2_plannernav2_controller 服务器现在托管它们相关的成本图。这样做是为了减少网络流量并确保系统安全关键要素的最新信息。如上所述,插件被引入到堆栈中,这些服务器每个主机插件都用于导航、控制和成本映射层。 [待校准@725]

地图服务器基本上被重构,但外部API保持不变。它现在使用SDL库来加载图像。 [待校准@726]

基于TF的定位现在用于堆栈中任何地方的姿态估计。之前,导航堆栈的一些元素只是从 /amcl_pose 主题以不规则的速度发布更新了它的姿态。这显然是低准确度和高延迟。现在,所有定位都基于从全局框架到机器人框架的TF树。 [待校准@727]

在Eloquent之前,没有可用的ROS 2动作服务器和客户端。相反,导航2使用了一个我们称为任务的接口。Eloquent现在包含操作,并且创建了一个简单的操作服务器界面,该界面现在在整个堆栈中使用。任务被删除。 [待校准@728]

  • 本文遵循知识共享协议,禁止未授权商用转载

猜你喜欢

转载自blog.csdn.net/qq_27865227/article/details/124377063