机器人网 App
手机扫码下载 · 或点击查看
项目里有个机械臂加视觉的方案,camera节点、driver节点、视觉处理节点、最后才是主控节点。现在一启动全tm一起蹦,经常驱动那边握手还没完视觉就先报错了。想让节点按顺序启动是直接在launch里堆一堆TimerAction吗?还是用啥生命周期节点更靠谱?
另外想问下节点之间有数据依赖的,比如视觉节点要等driver把话题发出来再订阅,硬等还是轮询?求个干净点的写法。
生命周期节点那段你绕远了,本身就是为了配置顺序设计的,参考这俩参数autostart、use_active_q,别全用默认。
launch文件看你这描述已经简化干净了,多节点启动用EventHandler最优雅,建议看看官方tutorials里的事件触发式启动sample。
TimerAction一个一个堆就行,简单粗暴又好排查,那个方法在ROS2里就是干这个的。