Ссылка на первоисточник — здесь больше порядка с оформлением, особенно, для видеороликов.
Содержание
- Введение
- Управление механическим импедансом: о понятиях
- Модель динамики
- Управление импедансом в обобщённых координатах
- Управление импедансом в декартовых координатах
- Компенсация гравитации
- Вязко-упругие шарниры
- Заключение
Es ist noch kein Meister vom Himmel gefallen,
или
Не боги горшки обжигают
Пословица
Введение
Здесь мы расскажем о Центре робототехники и мехатроники (Robotics and Mechatronics Center, RMC) Национального центра авиации и космонавтики Германии. На языке оригинала всё это звучит вот так: Robotik und Mechatronik Zentrum (аббревиатура используется английская, RMC) и Deutsches Zentrum für Luft- und Raumfahrt (аббревиатура используется немецкая, DLR).
DLR RMC не настолько известен широкой публике, как, например, компания Boston Dynamics, о которой мы уже говорили ранее. Тем не менее, я уверен, что вы наверняка знаете разработки Центра, если хоть сколько-то интересуетесь робототехникой. В первой части мы рассказали о том, каким образом эти разработки связаны с космосом и о том, чем вообще RMC прославился в области робототехники. Здесь же слегка отдёрнем покрывало с интересного подхода к построению робототехнических систем, позволившего учёным и инженерам RMC добиться тех результатов, которые мы можем наблюдать сегодня. Он применён для многих роботов Центра, ставших широко известными, и не только в робототехническом сообществе.
Речь об управлении механическим импедансом (impedance control).
Данный материал родился потому, что возникла идея поделиться тем, что я видел и слышал лично. Просто так, не имея собственного очного впечатления, собрать в кучу всю эту информацию было бы сложнее. Так что, думаю, материал должен быть интересен не только мне. А если он ещё и поможет кому-то сделать первый, самый трудный шаг к робототехническим вершинам в данном направлении, то я буду считать это и своим успехом тоже.
Статья получилась такой большой, что пришлось разбить её на две части: первая — почти популярная, а вторая (настоящая) — почти научная. Надеюсь, полезными окажутся обе.
Управление механическим импедансом: о понятиях
Проблемой управления в технике является построение регулятора, отвечающего заданным критериям качества управления. В этой статье, пользуясь доступными публикациями [1], как раз и опишем, как построены регуляторы, обеспечивающие роботы RMC их замечательными качествами.
Давайте вначале проясним, что же это за зверь такой — impedance control. Здесь нам важно понять принцип. Программный код писать не будем, ведь конкретная реализация — это дело для каждого разработчика личное, интимное. Ну, а вы — дерзайте!
Управление механическим импедансом [2], говоря простыми словами, наделяет манипулятор свойствами системы пружина – демпфер с регулируемыми по произвольному закону и по произвольным координатам жёсткостью и коэффициентом демпфирования. Причём когда мы говорим о жёсткости и демпфировании при управлении механическим импедансом, мы имеем в виду активные жёсткость и демпфирование. Т.е. эти виртуальные «пружина» и «демпфер» на самом деле физически не существуют, а реализуются приводами, что отличает их от реальных звеньев и шарниров с (пассивной) податливостью.
LBR iiwa. Здесь используется термин compliance (податливость), а не impedance. Ну, маркетологам виднее, что ближе пользователям
Кажется, все работы по управлению механическим импедансом ссылаются на профессора MIT Невилла Хогана [3]. Он, рассматривая традиционные методы управления промышленными манипуляторами, выделяет среди них два известных подхода, которые объединяет возможность пренебречь динамическим взаимодействием между манипулятором и внешней средой. В первом случае, когда контакт с внешними объектами отсутствует, усилия взаимодействия равны нулю, и может быть реализовано управление по координате (положению или скорости). По сути, манипулятор здесь рассматривается как изолированная система. Во втором случае, когда при контакте с твёрдым объектом отсутствует перемещение, могут быть использованы алгоритмы управления по усилию. В обоих случаях равна нулю механическая работа, выполняемая манипулятором: dW = F × dX = 0.
В общем случае динамическими взаимодействиями пренебречь нельзя, потому что манипулятор и окружающая среда взаимодействуют между собой, обмениваясь механической энергией (dW ≠ 0), а значит, манипулятор уже нельзя рассматривать как изолированную систему. В каждой степени свободы мгновенная мощность этого взаимодействия определяется как произведение двух сопряжённых переменных: усилия (например, силы или крутящего момента; электрического напряжения; и т.п.) и перемещения (например, скорости движения; силы тока; и т.п.). В результате становится недостаточно управлять какой-то одной переменной.
Хоган предлагает единый подход, включающий упомянутые выше в качестве частных решений. Продолжая аналогию с электричеством, он рассматривает два вида свойств, которыми обладают физические системы: импеданс (impedance) и адмиттанс (admittance). Эти понятия знакомы электротехникам в качестве взаимно обратных параметров электрических цепей: комплексного сопротивления и комплексной проводимости. Для систем, описанных в терминах адмиттанса, входом является усилие, а выходом — перемещение. Наоборот, для систем, описанных в терминах импеданса, входом является перемещение, а выходом — усилие. В случае линейных систем описывающие их системы уравнений могут быть выражены как через импеданс, так и через адмиттанс. Нелинейные же системы могут быть описаны либо через импеданс, либо через адмиттанс, т.е. для них эти параметры не являются взаимозаменяемыми.
Отметим, что традиционно управление промышленными манипуляторами (их механической частью) рассматривается в терминах адмиттанса, поскольку призвано реализовать заданный закон перемещения звеньев манипулятора (на выходе) путём регулирования, в конечном итоге, усилий приводов (на входе механической части).
Важно то, что в случае динамического взаимодействия физических систем они должны дополнять друг друга: если одна из них является импедансом, вторая должна быть адмиттансом. Например, если манипулятор взаимодействует с внешними объектами, обладающими инерцией, т.е. воспринимающими на входе усилия и производящими на выходе перемещения, то внешняя среда вполне может быть представлена как импеданс, а манипулятор — как адмиттанс. Если же объект обладает кинематическими ограничениями, то приложить к нему усилие по-прежнему можно, но оно не обязательно приведёт к перемещению и, таким образом, в общем случае поведение внешнего объекта может быть корректно описано только в терминах адмиттанса. А значит, быть импедансом остаётся манипулятору. Потому что кто-то должен уступить. И это не внешний объект.
А вот ещё и так можно!
Теперь, вооружённые знанием о том, что в общем случае импедансом должен быть манипулятор, посмотрим, каким образом данный подход реализуется в DLR RMC.
Модель динамики
В робототехнике известно [4] следующее уравнение, описывающее в матричной форме динамику механической части манипулятора в пространстве обобщённых координат q:
$IMAGE1$(1)
Чтобы оно не казалось страшным, но чтобы при этом и не лезть в литературу, от которой станет ещё страшнее из-за многоэтажных матричных вычислений, поясним, как можно быстро понимать подобные уравнения.
Правая часть — это сумма усилий, действующих на звенья манипулятора, заданных вектор-столбцом τ сил / крутящих моментов со стороны приводов и вектор-столбцом τext сил / моментов со стороны внешней среды. Все компоненты усилий (т.е. элементы вектор-столбцов) заданы в системах координат соответствующих сочленений манипулятора, т.е. в пространстве обобщённых координат.
Левая часть уравнения — это то, на что «расходуются» эти усилия. Первое слагаемое — произведение матрицы M(q) масс и моментов инерции звеньев манипулятора на вектор-столбец ускорений в его сочленениях (вспоминаем второй закон Ньютона). Второе слагаемое учитывает центробежные силы и силы Кориолиса, пропорциональные скоростям, т.е. фиктивные силы, которых в природе как бы нет и которые появляются в уравнении только потому, что нам удобнее вести расчёты в системах обобщённых координат, которые для вращательных сочленений являются вращающимися, т.е. неинерциальными. Ну, а третье слагаемое — это вектор-столбец g(q) сил гравитации, действующих на сочленения, для текущей конфигурации (положения) манипулятора q.
Итак, сумма всех сил, действующих в сочленениях манипулятора, тратится на преодоление силы тяжести и на сообщение ускорения его звеньям. Как видим, всё очень даже понятно.
$IMAGE2$Манипулятор LWR III и модель его шарнира
Теперь посмотрим, что представляет собой шарнир манипулятора. Как мы уже говорили выше, манипуляторы RMC обладают существенной гибкостью, что и отражено в модели шарнира. На приведённой схеме B обозначает момент инерции ротора двигателя, M — массу звена, а K — жёсткость упругого элемента в шарнире. Ротор приводится во вращение моментом τm, а на звено со стороны внешней среды действует сила Fext (в некоторой базовой системе координат). Уравнение движения ротора выглядит следующим образом:
$IMAGE3$,(2)
где θ — это угловое положение со стороны двигателя.
Снова читаем уравнение: электромагнитный момент двигателя τm приводит во вращение ротор (первое слагаемое — эквивалент того же второго закона Ньютона для вращательного движения), а также создаёт момент τ на звене манипулятора. Этот момент передаётся на звено через «пружину» шарнира, поэтому он пропорционален углу скручивания «пружины» (закон Гука), т.е. разности углов со стороны двигателя θ и со стороны звена q:
$IMAGE4$(3)
Выражения (2) и (3), как и выражение (1), записаны в матричной форме. Оговоримся также, что, хотя рассуждения здесь и далее приводятся на примере вращательных движений, они справедливы и для общего случая, т.е. для произвольного типа сочленений (поступательных, вращательных и любой их комбинации).
Управление импедансом в обобщённых координатах
$IMAGE5$Модель шарнира с регулятором вида
«масса — пружина — демпфер»
Т.к. мы договорились строить регулятор с управляемыми жёсткостью и демпфированием, рассмотрим его схему. Как видно на рисунке, к рассмотренной выше модели шарнира добавились элементы, соответствующие коэффициентам жёсткости Kθ и демпфирования Dθ регулятора. Также добавилось изображение обратной связи по моменту τ (показана пунктиром), о которой будет сказано ниже.
Поскольку речь идёт о программном регуляторе, мы можем реализовать любой желаемый закон управления. Исходя из приведённой схемы регулятора вида «масса — пружина — демпфер», закон управления должен быть следующим:
$IMAGE6$
Здесь θd — желаемый (заданный) угол поворота двигателя, а разность (θd – θ) соответствует углу скручивания виртуальной пружины регулятора. Второе слагаемое уравнения, отвечающее за демпфирование, в соответствии с известной моделью вязкого трения, пропорционально скорости скручивания. Знак минуса перед ним означает стремление к снижению (демпфированию) скорости двигателя.
Глядя на уравнение, можем заметить, что мы имеем, по сути, PD-регулятор по углу поворота двигателя. Приняв
$IMAGE7$,
запишем уравнение в следующей форме:
$IMAGE8$(4)
Для обеспечения качественного управления гибким шарниром при помощи «гибкого» регулятора важным оказывается снижение инерции промежуточного элемента массы (в данном случае, ротора двигателя). В противном случае, результирующее движение может существенно отличаться от желаемого. Не имея возможности снижения реального момента инерции ротора, мы, тем не менее, можем «уменьшить» его искусственно путём введения обратной связи по моменту. Поскольку, повторимся, все законы управления реализуются программно, мы можем реализовать следующую обратную связь, регулируя момент двигателя τm с помощью внутреннего контура тока:
$IMAGE9$,(5)
где Bθ — желаемый момент инерции ротора, а I — единичная матрица (мы ведь по-прежнему ведём записи в матричной форме). Если теперь подставить уравнение (5) в (2), то можно получить:
$IMAGE10$(6)
Управление импедансом в обобщённых координатах
Видим, что, с точки зрения верхнего уровня, система (6) с обратной связью (5) аналогична системе (2) без обратной связи, для которой мы бы самостоятельно выбирали произвольный момент инерции ротора Bθ и желаемый закон изменения момента двигателя u.
Подытожим. Уравнение (4) определяет искомый регулятор с произвольными матрицами коэффициентов жёсткости и демпфирования, реализующий в обобщённых координатах управление механическим импедансом при заданном желаемом законе движения системы, описываемой уравнениями (1), (6), (3), при условии реализации внутренней обратной связи (5) по моменту. Выпишем полученную систему уравнений.
Уравнения динамики системы:
$IMAGE1$
$IMAGE10$ (I)
$IMAGE4$
Уравнение регулятора внутреннего контура:
$IMAGE9$ (II)
Уравнение регулятора для управления импедансом в обобщённых координатах:
$IMAGE8$ (III)
$IMAGE7$
Отметим ещё, что на этом этапе знание модели динамики манипулятора как бы ещё необязательно. Казалось бы, мы реализуем обратную связь внутреннего контура (II), строим регулятор (III), подбирая его коэффициенты, и затем управляем, задавая желаемый закон изменения координаты. Модель динамики понадобится ниже, а здесь её уравнения приведены для понимания процесса.
Управление импедансом в декартовых координатах
На практике часто удобнее задавать желаемый закон управления не в обобщённых, а в базовых (например, декартовых) координатах. Зная решение прямой задачи кинематики, можно найти вектор-столбец декартовых координат выходного звена манипулятора и соответствующую матрицу Якоби в функции координат звеньев — x(q), J(q) — и координат двигателей — x(θ), J(θ):
$IMAGE11$, $IMAGE12$
$IMAGE13$, $IMAGE14$
Управление импедансом в декартовых координатах
Как мы помним из обсуждения выражения (6), управляющий сигнал u в уравнении (4) имеет физический смысл желаемого момента двигателя, причём его слагаемые отвечают, соответственно, за составляющие виртуальной пружины (τK) и виртуального демпфера (τD). Учитывая [5], что
$IMAGE15$,
можно записать уравнение регулятора (4) в декартовых координатах, преобразуя моменты в сочленениях в силы на выходном звене:
$IMAGE16$,
или:
$IMAGE17$, (7)
где Kx и Dx — матрицы коэффициентов жёсткости и демпфирования манипулятора в декартовых координатах, а
$IMAGE18$
— вектор-столбец взятых с обратным знаком отклонений текущих координат выходного звена от желаемых xd. Наконец, продифференцировав выражение для x(θ) по времени, получим:
$IMAGE19$
Таким образом, для управления механическим импедансом в декартовых координатах в системе уравнений (I), (II), (III) необходимо лишь заменить уравнения регулятора (III) в обобщённых координатах на уравнения (IV), записанные в форме (7):
$IMAGE17$
$IMAGE18$ (IV)
$IMAGE19$
Теперь матрицы коэффициентов жёсткости и демпфирования, а также вектор-столбец желаемого движения системы можно задавать в декартовых координатах.
Компенсация гравитации
Алин Альбу-Шеффер демонстрирует отдельно
режим компенсации гравитации: робот Justin
свободно движется под воздействием внешних силДо сих пор в уравнениях для регулятора не учитывалось влияние силы тяжести. Тем не менее, в случае с упругим приводом её учёт необходим. Это делается путём разделения задающего сигнала на составляющие, одна из которых осуществляет собственно управление движением (как было описано выше), а вторая только компенсирует действие силы тяжести. В статьях RMC указывается, что хорошего результата удаётся добиться в случае расчёта компенсирующей составляющей в координатах со стороны двигателя исходя из условия установившегося равновесного состояния.
Условие равновесия, при котором сила упругости, возникающая вследствие скручивания «пружины» шарнира, уравновешивает силу тяжести со стороны звена, для некоторых равновесных координат θ0, q0 (соответственно, со стороны двигателя и со стороны звена) может быть записано следующим образом:
$IMAGE20$,
где g(q0) — вектор-столбец сил, вызванных гравитацией и действующих на сочленения, рассчитанный для конфигурации манипулятора q0 — см. уравнение (1). Выражение для g(q) мы знаем из модели динамики манипулятора. Собственно, здесь нам в первый раз потребовалось знание модели динамики для её непосредственного учёта в уравнениях регулятора.
На основе этого условия равновесия найдём компенсирующую добавку ug размерности момента двигателя для уравнений (4), (7) управляющего сигнала u:
$IMAGE21$,
$IMAGE22$,
$IMAGE23$
Введённые здесь новые обозначения используются для упрощения записи, чтобы показать, что компенсирующая добавка ug может быть выражена как функция угла θ.
Режим компенсации гравитации для LBR iiwa
Выпишем теперь систему уравнений, описывающую динамику манипулятора и регулятор для управления импедансом, с учётом составляющей для компенсации силы тяжести:
Уравнения динамики системы:
$IMAGE1$
$IMAGE10$ (I)
$IMAGE4$
Уравнение регулятора внутреннего контура:
$IMAGE9$ (II)
Уравнение регулятора для управления импедансом в обобщённых координатах:
$IMAGE24$ (V)
$IMAGE7$
Уравнение регулятора для управления импедансом в декартовых координатах:
$IMAGE25$
$IMAGE18$ (VI)
$IMAGE19$
А ещё модель динамики позволяет выделить внешние усилия на звеньях робота (например, с целью реализации режима контроля внешних усилий для безопасной совместной работы с человеком)
Вязко-упругие шарниры
Теперь, наконец, можем привести общую структурную схему регулятора для управления механическим импедансом, уравнения которого мы всё это время выводили:
$IMAGE26$Регулятор для управления механическим импедансом в декартовых координатах
Казалось бы, на этом всё? Не совсем. Вроде все переменные на схеме нам уже известны и соответствуют приведённым выше уравнениям. Кроме выходного момента τa. Но в наших-то уравнениях записан τ. В чём разница? Посмотрите на модель шарнира, приведённую в начале статьи. Видите в ней между ротором B и звеном M элемент жёсткости K? А на схеме регулятора к нему добавился демпфер D. Потому что в модели шарнира могут быть учтены не только его упругие, но и демпфирующие свойства:
$IMAGE27$
Здесь составляющая τK, в соответствии с (3), пропорциональна углу скручивания «пружины» шарнира,
$IMAGE28$,
а τD (вязкое трение) — скорости скручивания,
$IMAGE29$
Обозначая привычно τ = τK, легко показать, что:
и тогда модель динамики системы (I) запишется в виде [6]:
$IMAGE31$
$IMAGE32$ (VII)
$IMAGE30$
$IMAGE4$
Ну, вот теперь, кажется, всё.
Сложные режимы управления импедансом для робота Justin. «Связанный пространственный импеданс» — виртуальная пространственная пружина: между схватами «рук»; «прикреплённая» к объекту манипулирования
Заключение
Вспоминая обсуждавшееся в статье о Boston Dynamics деление методов построения систем управления роботов на две условные группы: «классические» и «практические», — мы можем уверенно отнести рассмотренный здесь подход к «классическим». Он не противоречит традиционно применявшимся для промышленных манипуляторов и теоретически проработанным методам управления по координате, а дополняет их. Дотошные немцы разработали алгоритмы в аналитическом виде, провели их детальный анализ, доказали устойчивость.
В эту статью вошло далеко не всё. Здесь мы только рассмотрели саму идею, доказавшую свою работоспособность. Вот и наши ребята в ЦНИИ РТК в 2016 г. сумели соорудить первую работающую версию манипулятора с управлением импедансом [7]. О дальнейшей судьбе этого проекта лучше не спрашивать, но это уже другая история… Главное — что получилось.
Поддержание заданного вертикального усилия«Обтекание» препятствия
Манипулятор-пружинаИ хоть с огрехами, но штырь лезет в отверстие!
Ну, а в RMC не остановились на достигнутом и продолжили разработку алгоритмов управления импедансом [8]. Подтверждением тому является робот David, на котором исследуется управление импедансом теперь уже для гибких приводов, которые специально спроектированы гибкими. В отличие от традиционных гибких манипуляторов, в которых податливость является вынужденным результатом мероприятий по снижению веса.
Робот David: ESπ- (ESP-) управление — развитие алгоритмов управления механическим импедансом
Если же говорить о развитии отечественной робототехники, то стоит учиться на лучших мировых примерах, таких как пример RMC. Здесь была предпринята попытка не скучно написать формулы, а сделать их понятными. Когда человек понял идею, заинтересовался, то дальше он уже и сам разберётся в деталях (а потом и усложнит всё обратно до какой угодно степени скучности). Так что пусть меня простят строгие математики за допущенные вольности, если этот текст сможет вдохновить кого-то из начинающих (или не очень начинающих) робототехников, пробивающих свою дорогу к великому будущему!
- ↑См., например: A Passivity Based Cartesian Impedance Controller for Flexible Joint Robots — Part I: Torque Feedback and Gravity Compensation,
On the Passivity-Based Impedance Control of Flexible Joint Robots,
A Unified Passivity-based Control Framework for Position, Torque and Impedance Control of Flexible Joint Robots
и др. - ↑Impedance control — Wikipedia
- ↑N. Hogan. Impedance Control: An Approach to Manipulation: Part 1 — Theory, Part II — Implementation, Part III — Applications
- ↑См., например: Шахинпур, М. Курс робототехники. Пер. с англ. — М.: Мир, 1990. — 526 с.: ил. ISBN 5-03-001375-X (глава 5)
- ↑См. [3]
- ↑Честно говоря, мне кажется, что уравнения (VII) должны выглядеть так:$IMAGE33$$IMAGE34$Потому что демпфирующий момент до звена манипулятора на доходит. На то он и демпфирующий.
Возможно, когда-нибудь я проясню этот вопрос. - ↑Из опубликованных работ знаю эти: Force-Torque Control Implementation for 2 DoF Manipulator,
A Concept of Robotic System with Force-Controlled Manipulators for On-Orbit Servicing Spacecraft - ↑Elastic Structure Preserving (ESP) Control for Compliantly Actuated Robots
- Impedance Control for Soft Robots — Youtube-канал DLR RMC
- Youtube-канал KUKA
- Justin Humanoid Robot with DLR III arms and DLR II hands — Youtube-канал Hizook
- Joint Impedance Control with Kuka lwr — Youtube-канал Hamid Sadeghian
- Cartesian Impedance Control wwith KUKA LWR — Youtube-канал Hamid Sadeghian