Choregraphe开发NAO机器人时多应用切换后返回Master主应用方法咨询
NAO机器人Choregraphe子应用运行结束返回主应用解决方案
可行实现方案共有两种,可根据你的项目场景选择:
方案1:沿用原有^switchFocus调用逻辑,仅修改子应用
- 操作方法:打开所有子应用的Choregraphe项目,在行为流程的最后一个执行节点后,新增对话指令节点或Python脚本节点,写入返回Master主应用的切换指令:
^switchFocus(你的Master应用完整行为ID)
示例:若你的Master主应用行为ID为
master_launcher-12345/behavior_1,则指令为^switchFocus(master_launcher-12345/behavior_1)
- 优缺点:改造成本极低,适合子应用数量较少的场景;缺点是若子应用运行过程中异常崩溃,没有执行到末尾的返回指令,就无法自动切回主应用。
方案2:替换启动指令,无需修改任何子应用代码(更推荐)
- 操作方法:将Master主应用中原本的
^switchFocus启动指令,直接替换为^runBehavior指令,示例:
原指令:^switchFocus(traffic_lights-7xxxx/behavior_1)
替换为:^runBehavior(traffic_lights-7xxxx/behavior_1) - 实现原理:
^runBehavior指令不会停止当前Master主应用的进程,仅会挂起主应用的运行上下文,等待子应用完全结束(包含正常结束和异常退出)后,自动恢复主应用的运行,无需额外添加返回逻辑。 - 优缺点:不需要逐个修改子应用,容错率更高,完全适配你多个子应用统一启动管理的需求。
补充注意事项
- 若你需要Master主应用切回时重置状态,可在
^runBehavior调用节点后添加对应的状态重置逻辑即可。 - 所有行为ID需要和Choregraphe打包上传后的ID保持一致,避免调用失败。
内容的提问来源于stack exchange,提问作者Cain
相关产品推荐
相关产品推荐

