August 13, 2023

Reinforcement Learning для управления четвероногими роботами

TLDR: Обзор трех работ от одной из ведущих лабораторий ETH Zürich, посвященных управлению четвероногими роботами с помощью RL-я.

Всем привет! В этом посте перейдем непосредственно к более детальному рассмотрению применения ML в роботехнике, а именно - рассмотрим, как RL помогает управлять робо-собаками (они же legged robots, они же quadruped robots), разобрав 3 статьи от авторов из ETH Zürich. Я выбрал их, т.к. они сами по себе довольно влиятельные, а также хорошо демонстрируют ряд приемов, помогающих RL-ю работать в реальном мире.

Ко всем разобранным статьям настоятельно рекомендую смотреть видео-презентации, чтобы так сказать сфьюзить информацию из данного разбора и информацию от самих авторов работ, и в целом понять, о каких проблемах идет речь.


1. Зачем нам вообще здесь RL?

Как мы обсуждали в вводном посте, для управления движением роботов используются аппарат теории управления, а также теории оптимального управления. Для управления четвероногими роботами существуют довольно сильные "классические" бейзлайны, в частности, на основе Model Predictive Control (MPC, более детально этот метод, я думаю, мы рассмотрим в следующих постах). Главный недостаток подобных методов - это их сложность. Математические модели для данного типа роботов очень сложные (в отличие, например, от большинства колесных роботов), особенно, если попробовать учесть изменяющиеся параметры внешней среды; для этих моделей сложно определять параметры. Поэтому одна из основных областей робототехники, где был популяризирован RL - это именно четвероногие роботы.


2. Learning agile and dynamic motor skills for legged robots (Hwangbo et al., 2019)

Link

В первой работе, которую мы рассмотрим, авторы решают 3 типа задач с помощью RL:

  • Command-conditioned locomotion (движение в соответствии командам с пульта);
  • High-speed locomotion ("бег галопом" — движение, обычно, вдоль прямой на высокой скорости);
  • Recovery from a fall (учили робота вставать с колен подниматься из "лежачего" или "полулежачего" положения).

Во всех задачах использовался алгоритм Proximal Policy Optimization (PPO) — популярный RL-алгоритм, возможно, известный многим по RLHF. Все сети внутри PPO (если совсем упрощенно, то это сети актора — отвечает за выходные действия агента, и критика — отвечает за оценку состояния; именно первую сеть мы далее будем называть политикой) имеют вид простых MLP.

Наблюдения включали в себя историю положений и скоростей "тела" робота (имеется в виду основной корпус, к которому крепятся ноги), состояния суставов и ряд вспомогательных компонентов в зависимости от задачи (см. картинку ниже).

Команда представляет собой вектор, состоящий из:

  • Поступательную скорость (forward velocity, м/c) - компонент скорости, направленный вдоль тела робота;
  • Боковую скорость (lateral velocity, м/c) — компонент скорости, направленный перпендикулярно телу;
  • Скорость поворота (turning rate, рад/c) — по сути, угловая скорость тела робота.

Так, команда [1., 1., 0.] заставит робота пройтись по диагонали без поворота корпуса, а команда [1., 0., 0.5] — завернуть направо (или налево, в зависимости от ориентации координат). В реальном мире эти скорости задаются с помощью пульта управления, а во время обучения в симуляторе — сэмплируются из равномерного распределения с началом каждого нового эпизода.

Функция награды представляет собой взвешенную сумму довольно большого количества компонентов (специально ограничиваюсь смысловым описанием, для тех, кому знакомы основы теоретической механики и хочет разобраться подробнее — добро пожаловать в supplementary materials статьи):

  • Ошибка по линейным и угловым скоростям: очевидно, что reward должен поощрять соответствие актуальных скоростей тела входной команде
  • Штрафы на моменты на выходе приводов и скорости суставов: это своего рода регуляризация, ограничивающая величины соответствующих моментов и скоростей. Идея в следующем: мы хотим достигать скорости не за счет использования больших мощностей в лоб, а за счет более "умного" переставления ног — эти штрафы как раз "вдохновляют" агента искать эти более умные схемы.
  • Штрафы на положения и скорости ступней: мы хотим избежать проскальзывания ступней, а также их высокого отрыва от земли
  • Штраф на ориентацию тела робота: для большей устойчивости, мы хотим, чтобы тело робота всегда находилось как можно более параллельно земле
  • Штраф за резкое изменение моментов на выходе приводов: мы хотим достичь более гладкого движения робота, поэтому штрафуем большие разности моментов между двумя последовательными шагами в эпизоде

