生命周期 Manager
Source code on Github.
生命周期管理器模块实现了以确定性方式处理堆栈生命周期转换状态的方法。 它将接收一组有序节点,逐个转换为配置并激活状态以运行堆栈。 然后,它将以相反的顺序将堆栈降至最终状态。 它还将与服务器创建绑定连接,以确保它们仍然处于运行状态,并且如果有任何节点无响应或崩溃,则转换所有节点。
参数
- node_names:
Type
Default
vector<string>
N/A
- Description
通过生命周期转换调出的节点名称的有序列表。
- autostart:
Type
Default
bool
false
- Description
是否在启动时将节点转换为活动状态。
- bond_timeout:
Type
Default
double
4.0
- Description
如果服务器无响应,则此管理器的所有生命周期节点向下转换的超时时间(以秒为单位)。设置为“0”以停用。建议对于所有本地节点发现,该超时时间始终大于 0.3 秒。注意:如果服务器干净退出,管理器将立即收到通知。
- attempt_respawn_reconnection:
Type
Default
bool
true
- Description
是否尝试重新连接到宕机的服务器,大概是因为 respawn 设置为“true”以重新创建崩溃的节点。虽然默认为“true”,但除非在启动文件中将 respawn 设置为 true 或监视系统将从外部启动服务器,否则不会进行重新连接。
- bond_respawn_max_duration:
Type
Default
double
10.0
- Description
当服务器崩溃或无响应时,生命周期管理器将关闭所有节点以确保安全。这是生命周期管理器尝试重新连接故障服务器以恢复和重新激活系统的持续时间。如果过了这个时间,它将停止尝试,并要求在手动解决问题后手动重新激活。单位:秒。
Example
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