NAOqi
NAOqi — это проприетарная операционная система реального времени и программная платформа, разработанная французской компанией Aldebaran Robotics (позднее вошедшей в состав японского холдинга SoftBank Robotics) для управления гуманоидными роботами серий NAO, Pepper и Romeo. Платформа обеспечивает взаимодействие между аппаратным обеспечением робота, его сенсорами, исполнительными механизмами и прикладным программным обеспечением, предоставляя разработчикам инструменты для создания поведенческих алгоритмов, распознавания речи и объектов, а также навигации в пространстве.
Архитектура и компоненты
NAOqi построена на основе модульной архитектуры, где каждый модуль отвечает за определённый функциональный блок. Основные компоненты включают:
Ядро системы
Ядро NAOqi реализует управление процессами в реальном времени, планирование задач и обработку сенсорных данных. Оно работает на базе операционной системы Linux (дистрибутив OpenEmbedded), что обеспечивает совместимость с широким спектром аппаратных ресурсов. Основные функции ядра:
- Управление памятью — распределение ресурсов между модулями.
- Обработка прерываний — реагирование на события от датчиков (камеры, микрофоны, сенсоры касания).
- Синхронизация потоков — координация работы параллельных процессов (например, одновременное движение конечностей и распознавание речи).
Модули
Система состоит из более чем 50 модулей, каждый из которых реализует отдельную функцию. Ключевые модули:
- ALMotion — управление двигателями и кинематикой робота (ходьба, позы, жесты). Поддерживает 25 степеней свободы для NAO и 20 для Pepper.
- ALMemory — хранилище данных, доступное для чтения и записи всеми модулями (например, текущее положение суставов, результаты распознавания лиц).
- ALAudioDevice — обработка аудиопотока с микрофонов (до 4 каналов) и синтез речи через встроенный динамик.
- ALVideoDevice — захват и обработка видео с двух камер (разрешение до 1280×960 пикселей, частота до 30 кадров/с).
- ALSpeechRecognition — модуль распознавания речи на основе скрытых марковских моделей (HMM). Поддерживает до 10 языков, включая русский, английский, японский, французский.
- ALFaceDetection — идентификация лиц по базе данных (до 1000 записей) с точностью около 90% при фронтальном ракурсе.
- ALNavigation — построение карты помещения и планирование маршрута с использованием ультразвуковых датчиков (дальность до 2,5 м) и инфракрасных сенсоров.
Промежуточное ПО (Middleware)
NAQqi использует собственный протокол межпроцессного взаимодействия (IPC), основанный на сокетах TCP/IP и шине данных. Модули могут обмениваться сообщениями как в синхронном (блокирующем), так и в асинхронном режиме. Это позволяет создавать распределённые приложения, где часть обработки выполняется на внешнем компьютере, а часть — на борту робота.
История развития
Первое поколение (2006–2010)
Первая версия NAOqi была выпущена в 2006 году вместе с роботом NAO. Она базировалась на ядре Linux 2.6 и поддерживала только базовые функции: управление моторами, захват видео с камеры и простейшее распознавание речи (набор из 50 команд). Система была написана на C++ с использованием фреймворка Qt для графического интерфейса.
Второе поколение (2011–2015)
В 2011 году вышла версия 1.14, которая добавила поддержку многопоточности, улучшенную навигацию и интеграцию с ROS (Robot Operating System). В 2014 году, с выходом робота Pepper, платформа была расширена модулями для эмоционального взаимодействия (ALEmotionManager) и распознавания жестов (ALGestureRecognition). В этот период NAOqi стала поддерживать скриптовые языки — Python и JavaScript (через движок V8).
Третье поколение (2016–2020)
Версия 2.0 (2016) принесла полную переработку архитектуры: переход на 64-разрядное ядро, поддержку облачных сервисов (через API SoftBank Cloud) и модуль ALDialog для ведения диалогов. В 2018 году вышла версия 2.5, оптимизированная для работы на Raspberry Pi 3 (использовалась в образовательных наборах). Последнее крупное обновление — версия 2.8 (2020), которая добавила интеграцию с TensorFlow Lite для выполнения нейросетевых моделей на борту.
Современное состояние (2021–настоящее время)
После свёртывания массового производства роботов NAO и Pepper в 2021 году компания SoftBank Robotics прекратила активную разработку NAOqi. Поддержка системы ограничена выпуском критических исправлений безопасности. По состоянию на 2025 год последняя стабильная версия — 2.9.4 (выпущена в декабре 2023 года). Платформа продолжает использоваться в образовательных учреждениях и исследовательских лабораториях, где установлены ранее приобретённые роботы.
Программирование и SDK
Языки и инструменты
Разработка приложений для NAOqi ведётся на нескольких языках:
- C++ — для создания низкоуровневых модулей и драйверов. Используется фреймворк NAOqi SDK на базе CMake.
- Python — основной язык для написания поведений (behaviors). Поддерживаются библиотеки NumPy, OpenCV (через ALProxy).
- JavaScript — для веб-интерфейсов и простых диалогов (через модуль ALWeb).
- Choregraphe — графическая среда разработки, позволяющая создавать программы из блоков (nodes) без написания кода. Поддерживает экспорт в Python-скрипты.
Пример кода (Python)
```python from naoqi import ALProxy
Создание прокси для модуля движения
motion = ALProxy("ALMotion", "192.168.1.100", 9559)
Включение автономного режима
motion.setExternalCollisionProtectionEnabled("Arms", True)
Выполнение жеста приветствия
motion.angleInterpolation("LShoulderPitch", 1.5, 1.0, True) motion.angleInterpolation("RShoulderRoll", -0.5, 0.8, True) ```
API и протоколы
NAOqi предоставляет RESTful API (порт 9559 по умолчанию) для удалённого управления. Поддерживаются следующие протоколы:
- ALMemory — чтение/запись ключей и значений.
- ALBehaviorManager — запуск и остановка поведений.
- ALDialog — управление диалоговыми сценариями (формат .top файлов).
Применение
Образование
NAOqi широко используется в учебных заведениях для обучения программированию и робототехнике. По данным SoftBank Robotics, на 2020 год платформа была установлена более чем в 10 000 школ и университетов по всему миру, включая Россию (МГУ, МФТИ, СПбГУ). Типовые задачи: изучение алгоритмов движения, распознавания образов и голосового управления.
Научные исследования
В исследовательских лабораториях NAOqi применяется для:
- Изучения социального взаимодействия человека и робота (Human-Robot Interaction, HRI).
- Разработки адаптивных алгоритмов ходьбы и балансирования.
- Тестирования нейросетевых моделей для компьютерного зрения (например, YOLO, MobileNet).
Коммерческое использование
До прекращения массовых продаж роботы на базе NAOqi использовались в:
- Розничной торговле (Pepper в магазинах SoftBank, японских банках и отелях).
- Здравоохранении (помощь в реабилитации пациентов с нарушениями моторики).
- Развлечениях (шоу-программы, презентации).
Ограничения и критика
Технические ограничения
- Производительность — процессор Intel Atom Z530 (1,6 ГГц) в NAO и Qualcomm Snapdragon 410 (1,2 ГГц) в Pepper не позволяют запускать современные нейросети в реальном времени без внешнего компьютера.
- Автономность — время работы от аккумулятора составляет 60–90 минут для NAO и 8–12 часов для Pepper.
- Закрытость кода — NAOqi является проприетарным ПО; исходный код недоступен, что ограничивает возможности модификации.
Критика сообщества
Разработчики отмечают недостаточную документацию для версий 2.5 и выше, а также частые изменения API между версиями, что приводит к несовместимости старых приложений. Кроме того, прекращение активной поддержки в 2021 году вызвало обеспокоенность у пользователей, использующих платформу в долгосрочных проектах.
Интересные факты
- NAOqi была первой операционной системой для гуманоидных роботов, получившей сертификацию ROS (Robot Operating System) в 2012 году.
- В 2015 году робот Pepper под управлением NAOqi стал первым роботом, который был принят на работу в японский офис компании SoftBank в качестве консультанта по продажам.
- Модуль ALSpeechRecognition в версии 2.0 поддерживал распознавание до 5000 слов на английском языке, но для русского языка словарь был ограничен 500 словами.
Источники
- Aldebaran Robotics. «NAOqi API Reference». Версия 2.8, 2020.
- SoftBank Robotics. «Pepper Technical Specifications». 2019.
- Pot, E., et al. «Choregraphe: A Graphical Tool for Humanoid Robot Programming». Proceedings of IEEE RO-MAN, 2009.
- Breazeal, C. «Designing Sociable Robots». MIT Press, 2002.
- Документация SoftBank Robotics (архив). «NAOqi OS Architecture». 2023.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →