Пространственное масштабирование
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 ( g–y 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 в функцию усилия гарантирует, что вклад коэффициента силового воздействия с течением времени обнуляется, как это происходит в канонической системе. Это означает, что можно быть уверенным, что наша система проследует какой-то огромный путь и в конечном итоге вернётся к своей более простой динамике точечного аттрактора, приблизившись к цели.
Пространственное масштабирование
Пространственное масштабирование означает: как только система настроена, чтобы следовать желаемой траекторией к конкретной цели, можно отодвинуть эту цель дальше или ближе и получить масштабированную версию нашей траектории.
|
|
Это то, что делает моном ( g–y 0 ) в функции усилия, путём масштабирования активации каждой из этих базисных функций относительно расстояния до цели, в результате чего система преодолевает большее или меньшее расстояние.
Например, допустим, есть набор дискретных DMP, настроенных на заданную траекторию:
Рис.3.
Цели в данном случае 1 и 0.5 – это видно по тому, где заканчиваются линии DMP. Для конкретных целей (1 и 0.5) пути определены, но если нужно обобщить и получить масштабированную версию траектории перемещения DMP к цели =2?
Если масштабировать нашу функцию усилия несоответствующим образом, без коэффициента ( g – y 0 ), получим следующее:
Рис.4.
По сути, что произошло? У новых целей те же самые веса базисных функций, они были слишком слабы, чтобы заставить систему следовать желаемой траектории. Однако, как только коэффициент ( g – y 0 ) включен в функцию усилия, получаем:
Рис.5.
Что является в точности тем, что нам бы хотелось – движение пространственно масштабируется.
Дата добавления: 2019-11-16; просмотров: 158; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!