我为NAOv6(nao_main_behavior_V2)创建了一个主要行为,该行为应在启动时执行。它将机器人语言设置为德语,激活NAO的一些LED指示灯,并等待我触摸他的头部传感器以激活另一种名为Manual_Mode的行为。
每次我启动NAO时,他都会执行主要行为,但是一旦我触摸他的头部传感器以激活其他行为,他就会停止。使用编排,我可以找到以下错误消息:
[ERROR] behavior.box:onInput_onStart:16 _Behavior__nao_main_behavior_v28d046fMain2726901504:/错误! Manual_Mode_12:_Behavior__nao_main_behavior_v28d046fMain2726901504:/ Manual Mode_29:ALBehaviorManager :: runBehavior Box _Behavior__nao_main_behavior_v28d046fManualMode2716269632:/ Speech Reco。 Ger_1失败,并出现以下错误:追溯(最近一次调用最近):文件“ /opt/aldebaran/lib/python2.7/site-packages/albehavior.py”,第120行,在_safeCallOfUserMethod func()中,文件“”,第55行,位于onInput_onStart RuntimeError:ALSpeechRecognition :: pushContexts AsrHybridNuance :: xPushContexts中。您需要停止或暂停ASR引擎才能进行此调用。
Manual_Mode行为访问语音识别,因此我可以说命令,但是我从不访问任何与语音识别有关的内容。
使用Choreograph手动启动(或重新启动)行为就可以了,一切都按预期进行,我没有收到任何错误。
我尝试在启动期间使用第三种行为来启动Main_Behavior,但得到的结果相同。
该行为最初是为NAOv5编写的,并且没有任何问题。
答案 0 :(得分:0)
我认为这与后台运行的某些自主生活有关(取决于您使用的机器人/版本)。
尝试在启动“ behavior_v2”或更改“ manual_mode”行为(交互/单独)(或行为)的性质时,使用api命令停止自主生活。
关于停止自主生命:请参阅ALAutonomousLife:setState或enableAnAbility方法(取决于您的版本)中的api。
关于行为性质的变化,可以在此视频中看到,例如:https://youtu.be/xPdNoiuaQag
答案 1 :(得分:0)
我找到了解决方法。我为自己的行为创建了launch trigger condition:
(('Launchpad / LifeTime'〜30))
在NAO完成启动并经过30秒之后,我的行为被触发并且可以正常工作。