生命周期管理器

在Github上的源代码

生命周期管理器模块以确定性方式实现了处理堆栈生命周期转换状态的方法。它将接收一组有序节点,逐个将它们转换为配置和激活状态以运行堆栈。然后,它将按相反的顺序将堆栈降低到最终状态。它还将与服务器建立连接,以确保它们仍然运行,并在任何非响应或崩溃的节点时降低所有节点。

参数

节点名称

类型

默认

字符串向量

N/A

描述

通过生命周期转换引导节点名称的有序列表。

自动启动

类型

默认

布尔值

false

描述

是否在启动时将节点转换为活动状态。

绑定超时

类型

默认

双精度

4.0

描述

如果服务器无响应,此管理器将超时关闭所有生命周期节点的时间(以秒为单位)。设置为``0``以停用。建议始终大于0.3秒,以用于所有本地节点发现。注意:如果服务器正常退出,管理器将立即收到通知。

尝试重新连接重生

类型

默认

布尔值

true

描述

是否尝试重新连接到关闭的服务器,假设是因为重新创建崩溃的节点而将其重新生成。默认为``true``,但只有在启动文件中将 respawn 设置为 true,或者监控系统将在外部启动服务器时,才会进行重新连接。

bond_respawn_max_duration

类型

默认

双精度

10.0

描述

当服务器崩溃或变为无响应状态时,生命周期管理器将关闭所有节点以确保安全。这是生命周期管理器尝试与故障服务器重新连接以恢复并重新激活系统的持续时间。如果超过此时间,将停止尝试,并需要在手动解决问题后手动重新激活。单位:秒。

示例

lifecycle_manager:
  ros__parameters:
    autostart: true
    node_names: ['controller_server', 'planner_server', 'behavior_server', 'bt_navigator', 'waypoint_follower']
    bond_timeout: 4.0
    attempt_respawn_reconnection: true
    bond_respawn_max_duration: 10.0