ROS2生命周期节点是利用状态机构成的,状态直接的转换依靠ROS2的通信机制完成。
生命周期节点主要有以下几个状态
未配置状态(Unconfigured) ,节点新建时的第一个状态,并在出现错误后结束。没有执行,其主要目的是错误恢复。
非活跃状态(Inactivate),节点持有资源(发布者、监听者等)和配置(参数、内部变量),但什么也不做。 没有执行,没有传输,传入的数据可以保存在缓冲区中,但不能读取, 主要目的是允许重新配置。
活跃状态(Activate), 正常执行。
已完成状态(Finalized),节点已被销毁。
具体的状态之间转换关系请参考下图。