夜雨聆风学习资料网

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分钟前,

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料