Из интересного стоить отметить сильное влияние discount factor-а в PPO, которое отмечают авторы.

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

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

Второе - это предложенный способ моделирования приводов (actuators) робота. Как упоминают авторы, задача моделирования приводов, в частности, гидравлических и электрических, которые очень часто применяются в лучших робо-собаках, очень сложна, в связи с чем достичь реалистичной симуляции становится намного сложнее. Авторы предложили следующий интересный подход: они собрали датасет с входными и выходными (т.е. моментами) сигналами на реальных приводах, и обучили соответствующую нейросеть. В итоге они получили нейросетевую модель приводов, которая далее была использована в симуляторе, что позволило сделать симуляцию более реалистичной.

Третье - применение техники Domain Randomization. Как показывает практика, это один из самых эффективных методов решения проблемы sim-to-real transfer и повышения robustness RL-политики (в какой-то степени, его можно сравнить с теми же аугментациями из supervised learning). Идея довольно проста: в ходе обучения в симуляторе рандомизируются разные параметры симуляционной модели, в нашем случае, например, параметры массы робота, трения, начальных положений робота и др.

Главное результаты, которых удалось достичь с помощью всех предложенных подходов:

  • Упрощенный деплой на реального робота
  • Увеличение робастности управления роботом
  • Сокращение потребляемых вычислительных ресурсов (все-таки теперь почти вся система управления — это один перцептрон)
  • Повышение энергоэффективности — в первую очередь как раз за приложение меньших моментов для достижения тех же скоростей

3. Learning quadrupedal locomotion over challenging terrain (Lee et al., 2020)

Link

Эта статья развивает идеи предыдущей работы. Если в предыдущей работе рассматривалось управление роботом только на ровных поверхностях в indoor-средах, то в этой работе авторы поставили цель выйти "на природу", причем довольно экстремальную. То есть, цель работы - расширить предложенный RL-подход на "неровные" ourtdoor-среды.

Поскольку работа в своей основе переиспользует ряд техник из предыдущей работы (симулятор, domain randomization и нейронную модель приводов), то сразу перейдем к рассмотрению новых приемов, которые позволили достичь впечатляющих результатов в реальном мире.

Первое - это применение техники на основе подхода Learning by Cheating.

Суть состоит в следующем: есть две политики - политика-учитель (teacher policy) и политика-студент (student policy). Политика-учитель обучается с помощью RL-я, и её пространство наблюдений состоит из двух компонентов. Первый включает непосредственно те наблюдения, которые будут использоваться на реальном роботе. Авторы называют их проприоцептивными (proprioceptive) наблюдениями, что, говоря простым языком, означает наличие информации только о состоянии робота (в частности, положение тела робота и положения суставов) и отсутствие явных наблюдений о внешнем мире (таких как изображения с камер или данные о контактах ног с поверхностью). Соответственно, политика, которая использует только проприоцептивные наблюдения, называется проприоцептивной политикой. Второй компонент авторы называют привилегированной информацией (privileged information) - это некая ground truth-информация, которую практически невозможно извлечь в реальном мире, но легко извлечь в симуляторе (в частности, она включала в себя информацию о контактах ног робота с поверхностью, профиль поверхности, параметры трения и др.). Привилегированная информация позволяет значительно упростить процесс обучения, и достичь очень хорошего перформанса в симуляторе.

А далее происходит основной трюк: модель-учитель, которая обучена с добавление привилегированной информации, дистиллируется на модель-студента, которая использует только проприоцептивных наблюдений. То есть модель студент учится выдавать такие же действия, которые выдала бы политика-учитель на основе тех же проприоцептивных наблюдений и привилегированной информации.

Второй прием - это domain randomization и curriculum learning. Идея curriculum learning в контексте RL, а точнее, как указывают авторы, automatic curriculum learning, заключается в постепенном усложнении среды по мере улучшения перформанса агента. Также наоборот, среду можно упрощать, если вдруг перформанс агента начинает проседать.

Если модель легко решает задачи мы их усложняем и наоборот.

Здесь авторы рандомизируют форму поверхности, используя три паттерна: "впадинки" (steps), лесенки (stairs) и холмики (hills). Для оценки перформанса агента нужна какая-то эвристика, и зачастую ей выступает какая-то статистика наград. Но награды зачастую тяжело интерпретировать, чтобы построить правила и параметры для curriculum-а. Поэтому, авторы предлагают использовать намного более интерпретируемую оценку - проходимость поверхности текущей политикой робота, из которой далее выводятся параметры для сэмплирования поверхностей.

