Почему запуск NAO мешает моему поведению по умолчанию? - PullRequest
0 голосов
/ 10 января 2019

Я создал основное поведение для моего NAOv6 (nao_main_behavior_V2), которое должно выполняться при запуске. Он устанавливает язык роботов на немецкий, активирует некоторые светодиоды NAO и ждет, пока я коснусь сенсоров его головы, чтобы активировать другое поведение, называемое Manual_Mode.

Каждый раз, когда я запускаю NAO, он выполняет основное поведение, но останавливается, как только я касаюсь его головных датчиков, чтобы активировать другое поведение. Используя хореограф, я могу найти это сообщение об ошибке:

[ОШИБКА] поведение.box: onInput_onStart: 16 _Behavior__nao_main_behavior_v28d046fMain2726901504: / Ошибка! Manual_Mode_12: _Behavior__nao_main_behavior_v28d046fMain2726901504: / Ручной режим_29: ALBehaviorManager :: runBehavior Box _Behavior__nao_main_behavior_v28d046fManualMode2716269632: Ger_1 завершился ошибкой: Traceback (последний вызов был последним): файл "/opt/aldebaran/lib/python2.7/site-packages/albehavior.py", строка 120, в _safeCallOfUserMethod func () File "", строка 55 в onInput_onStart RuntimeError: ALSpeechRecognition :: pushContexts AsrHybridNuance :: xPushContexts Вам нужно остановить или приостановить механизм ASR, чтобы сделать этот вызов.

Поведение Manual_Mode обеспечивает доступ к распознаванию речи, поэтому я могу произносить команды, но никогда не получаю доступа к чему-либо, связанному с распознаванием речи ранее.

Запуск (или перезапуск) поведения вручную с помощью Choreograph работает просто отлично, все работает, как положено, и я не получаю никаких ошибок.

Я попытался использовать третье поведение при запуске, которое запускает Main_Behavior, но я получаю тот же результат.

Поведение изначально было написано для NAOv5 и работало без проблем.

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Я нашел обходной путь. Я создал условие запуска запуска для моего поведения:

(('Launchpad / LifeTime' ~ 30))

После того, как NAO завершил свой запуск и прошло 30 секунд, мое поведение запускается и работает без проблем.

0 голосов
/ 14 января 2019

Я думаю, это связано с автономной жизнью в фоновом режиме (в зависимости от используемого вами робота / версии).

Попробуйте, остановив автономную жизнь, используя команду api при запуске вашего "поведения_v2" или измените природу вашего поведения "ручного режима" (интерактивное / одиночное) (или поведения).

Об остановке автономной жизни: обратитесь к API в ALAutilitaryLife: setState или enableAnAbility (в зависимости от вашей версии).

Об изменении характера поведения можно увидеть в этом видео, например: https://youtu.be/xPdNoiuaQag

...