• Регистрация
Ruslanrobotic
Ruslanrobotic0.00
н/д
  • Написать
  • Подписаться

Создание робота, управляемого сухожилиями с помощью обучения с подкреплением

Почему промышленным роботам требуются команды инженеров и тысячи строк кода для выполнения даже самых простых, повторяющихся задач, в то время как жирафы, лошади и многие другие животные могут ходить уже спустя несколько минут с момента своего рождения?

На рисунке: Роботизированная конечность с тремя сухожилиями и двумя суставами. Ссылка на видео.

Автор со своими коллегами в USC Brain-Body Dynamics Lab университета Калифорнии, задавшись этим вопросом, создали роботизированную конечность, которая научилась двигаться, не имея предварительных знаний о своей собственной структуре или окружении [1, 2]. В течение нескольких минут их алгоритм обучения с подкреплением, названный G2P и реализованный в MATLAB, научился двигать конечностью так, чтобы приводить в движение беговую дорожку.

 

Проблемы управления роботом, управляемым сухожилиями

Структура такой роботизированной конечности напоминает структуру мышцы и сухожилия человека и позвоночных животных [1, 2]. Сухожилия соединяют мышцы с костями, позволяя биологическим двигателям (мышцам) оказывать усилие на кости через сухожилия [3,4]. (Например, подвижность человеческой кисти также достигается благодаря сухожильной системе; в самих пальцах при этом мышцы отсутствуют!)

В то время как сухожилия обладают определёнными преимуществами с точки зрения механики и структуры, управлять роботом с сухожилиями значительно сложнее, чем традиционным, где часто достаточно простого ПИД-регулятора для управления углом поворота звена. В роботизированной конечности, управляемой сухожилиями, на один сустав могут воздействовать сразу несколько двигателей, также как и один двигатель может воздействовать сразу на несколько суставов. В результате такая система является одновременно нелинейной и переопределенной, и недостаточно определённой, что значительно увеличивает сложность средств управления и требует новых подходов к их разработке.

 

Алгоритм G2P

Процесс обучения алгоритма G2P (от общего к частному) состоит из трех фаз: «болтание двигателем», исследование и эксплуатация. «Болтание двигателем» — это процесс, в течение которого на протяжении пяти минут конечность выполняет серию случайных движений, подобных тем движениям, которые младенцы позвоночных животных используют для изучения возможностей своего тела.

Во время фазы «болтания двигателем» алгоритм G2P случайным образом производит серию ступенчатых изменений тока, протекающего в обмотках трёх двигателей постоянного тока, установленных в конечности (рисунок 2), а в это время датчики в каждом суставе измеряют углы поворота, угловые скорости и угловые ускорения.

Рисунок 2. Роботизированная конечность и двигатели постоянного тока.

Затем алгоритм генерирует многослойную искусственную нейронную сеть (ИНС) персептрона с помощью Deep Learning Toolbox ™. При обучении ИНС в качестве входных данных на неё подаются сигналы с датчиков углов поворота, а в качестве выходных данных подаются значения токов в обмотках двигателей. Обученная таким образом сеть служит в качестве обратного отображения модели робота, связывающей кинематику робота с токами в обмотках двигателей, вызывающими изменения углов поворота звеньев (рисунок 3).

 

 

Рисунок 3. Обучение искусственной нейронной сети (ИНС) по данным, полученным в процессе “болтания двигателем”.

Затем алгоритм G2P переходит к фазе исследования – первой из двух фаз обучения с подкреплением. На этом этапе алгоритм направляет роботизированную конечность на выполнение ряда циклических движений, а затем алгоритм G2P измеряет, насколько далеко продвинулась беговая дорожка. Для циклических движений алгоритм использует равномерное случайное распределение для генерации 10 точек, каждой из которых соответствуют 2 значения углов поворота (для двух суставов). Данные этих 10 точек интерполируются для создания полной траектории циклического движения в обобщённой системе координат. Затем алгоритм вычисляет угловые скорости и ускорения для этих траекторий и использует обратное отображение модели робота (ИНС из предыдущей фазы) для получения соответствующих значений токов в обмотках двигателей на протяжении всего цикла. Алгоритм подает эти значения на три двигателя, повторяя цикл 20 раз, прежде чем проверить, насколько далеко продвинулась беговая дорожка.