Результаты из видео-презентации, в общем-то, говорят сами за себя. Один из главных показателей, которых удалось достичь - это адаптация политики на реальном роботе к ситуациям, которые в явном виде не были моделированы в ходе обучения, например, застревание ног робота в земле или растительности.

4. Learning robust perceptive locomotion for quadrupedal robots in the wild (Miki et al., 2022)

Link

Наконец, третья статья из 2022 года завершит логическую цепочку в данном обзоре. Настоятельно рекомендую к просмотру видео-презентацию!

Как было упомянуто выше, предыдущая работа была посвящена проприоцептивной политике. Главный её недостаток — это определение ситуаций, мешающих движению, пост-фактум. Пример из предыдущей видео-презентации — нога робота сталкивается со ступенькой, только после этого политика понимает, что перед роботом — препятствие, которое нужно пройти. Наличие наблюдений о внешнем мире позволило бы заранее выработать нужную походку для обхождения препятствия.

Так, авторы ставят цель соединить проприоцептивную информацию и экстероцептивные (exteroceptive) информацию - информацию о внешнем мире, получаемую, в первую очередь, с помощью сенсоров вроде LiDAR-ов и стерео-камер.

Экстероцептивные информация имеет следующий вид. С помощью LiDAR-а и/или стереокамеры выполняется построения локальной карты высот (elevation map) - эта карта показывает уровень "возвышенностей" на поверхности вокруг робота. Из этой карты сэмплируется множество точек в окрестностях ног робота - это множество относительных высот и является используемой далее информацией о мире (назовем это экстероцептивным наблюдением).

Схема обучения также основана на предыдущих статьях - применяется и learning by cheating, и другие приемы. Однако, структуры и политики-учителя, и политики-студента, модифицированы:

  • Политика-учитель, помимо проприоцептивного наблюдения и ground truth-привилегированной информации, также получает GT-экстероцептивное наблюдение, и так же обучается с помощью PPO по схеме с curriculum.
  • Политика-студент получает проприоцептивное наблюдение и зашумленное экстероцептивное наблюдение. Теперь студент не пытается "вслепую" повторять за учителем, а пытается сначала оценить привилегированную информацию на основе экстероцептивных наблюдений, и далее использовать эту оценку —точнее, её латент, который авторы называют belief state — для повторения за учителем.

За эту оценку отвечает автоэнкодер-подобная структура из блоков belief encoder (используется при обучении и деплое) и belief decoder (используется только при обучении). Декодер обучается восстанавливать привилегированную информацию и исходное экстероцептивное наблюдение с помощью reconstruction loss — расстоянием между GT и восстановленными данными. Цель всей этой схемы — связать belief state с недоступными GT-экстероцептивным наблюдением и привилигерованной информацией. Второй лосс - behaviour loss - отвечает за соответствие выходных действий политике-учителю, как в предыдущей работе.

Важно отметить роль attention-а в belief encoder: сколько использовать информации из экстероцептивного наблюдения. Проблема в том, что построенная карта высот может не всегда быть надежной — из-за шума или от природы самой поверхности. Авторы приводят интересный пример со снегом: на карте он выглядит как возвышенность, но по факту, наступив на него, робот проваливается. В этом случае за счет attention-а и рекуррентной структуры энкодер поймет, что экстероцептивному наблюдению нельзя сильно доверять, и будет использовать больше проприоцептивной информации.

Резюмируя, авторы предложили очень интересную схему, которая, с одной стороны, позволяет эффективно использовать экстероцептивные наблюдения, когда они надежны, что значительно улучшает качество походки, и, с другой стороны, позволяет автоматически переключиться на практически только проприоцептивные наблюдения, что значительно увеличивает робастность политики в "краевых" случаях.


5. Заключение

На примере данных работ я хотел показать, какие техники позволяют запускать RL в сложных задачах управления на реальных роботах, а также эффективно использовать информацию от различных сенсоров. От этой и других рисерч групп в ETH есть много других статей на тему ML-я для четвероногих роботов (так, они уже вовсю рассматривают возможность использования подобных роботов на Марсе), а также развивают и более классические бейзлайны. Вообще, эта тема довольно популярная, и у других лабораторий тоже есть прикольные результаты (например, работа RMA: Rapid Motor Adaptation for Legged Robots от ребят из Berkley и CMU).

Также стоит учесть, что ETH фокусируется на роботах семейства ANYmal - одних из самых продвинутых и крупных в своем роде. Однако, многие из описанных выше методов применялись и для более простых роботов.

Stay tuned!

Автор: @TimeEscaper