ARTICLE · 1284830
Nav2 源码(2): LifecycleManager 如何处理
Nav2 源码(2): LifecycleManager 如何处理
我最近啃 Nav2 源码,发现 LifecycleManager 启动节点这事儿,底层全靠一套 RPC 调用串起来。
每个被管理的节点(比如 planner_server),一出生就会自带几个核心服务。其中最关键的就俩:一个叫 change_state,专门负责切状态;另一个叫 get_state,用来查当前状态。
LifecycleManager 想启动谁,就直接去调它的 change_state 服务。比如发个配置请求过去,节点底层的状态机校验通过后,就会乖乖执行 on_configure 回调。等它跑完返回成功,管理器才会放行,接着去激活下一个节点。
说白了,命令行敲的 ros2 lifecycle set,底层就是发的这些服务请求。搞清这条链路,以后节点卡在哪个状态起不来,直接去查服务和状态就能对症下药。
原文Nav2 源码(2): LifecycleManager 如何处理管理节点的启动与状态切换
北京,15分钟前,















































































