Обучение четвероногого робота ходьбе при помощи тренировки нейронной сети в симуляции


Чевероного робота-собаку ANYmal обучили ходить при помощи тренировки нейронной сети в симуляторе.
Подобный подход уже давно применяется в робототехнике, потому что использование симулятора имеет массу преимуществ в скорости, стоимости и безопасности.
В данном примере, симулятор позволял тренировать сразу 2000 роботов в режиме реального времени на обычном компьютере, что позволило получить достаточное количество дешёвых данных для обучения.
Разумеется, текущие симуляторы не могут обеспечить достаточную симуляцию сложных динамических систем, поэтому подход осованный только на данных от симулятора — не работает.
Дело в том, что аналитическая модель не включает в себя весь сложный механизм, который отображает команды управления в действующие обобщенные силы системы твердого тела: динамика приводов, задержки в управляющих сигналах (вызванные несколькими уровнями аппаратного и программного обеспечения), низкоуровневая динамика, демпфирование в суставах.
Так как подобного робота механизмы почти невозможно точно смоделировать — исследователями было принято решение отобразить процессы происходящие при выполнении командных действий (до результирующих моментов) при помощи глубокой нейронной сети.

Используется полносвязная сеть (multilayer perceptron — MLP) с тремя скрытыми сломи из 32 нейронов в каждом.
В качестве функции активации была выбрана функция Softsign:

y = x / (1 + |x|)

Сеть отображает наблюдаемое текущее состояние и данные о предыдущем положении сустава в целевое положение сустава.

Создание политики управления роботом
Обучение этой «сети исполнительных механизмов» происходило на данных от реальной физической системы с помощью самообучения (self-supervised learning). Затем, эта сеть использовалась в процессе обучения робота в симуляторе (для моделирования каждого из 12 суставов ANYmal) выполнению требуемых действий.
Подобный подход позволяет использовать обученную сеть сразу на реальном роботе — без дополнительных переработок.

Управляющая сеть реализована в виде полносвязной сети (MLP) с двумя скрытыми сломи по 256 и 128 нейронов в каждом.
В качестве функции активации была выбрана функция tanh.

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

далее: Робот-собака учится передвижению по сложной местности при помощи обучения с подкреплением

Ссылки
Learning agile and dynamic motor skills for legged robots

По теме
Три робота-собаки: SpotMini, Laikago, Anymal
Обучение робота действию через однократную демонстрацию
Робота научили решать задачи на основе базовых знаний
Обучение робота ходьбе при помощи нейронной сети
Стрим про Reinforcement Learning

Нейронная сеть
Нейронная сеть — введение
Принцип обучения многослойной нейронной сети с помощью алгоритма обратного распространения
Пример работы самоорганизующейся инкрементной нейронной сети SOINN


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение