Eloquent到Foxy [校准@小鱼]

从ROS2Eloquent到Foxy,增加了一些稳定性改进,我们在此不具体讨论。然而,我们将特别提到终端噪声的降低。TF2转换超时错误和启动时的警告已被大量删除或限制,以便更容易处理。此外,在costmap 2d中解决了导致消息被丢弃的消息过滤器填充。 [待校准@730]

综述 [待校准@731]

生命周期管理器分成2独特的生命周期管理。他们是 navigation_lifecycle_managerlocalization_lifecycle_manager 。这样,过程自己经理允许用户切换SLAM定位没有影响导航。它也降低了冗余代码 nav2_bringup[待校准@732]

生命周期管理器现在还包含与每个生命周期服务器的 Bond 连接。这意味着,如果服务器崩溃或退出,生命周期管理器将不断检查并向下转换其生命周期节点以确保安全。这在运行时充当看门狗,以补充生命周期管理器从活动状态上下的过渡。见 this PR for details[待校准@733]

修复BT导航仪添加删除罕见问题可能崩溃由于异步问题。因此,行为树创建每个导航请求而不是重置现有树。创建此树添加少量延迟。建议减少这种延迟将考虑下一个版本。 [待校准@734]

服务器更新 [待校准@735]

所有插件服务器 (控制器、planner、恢复) 现在都支持使用多个插件。这可以通过加载插件映射来完成,将插件的名称映射到其预期用例。每个服务器定义一个参数,其中可以定义要加载的插件的名称列表。 [待校准@736]

服务器名称 [待校准@737]

插件参数 [待校准@738]

控制器服务器 [待校准@739]

progress_checker_plugin [待校准@740]

控制器服务器 [待校准@739]

goal_checker_plugin [待校准@741]

控制器服务器 [待校准@739]

controller_plugins [待校准@742]

规划器服务器 [待校准@743]

planner_plugins [待校准@744]

恢复服务器 [待校准@745]

recovery_plugins [待校准@746]

代价地图节点 [待校准@747]

插件 [待校准@748]

要映射到特定名称的插件类型必须使用插件命名空间中的 plugin 参数为服务器插件列表中定义的每个名称定义。插件参数列表中的每个名称都应定义 plugin 参数。 [待校准@749]

实例: controller_server 定义参数 controller_plugins 在列表插件名称可以定义: [待校准@750]

controller_server:
  ros__parameters:
    controller_plugins: ["FollowPath", "DynamicFollowPath"]
    FollowPath:
      plugin: "dwb_core/DWBLocalPlanner"
      max_vel_x: 0.26
    DynamicFollowPath:
      plugin: "teb_local_planner/TEBLocalPlanner"
      max_vel_x: 0.5

服务器命名空间中的``FollowPath`` controller is of type dwb_local_planner/DWBLocalPlanner and DynamicFollowPath of type teb_local_planner/TEBLocalPlanner. Each plugin will load the parameters in their namespace, e.g. FollowPath.max_vel_x,而不是全局。这将允许具有不同参数的相同类型的多个插件,并减少冲突的参数名称。 [待校准@751]

DWB包含新参数,作为与ROS 1更新相关的更新, see here for more information 。此外,控制器和planner接口在初始化时更新为包括 “std::string名称” 参数。这被添加到接口中,以允许插件知道它应该加载其参数的命名空间。例如,控制器要找到参数 FollowPath.max_vel_x ,必须给出它的名称, FollowPath 才能得到这个参数。所有插件都应在其给定名称的命名空间中查找参数。 [待校准@752]

New Plugins

添加了许多新的行为树节点。这些行为树节点现在BT插件动态加载运行时使用行为树cpp v3.默认行为树升级停止恢复行为和触发重新当导航目标抢占。看到 nav2_behavior_tree 完整列表,或 导航插件 当前列表行为树插件及其说明。这些插件设置为默认在 nav2_bt_navigator 但可能覆盖 bt_plugins 参数包括特定插件。 [待校准@753]

原始GitHub门票: [待校准@754]

地图服务器重新工作 [待校准@765]

这个``map_saver`` was re-worked and divided into 2 parts: CLI and server. CLI part is a command-line tool that listens incoming map topic, saves map once into a file and finishes its work. This part is remained to be almost untouched: CLI executable was renamed from map_saver to map_saver_cli without changing its functionality. Server is a new part. It spins in the background and can be used to save map continuously through a save_map service。每个服务请求试着听传入映射主题,收到消息从它写获得地图文件。 [待校准@766]

这个``map_server`` was dramatically simplified and cleaned-up. OccGridLoader was merged with MapServer class as it is intended to work only with one OccupancyGrid type信息在可预见的未来。 [待校准@767]

地图服务器现在有新 map_io 动态库。所有功能保存/加载 OccupancyGrid 消息从 map_servermap_saver 这里。这些功能可以轻松调用任何部分外部ROS 2码即使地图服务器节点未启动。 [待校准@768]

这个``map_loader`` was completely removed from nav2_util. All its functionality already present in map_io.请在您的代码中使用它。 [待校准@769]

更多信息请参考 original GitHub ticketMap Server README[待校准@770]

新粒子滤波消息 [待校准@771]

添加了用于粒子云的新粒子过滤器消息,以包括粒子权重及其姿势。 nav2_msgs/Particle 在粒子云中定义了一个具有姿态和重量的单个粒子。 nav2_msgs/ParticleCloud 定义了一组粒子,每个粒子都有一个姿势和一个重量。 [待校准@772]

AMCL now publishes its particle cloud as a nav2_msgs/ParticleCloud instead of a geometry_msgs/PoseArray. [待校准@773]

See here for more information.

选择行为树每一个导航动作中 [待校准@775]

参数``NavigateToPose`` 行动现在允许选择行动请求行为树使用 bt_navigator 进行导航行动 string behavior_tree 领域。此字段指示绝对路径的xml文件将用于使用开展行动。如果未指定文件,此字段空,默认行为树中指定 default_bt_xml_filename parameter 将使用。 [待校准@776]

这个功能已经在 the ticket #1780, and carried out in the pull request #1784 中讨论过了。 [待校准@777]

后续功能 [待校准@778]

增加了一种新的行为树 followpoint.xml 。该行为树使机器人跟随动态生成的点,与目标保持一定距离。这可以用于移动操作后的目标。 [待校准@779]

这个功能已经在 the ticket #1660, and carried out in the pull request #1859 中讨论过了。 [待校准@780]

新的代价地图层 [待校准@781]

距离传感器costmap尚未作为 nav2_costmap_2d::RangeSensorLayer". It uses the same probabilistic model as the ROS1 层以及许多相同的接口移植到navigation2。关于参数的文档已被添加到文档/参数和navigation.ros.org的 Configuration Guide 下。 [待校准@782]