Пространственное масштабирование



ROBOT CONTROL

Примитивы динамического движения: основы

https://studywolf.wordpress.com/2013/11/16/dynamic-movement-primitives-part-1-the-basics/

 

https://ru.wikipedia.org/wiki/Аттрактор

 

 

Примитивы динамического движения (DMP) – это метод управления/планирования траектории, разработанный в лаборатории Stefan Schaal, был представлен ещё в 2002 году в этой статье, а затем обновлён в 2013 году Auke Ijspeert в этой статье.

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

 

Долгое время считалось, что сложные движения состоят из наборов примитивных действий – «строительных блоков», выполняемых последовательно и/или параллельно. DMP являются предполагаемой математической формализацией этих примитивов.

Разница между DMP и ранее предложенными строительными блоками заключается в том, что каждый DMP является нелинейной динамической системой. Основная идея DMP: берём динамическую систему с чётко определенным стабильным поведением и добавляем ещё 1 член в уравнение, который заставляет систему следовать какой-то новой интересующей траектории в процессе своей деятельности.

Существует 2 вида DMP: дискретный (discrete) и ритмичный (rhythmic).

Для дискретных примитивов базовая система является точечным аттрактором (point attractor), а для ритмичных примитивов используется предельный цикл (limit cycle).

Но в этой заметке будут рассмотрены только дискретные DMP, потому что и так пост с основами получится довольно длинный.

 

Представьте, что есть 2 системы:

· воображаемая система, в которой планируются траектории, и

· реальная система, которая выполняет их.

У системы DMP есть свой собственный набор динамики, и, правильно настроив DMP, можно запланировать траекторию и получить управляющий сигнал для действующей реальной системы. В реальную систему (руке) отправляется набор сил, которые необходимо приложить, т.е. преобразовать в мышечные активации – в крутящие моменты в суставах, чтобы следовать запланированному пути.

Код для базовой настройки дискретного DMP с примерами на моём github.

 

Дискретные DMP

Начнём с динамики точечных аттракторов:

где yсостояние системы, gцель, а α и βкоэффициенты усиления. Это очень похоже на PD-контроллер: всё, что нужно сделать – это привлечь систему к цели. Теперь добавим член силового воздействия (forcing term), который позволит менять заданную траекторию:

Как определить нелинейную функцию f так, чтобы получить желаемое поведение? – это нетривиальный вопрос.

Суть DMP – это дополнительная нелинейная система для определения зависящей от времени функции усилия f, придающей задаче чётко определенную структуру, которая может быть решена простым способом и легко обобщается. Введённая система называется канонической динамической системой, обозначается и имеет очень простую динамику:

Функция усилия f (forcing function) (воздействия, форсирования, принуждения)определяется как функция от канонической системы x [и цели]:

где y 0начальная позиция системы.

wi – это везвешивание данной базисной функции . Приведенное выше уравнение определяет гауссову функцию  с центром в точке ci, и дисперсией hi.

Итак, наша функция усилия – это набор Гауссианов, которые «активируются», когда каноническая система x сходится к своей цели. Взвешенная сумма Гауссианов нормализуется, затем умножается на элемент x ( gy 0 ), который является «убывающим» (diminishing) коэффициентом пространственного масштабирования (spatial scaling term).

 

Давайте разберёмся.

Каноническая система начинает с некоторого произвольного состояния (здесь и далее зафиксируем его x 0 =1) и переходит в 0, когда время стремится к бесконечности. Сейчас давайте представим, что x линейно затухает (decay) до 0.

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

Во-вторых, каждой из этих базисных функций также присваивается вес wi. Эти веса отображаются на гистограмме рис.2.

Выходные данные функции усилия f являются суммой активаций этих базисных функций, умноженных на их веса (также отображается на рис.2).

Рис.1. Активациябазисных функций как функция от x

Рис.2. Присвоенные веса базисных функций и выход функции усилия

 

Убывающий член

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

 

Пространственное масштабирование

Пространственное масштабирование означает: как только система настроена, чтобы следовать желаемой траекторией к конкретной цели, можно отодвинуть эту цель дальше или ближе и получить масштабированную версию нашей траектории.

Это то, что делает моном ( gy 0 ) в функции усилия, путём масштабирования активации каждой из этих базисных функций относительно расстояния до цели, в результате чего система преодолевает большее или меньшее расстояние.

Например, допустим, есть набор дискретных DMP, настроенных на заданную траекторию:

 

Рис.3.

Цели в данном случае 1 и 0.5 – это видно по тому, где заканчиваются линии DMP. Для конкретных целей (1 и 0.5) пути определены, но если нужно обобщить и получить масштабированную версию траектории перемещения DMP к цели =2?

Если масштабировать нашу функцию усилия несоответствующим образом, без коэффициента ( g – y 0 ), получим следующее:

 

Рис.4.

По сути, что произошло? У новых целей те же самые веса базисных функций, они были слишком слабы, чтобы заставить систему следовать желаемой траектории. Однако, как только коэффициент ( g – y 0 ) включен в функцию усилия, получаем:

 

Рис.5.

Что является в точности тем, что нам бы хотелось – движение пространственно масштабируется.

 


Дата добавления: 2019-11-16; просмотров: 158; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!