我为我的NAOv6 (nao_main_behavior_V2)创建了一个应该在启动时执行的主要行为。它将机器人语言设置为德语,激活一些NAOs,并等待我触摸他的头部感应器来激活另一种叫做Manual_Mode的行为。
每次我开始NAO时,他都会执行主要的行为,但我一触摸他的头部传感器就会停止,以激活其他行为。使用编排,我可以找到以下错误消息:
误差_Behavior__nao_main_behavior_v28d046fMain2726901504:/Error!behavior.box :onInput_onStart:16 :onInput_onStart:16_Behavior__nao_main_behavior_v28d046fMain2726901504:/Manual Mode_29: ALBehaviorManager::runBehavior _Behavior__nao_main_behavior_v28d046fManualMode2716269632:/Speech Reco。"/opt/aldebaran/lib/python2.7/site-packages/albehavior.py",Ger_1失败了: Traceback (最近一次调用):文件_safeCallOfUserMethod第120行,_safeCallOfUserMethod func() File "",第55行,onInput_onStart RuntimeError: ALSpeechRecognition::pushContexts::xPushContext,您需要停止或暂停_safeCallOfUserMethod引擎才能进行此调用。
Manual_Mode行为访问语音识别,所以我可以说命令,但我从来没有访问任何语音识别之前。
使用编排手动启动(或重新启动)行为效果很好,一切正常工作,而且我没有发现任何错误。
我尝试在启动时使用启动Main_Behavior的第三种行为,但结果是相同的。
该行为最初是为一个NAOv5编写的,它没有出现任何问题。
发布于 2019-01-14 13:02:17
我找到了解决办法。我为我的行为创建了一个发射触发条件:
(“发射台/寿命”~30 )
当NAO完成其启动和30秒已经过去,我的行为被触发,工作没有任何问题。
发布于 2019-01-14 11:39:25
我认为这与一些在后台运行的自主生活有关(取决于您使用的机器人/版本)。
尝试在启动"behavior_v2“时使用api命令停止自主生命,或者改变"manual_mode”行为的性质(交互/孤立)(或行为)。
关于停止自治生活:请参阅ALAutonomousLife: setState或enableAnAbility方法中的api (取决于您的版本)。
关于改变行为的本质,可以在这个视频中看到--例如:https://youtu.be/xPdNoiuaQag
https://stackoverflow.com/questions/54124798
复制相似问题