Eloquent到Foxy [校准@小鱼]
从ROS2Eloquent到Foxy,增加了一些稳定性改进,我们在此不具体讨论。然而,我们将特别提到终端噪声的降低。TF2转换超时错误和启动时的警告已被大量删除或限制,以便更容易处理。此外,在costmap 2d中解决了导致消息被丢弃的消息过滤器填充。 [待校准@730]
综述 [待校准@731]
生命周期管理器分成2独特的生命周期管理。他们是 navigation_lifecycle_manager
和 localization_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_server
和 map_saver
这里。这些功能可以轻松调用任何部分外部ROS 2码即使地图服务器节点未启动。 [待校准@768]
这个``map_loader`` was completely removed from nav2_util
. All its functionality already present in map_io
.请在您的代码中使用它。 [待校准@769]
更多信息请参考 original GitHub ticket 和 Map 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]
后续功能 [待校准@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]