Расстояние, на которое конечность продвигает беговую дорожку, является вознаграждением для обучения робота: чем больше расстояние, тем выше вознаграждение. Если вознаграждение невелико или отсутствует, то алгоритм генерирует новый случайный цикл и предпринимает еще одну попытку. Алгоритм обновляет обратное отображение модели робота, отправляя на него новую информацию о кинематике, полученную во время выполнения каждой попытки. Если же вознаграждение превышает определённый уровень результативности (эмпирически определённые 64 мм), то алгоритм входит во вторую фазу обучения с подкреплением – эксплуатацию.

На этом этапе, выявив ряд движений, которые робот отрабатывает достаточно хорошо, алгоритм начинает искать лучшее решение вблизи этой уже протестированной траектории. Для этого используется распределение Гаусса для генерации случайных значений, близких к тем значениям, которые использовались на предыдущей попытке. Если вознаграждение для этого нового набора значений выше, чем для предыдущего набора, он продолжает двигаться дальше, центрируя распределение Гаусса на новом наилучшем наборе значений. Когда в результате выполнения попытки вознаграждение получается ниже, чем текущее лучшее, такое значение отклоняется в пользу этого лучшего на данный момент значения (рисунок 4).

 

 

Рисунок 4. Алгоритм G2P в фазе исследования.

 

Возникновение уникальных походок

Каждый раз, когда запускается алгоритм G2P, он начинает обучаться заново, исследуя динамику роботизированной конечности с помощью нового рандомизированного набора движений. Для некоторых случайных наборов движений на этапах «болтания двигателем» или исследования,  алгоритм может оказаться особенно эффективным. В таком случае он выполняет процесс обучения быстрее, и ему требуется меньше попыток для достижения фазы эксплуатации (рисунок 5). При этом алгоритм не ищет оптимальный набор движений для приведения беговой дорожки в движение, а ищет только те движения, которые достаточно хороши. Люди и другие организмы также обучаются использовать свое тело «достаточно хорошо», потому что каждая попытка тренировки сопряжена с определенными затратами, включая риск получения травмы, усталость и затраты времени и энергии, которые можно было бы использовать для изучения других навыков.

 

 

Рисунок 5. График зависимости вознаграждения на беговой дорожке от количества сделанных попыток для каждого из 15 различных запусков алгоритма G2P.

Одним из примечательных выводов, сделанных в начале работы со случайными движениями и в поиске «достаточно хорошего» решения, заключается в том, что с каждым запуском алгоритм создаёт разные походки. Автор и его коллеги видели, как алгоритм G2P создавал самые разные типы походки, от тяжелого топота до изящного «хождения на цыпочках». Они называют эти уникальные походки «двигательными личностями», которые может развить их робот. Они считают, что такие подходы позволят в будущем придать роботам более антропоморфные черты и свойства.

 

Добавление обратной связи и будущие улучшения

Первоначальная реализация G2P полностью была с прямой связью. В результате у алгоритма не было другого способа реагировать на такие возмущения, как столкновение, кроме пассивной реакции системы. Чтобы решить эту проблему, авторы реализовали версию G2P, которая включает в себя минимальную обратную связь [5]. Даже при наличии достаточно длительных сенсорных задержек (100 мс) авторы обнаружили, что добавление простой обратной связи позволило этому новому алгоритму G2P компенсировать ошибки, возникающие в результате воздействий или в результате несовершенства обратного отображения модели робота. Авторы также обнаружили, что обратная связь ускоряет процесс обучения и требует более короткие сессии «болтания двигателем» или меньшее количество попыток в фазах исследования и эксплуатации.

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

 

Почему MATLAB?

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

Другая причина их выбора заключается в том, что использование MATLAB облегчает другим исследователям работу по воспроизведению и расширению их исследований. Написанный командой автора код может быть запущен в любой версии MATLAB. Если они, например, применяют метод цифровой фильтрации с нулевой фазой с помощью функции filtfilt() в MATLAB, то они могут быть уверены, что другие смогут использовать эту же функцию и получить те же результаты. Более того, в Python или C есть пакеты, есть версии библиотек, о чём приходится беспокоиться, а также есть зависимости, требующие обновления или даже перехода на другие уже используемые пакеты. Согласно опыту автора, MATLAB не имеет таких ограничений.

Теги

    20.07.2021

    Комментарии