Разработка продвинутого программного обеспечения для управления человекоподобным роботом iCub
Задачи и подходы разработки человекоподобного робота.
Разработка продвинутого программного обеспечения для управления человекоподобным роботом iCub
Авторы: Даниэле Пуччи, Диего Фериго и Сильвио Траверсаро, Итальянский институт технологий (IIT)
Проект iCub был запущен в 2004 году как часть Европейского проекта RobotCub, основной целью которого было изучение "воплощенного познания" - теории о том, что организм развивает когнитивные навыки при взаимодействии со своей средой. Главный результат проекта iCub - гуманоид высотой в один метр и 53 степенями свободы, который в настоящее время разрабатывается в Итальянском технологическом институте (IIT). На протяжении многих лет робот iCub использовался в качестве исследовательской платформы для различных областей прикладной робототехники, включая балансировку, дистанционно управляемую ходьбу и взаимодействие между роботом и человеком (рис. 1).
Рисунок 1. По часовой стрелке сверху слева: iCub стреляет стрелами, принимает позу йоги, идет при дистанционном управлении и работает с человеком, чтобы встать.
iCub оснащен более чем 50 двигателями, а также датчиками силы-момента, инерциальными измерительными модулями, а также десятками датчиков угла поворота и акселерометров. Разработка алгоритмов управления роботом этого комплекса - сложная задача. Наша команда в IIT - группа Dynamic Interaction Control - создала рабочий процесс разработки на основе Simulink® и Simulink Coder ™, который позволяет даже неопытным членам команды быстро внедрять новые функции управления, проверять их с помощью моделирования и прогонять их на Роботе iCub без написания низкоуровневого кода.
iCub Research в IIT
Проект IIT iCub включает несколько направлений исследований. Команда Dynamic Interaction Control фокусируется на трех областях: телексистенция(Прим. перевода передача сенсорных сигналов на расстоянии), взаимодействие типа агент-робот (при этом агент является человеком или другим человекоподобным роботом) и Aerial humanoid robotics(человекоподобная робототехника, управляемая дистанционно).
Телексистенция позволяет человеку существовать виртуально в другом месте с помощью роботизированного аватара. В наших экспериментах с телексистентностью iCub ходит и манипулирует объектами в реальном мире, в то время как человек ходит и манипулирует объектами в виртуальной среде. Когда человек делает шаг, мы обрабатываем его движение, и в iCub отправляется такой же сигнал, заставляющий его сделать шаг. Точно так же, когда человек сжимает ладонь, посылается сигнал, чтобы ладонь iCub сжалась.
Наше исследование сотрудничества типа агент-робот сосредоточено на способах совместной работы людей и роботов. В одном из наших экспериментов человек помогает iCub встать из положения сидя. Человек носит специально разработанный костюм, который в режиме реального времени предоставляет данные о кинематике и динамике, что позволяет нам отслеживать и моделировать движения человека и мышечные напряжения наряду с движениями робота в Simulink. Недавно мы расширили эксперимент по сотрудничеству между человеком и роботом, добавив в него версию для совместной работы робота и робота, в которой один iCub помогает второму iCub встать (рисунок 2).
Рисунок 2. Сотрудничество робота с роботом.
Aerial humanoid robotics - одно из самых активных направлений наших исследований. Мы работаем над версией iCub, которая будет оснащена реактивными ранцами. Он сможет прилететь в указанное место, приземлиться и начать ходить и взаимодействовать с окружающей средой (Рисунок 3). Робот с этими возможностями может быть полезен в сценариях стихийных бедствий и поисково-спасательных операций с высоким риском, таких как землетрясения, наводнения или лесные пожары. В таких ситуациях ценность наличия роботов, способных перелетать из одного здания в другое в поисках выживших, открывать двери, закрывать газовые клапаны и входить в здания, неоценима .
Рисунок 3. Слева: виртуальный iCub, оснащенный реактивными ранцами, во время поисковых маневров в сценарии-катастрофе. Справа: переработанный дизайн гуманоидного робота iCub с реактивным ранцем.
Создание прототипов контроллеров iCub
Мы создаем прототипы нашего управляющего программного обеспечения, используя Simulink и программу Whole Body Toolbox с открытым исходным кодом, разработанную в IIT. Whole Body Toolbox основан на платформе потока данных BlockFactory, которую мы создали для предоставления интерфейсов C ++ для программирования потоков данных. Мы начинаем с моделирования контроллера в Simulink, включая датчики, исполнительные механизмы и обычно используемые алгоритмы роботов. Затем Whole Body Toolbox создает интерфейсы для реального или смоделированного iCub (рис. 4).
Рисунок 4. Блоки в Whole Body Toolbox.
Мы чаще всего используем Whole Body Toolbox в проектах, связанных с динамической балансировкой: контроллер робота регулирует силы с которыми робот взаимодействует с окружающей средой, позволяя роботу сохранять равновесие, даже если его толкает или иным образом нарушает человек. В качестве второстепенной задачи робот пытается сохранить позу, выбранную оператором, отфильтровывая любую позу, которая изменяет его баланс и стабильность.
Мы косимулируем модель управления в Simulink с моделью iCub в симуляторе робототехники Gazebo (рисунок 5). Косимуляция позволяет нам устранять дефекты перед тестированием на реальном роботе, сводя к минимуму риск повреждения робота или создания опасности для человека.
Например, с помощью нашей настройки косимуляции мы можем определить, создает ли данный набор усилий нестабильное поведение робота в случае незапланированных быстрых движений.
iCub передает измерения, поступающие от датчиков с частотой 100 Гц. Эти измерения публикуются в сети нашим роботизированным промежуточным программным обеспечением YARP. Обычно мы синхронизируем частоту обновления наших контроллеров со скоростью входных измерений.
После того, как мы проверили контроллер с помощью моделирования, мы тестируем его на реальном iCub в лаборатории. В нашей тестовой установке Simulink работает на ПК со стандартным процессором x86 и взаимодействует с iCub через промежуточное ПО YARP и TCP / UDP. Контроллер, работающий в Simulink, отправляет команды поворотов роботу, который может следовать по траектории, сохраняя равновесие. Блок синхронизатора в реальном времени, разработанный для Whole Body Toolbox, синхронизирует движение робота в реальном мире с виртуальной моделью.
Развертывание контроллера
Наша конфигурация "по сети" удобна для быстрых итераций проектирования, но оставляет iCub зависимым от канала связи TCP / UDP. Чтобы избавиться от этой зависимости и позволить iCub работать более независимо, мы развертываем наш контроллер на процессоре x86 внутри головы робота, что устраняет необходимость в сетевом взаимодействии с соответствующими задержками и риск ошибок связи.
Мы генерируем код C ++ из наших моделей управления с помощью Simulink Coder, компилируем его и проверяем с использованием той же конфигурации "по сети", которую мы использовали ранее при запуске контроллера в Simulink. Затем мы запускаем код на процессоре x86, установленном внутри головы iCub, что позволяет iCub работать независимо как единое целое, а не на отдельном управляющем ПК.
Переносимая структура управления
Сегодня около 40 роботов iCub используются исследовательскими группами по всему миру. Хотя конструкция оборудования различается, каждая версия может использовать один и тот же подход к управлению. Эта переносимость стала возможной благодаря блоку конфигурации в нашей модели управления Simulink, который загружает файл Unified Robot Description Format (URDF), описывающий кинематику и динамику каждого робота. Используя этот файл конфигурации, мы можем запустить тот же контроллер на 120-килограммовом и 1,85-метровом смоделированном Walkman от IIT, что и на 33-килограммовом iCub высотой 1 метр.
Смотря вперед
Мы уверены, что результатом нашего исследования станет множество реальных применений. Например, в будущем телексистенция может использоваться, чтобы помочь инвалидам выполнять задачи, требующие силы или ловкости. В этих случаях робот-аватар будет двигаться и действовать в физическом мире, дистанционно управляемый инвалидом.
Наше исследование сотрудничества человека и робота имеет фундаментальное значение для создания роботов, которые помогают людям дома и на рабочем месте - например, помогают пожилым людям в повседневной жизни и помогают заводским рабочим выполнять задачи, связанные с мышечным стрессом скелета. Наконец, новая отрасль робототехники, которую мы являемся пионерами, Aerial humanoid robotics, имеет множество приложений. Воздушные платформы с большой грузоподъемностью, оснащенные реактивными двигателями, могут быть получены из летающих гуманоидных роботов для доставки лекарств и продуктов питания во время реагирования на бедствия, доставки тяжелых грузов на последней миле и спасательных платформ для пожарных, а также платформ для людей, выполняющих осмотр высоковольтных опор.
Чтобы воплотить результаты нашего исследования в реальные приложения, мы тесно сотрудничаем с центром iCub, который разрабатывает, обслуживает и постоянно обновляет человекоподобного робота iCub, который имеет более 40 копий, используемых в исследовательских центрах по всему миру.
Опубликовано 2019
Переведено гуглом, допилено мной
я так понял под контроллером подразумевается микропрограмма
Комментарии
Где можно скачать этот самый Whole Body Toolbox?
Похоже, что здесь:
https://github.com/robotology/wb-toolbox/