datetime:2023/09/19 14:02
author:nzb
该项目来源于大佬的动手学ROS2
3. 生命周期节点
以前在ROS1中,节点的启动顺序无法被控制,这对整个机器人系统来说是一件非常危险和不可控的事,比如说机器人传感器还未启动就开始进行数据的读取了。
在ROS2中提出了生命周期节点的概念,通过生命周期来控制和检测节点状态。
1.生命周期节点介绍
ROS2生命周期节点是利用状态机构成的,状态直接的转换依靠ROS2的通信机制完成。
生命周期节点主要有以下几个状态
- 未配置状态(Unconfigured) ,节点开始时的第一个状态,并在出现错误后结束。没有执行,其主要目的是错误恢复。
- 非活跃状态(Inactivate),节点持有资源(发布者、监听者等)和配置(参数、内部变量),但什么也不做。 没有执行,没有传输,传入的数据可以保存在缓冲区中,但不能读取, 主要目的是允许重新配置。
- 活跃状态(Activate), 正常执行。
- 已完成状态(Finalized),节点已被销毁。
具体的状态之间转换关系请参考下图。
参考文章