Кинематический анализ и управление мобильной платформой с роликонесущими колесами

Статья подготовлена на основе работы Giovanni Indiveri, Dipartimento Ingegneria Innovazione, University of Salento, Lecce, Italy

Введение

Рис 1. Роликонесущие колеса с различными углами \gamma

На протяжении последних нескольких лет наблюдается стабильный рост интереса научного сообщества к роликонесущим колесам (Mecanum Wheels или Swedish Wheels). Отличием такого колеса от обычного является наличие роликов, установленных по его периметру (рис. 1). При определенном угле между ними и осью колеса можно получить дополнительную, по сравнению с традиционным колесом, степень свободы.

Колесо, изображенное на рис. 1, обычно называют роликонесущим (или ``Шведским'' или ``Mecanum'' колесом). Его основным параметром является угол \gamma между направлением вращения роликов и главной осью колеса. Обычно используют углы \gamma = 0^{\circ} или \gamma = 45^{\circ} (левый и правый рисунок, соответственно). Вырожденный случай с \gamma = 90^{\circ}  не представляет практического интереса, поскольку не дает никаких преимуществ по сравнению с традиционными колесами. Как известно из [1], роликонесущие колеса были изобретены в 1973 году в шведской компании Mecanum AB. С тех пор они привлекают внимание разработчиков роботов во всем мире. Такой интерес связан прежде всего с возможностью построения ``омниплатформ'', т.е. платформ для мобильных роботов, способных перемещаться по плоскости в любых направлениях в любой момент времени без переориентации. Требование переориентации робота или его колес является одним из признаков неголономных связей [2][3], что усложняет управление роботом. Большинство работ по теме роликонесущих колес рассматривают частные случаи платформ с тремя или четырьмя колесами имеющими конкретное значение угла \gamma. Целью данной работы является рассмотрение общего случая шасси с N роликонесущими колесами с постоянным (но произвольным) углом  \gamma и вывод необходимых и достаточных условий относительного расположения колес, которые бы гарантировали: 1) отсутствие сингулярностей; 2) возможность разделения сигнала управления на линейную и угловую составляющие. Такого рода информация позволит проводить унифицированный кинематических анализ уже существующих трех- и четырехколесных платформ, а также даст возможность спроектировать шестиколесную платформу для передвижения по пересеченной местности, что является весьма востребованной задачей [3]. Предложенным методом анализа можно будет легко определить условия появления сингулярностей для различных сочетаний углов ролик/колесо и различных относительных расположений колес. Более того, к построенной модели будут применимы уже хорошо зарекомендовавшие себя методы решения задач движения по заданной траектории и отслеживания угла поворота с учетом эффектов насыщения приводов.

Кинематическая модель

Рис 2. Трехколесная омниплатформа: геометрическая модель

В качестве примера рассмотрим омниплатформу с тремя колесами (рис. 2). Положим, что все главные оси колес (оси узлов) параллельны фиксированной плоскости P, имеющей нормальный вектор  n \bot P . Каждое из N роликонесущих колес входит в контакт с плоскостью земли P через ролик, изображенный на рисунке эллипсом с главными осями вдоль направляющих векторов  n_{\gamma h} : \| n_{\gamma h} \| = 1 и  u_{\gamma h}: \| u_{\gamma h} \| = 1. Вектор n_{\gamma h} направлен вдоль оси вращения ролика на линии главного периметра колеса и u_{\gamma h} = n_{\gamma h} \times k и показывает направление мгновенной тангенциальной скорости ролика, связанной с вращением вокруг оси   n_{\gamma h} . Все колеса считаются одинаковыми и имеющими радиус  \rho . Позиция h-го колеса в локальной системе координат, связанной с платформой, определяется вектором b_h. Направляющий вектор оси колесного узла, т.е. направляющий вектор главной оси вращения колеса, обозначается  n_h : \| n_h \| = 1 , а вектор u_h = n_h \times k показывает направление мгновенной тангенциальной скорости колеса, связанной с вращением вокруг n_h. Заметим, что векторы u_{\gamma h} и  n_h соответствуют векторам g и h, изображенным на рис. 1. Все векторы за исключением k параллельны плоскости земли P.

Рассмотрим два произвольных трехмерных вектора a и b, записанных в одной ортогональной системе координат. Их векторное произведение можно найти с использованием кососимметрической матрицы S(\cdot), т.е.
\begin{equation*}
a \times b = S(a) b.
\end{equation*}
Пусть v_c — линейная скорость центра робота и \omega_k — его угловая скорость, тогда линейную скорость v_h роликонесущего узла можно найти следующим образом:
\begin{equation*}
v_h = v_c + \omega_k \times b_h ,\qquad h = 1, 2, 3, ..., N.
\end{equation*}
Рассмотрим h-тое колесо и опустим для простоты изложения индекс h. В случае идеального качения скорость  v = v_h будет физически реализовываться вращением ролика вокруг n_\gamma и вращением колеса вокруг n. В частности, предполагая, что  n_\gamma и n не сонаправлены, т.е. \gamma \neq (2 \nu + 1) 90^{\circ}, где \nu — целое
\begin{equation}
\label{eq2}
v = \alpha u_\gamma + \beta u
\end{equation}
из чего следует, что
\begin{equation*}
n^T v = \alpha (n^T u_\gamma) \\
n^T v = \beta (n^T u)
\end{equation*}
и следовательно
\begin{equation*}
v = \frac{n^T v}{n^T u_\gamma} u_\gamma + \frac{n^T v}{n^T u} u
\end{equation*}
Заметим, что вращение ролика вокруг оси n_\gamma, учитываемое в первом слагаемом, является полностью пассивным, в то время как вращение колеса вокруг n, определяемое вторым слагаемым, производится двигателем робота. Пусть  n_h \dot q_h угловая скорость вращения h-го двигателя, тогда, при условии идеального качения, связь между \dot q и соответствующей линейной скоростью любого узла будет иметь вид
\begin{equation}
\label{eq4}
\frac{n^T_\gamma}{u^T n_\gamma} v = \rho \dot q
\end{equation}
где явно учтено, что влияние
\begin{equation*}
\frac{n^T v}{u^T_\gamma n} u^T_\gamma u
\end{equation*}
скорости v в направлении u на значение выражения  \rho \dot q равно нулю, т.к. вследствие гипотезы идеального качения, оно полностью определяется пассивным вращением роликов. Подставляя \eqref{eq2} в \eqref{eq4} и учитывая, что  u^T_h n_{\gamma h} = - \cos \gamma для всех h, можно получить
\begin{equation}
\label{eq5}
-\frac{1}{\cos \gamma} n^T_{\gamma h} v_c + 
\frac{1}{\cos \gamma} n^T_{\gamma h} S(b_h) k \omega = \rho \dot q_h
\end{equation}
Спроецировав формулу \eqref{eq5} на оси локальной системы координат с третьей осью, направленной вдоль  k \bot P , получим выражение для  n^T_{\gamma h} S(b_h) k
\begin{equation*}
n^T_{\gamma h} S(b_h) k =
n_{\gamma x h} b_{y h} - n_{\gamma y h} b_{x h} =
-b^T_h u_{\gamma h}
\end{equation*}
Преобразовав формулу \eqref{eq5}, получим общее уравнение для обратной кинематической задачи в матричной форме
\begin{equation}
\label{eq7}
M \begin{pmatrix} v_c \\ \omega \end{pmatrix} = \rho \dot q \cos \gamma ,
\end{equation}
где
\begin{equation}
\label{eq8}
M = -
\begin{pmatrix}
n_{\gamma x 1} & n_{\gamma y 1} & b^T_1 u_{\gamma 1} \\
n_{\gamma x 2} & n_{\gamma y 2} & b^T_2 u_{\gamma 2} \\
\vdots & \vdots & \vdots & \vdots \\
n_{\gamma x N} & n_{\gamma y N} & b^T_N u_{\gamma N}
\end{pmatrix}
\in \mathbb{R}^{N \times 3}
\end{equation}
и  \dot q \in \mathbb{R}^{N \times 1} — вектор скоростей приводов. Уравнения \eqref{eq7} и eqref{eq8} определяют общую кинематическую модель [4] мобильной платформы с N роликонесущими колесами. В отличие от большинства представленных в литературе моделей, рассматривающих частные случаи платформ с тремя или четырьмя колесами фиксированной конфигурации, эти уравнения позволяют провести полный анализ кинематики платформы не только в зависимости от угла \gamma, но и в зависимости от различных конфигураций взаимного расположения колес. Такой анализ может быть чрезвычайно полезным как при проектировании механической части платформы, так и при разработке системы управления.

При условии, что  \cos \gamma \neq 0 и M имеет ранг 3, из уравнения \eqref{eq7} можно получить угловые скорости приводов для любых желаемых значений скоростей платформы  (v^T_{c d},\omega_d)^T . Сформулируем в виде леммы

Лемма 1

Для мобильной платформы на N одинаковых роликонесущих колесах радиуса \rho, описываемой уравнением \eqref{eq7}, любая скорость  (v^T_{c d},\omega_d)^T может быть получена комбинацией угловых скоростей приводов  \dot q_d тогда и только тогда, когда выполняются следующие два условия:

  1.  \cos \gamma \neq 0 ;
  2. ранг M = 3;

в частности,
\begin{equation*}
\dot q_d =
\frac{1}{\rho \cos \gamma} M \begin{pmatrix} v_{c d} \\ \omega_d \end{pmatrix}.
\end{equation*}
Нарушение любого из этих условий ведет к появлению кинематических сингулярностей различного рода: нарушение условия 1 ведет к полной потере контроля над платформой, в то время как нарушение условия 2 ведет к потере управляемости (в этом случае каждому значению входа \dot q_d будет соответствовать множество значений  (v^T_{c d},\omega_d)^T ).

Матрицу M, определенную в \eqref{eq8}, можно представить в виде композиции M = \begin{pmatrix} M_l & M_a \end{pmatrix} , где M_l \in \mathbb{R}^{N \times 2} и M_a \in \mathbb{R}^{N \times 1}. Таким образом, уравнение \eqref{eq7} примет вид
\begin{equation}
\label{eq10}
M_l v_c + M_a \omega = \rho \dot q
\cos \gamma .
\end{equation}

Управление движением омниплатформы на роликонесущих колесах

Основываясь на полученной кинематической модели, можно решить задачи движения по заданной траектории и отслеживания угла поворота для произвольного робота с N \geq 3 роликонесущими колесами. Кроме того, она позволяет также учесть явления, возникающие при достижении приводами максимальных скоростей (насыщении).

Определим задачу управления. Пусть значения скоростей приводов \dot q — входной сигнал системы, а линейная и угловая скорости платформы v_c и \omega — сигнал на ее выходе.

Система управления нижнего уровня

Согласно стандартным методам проектирования [5], система управления нижнего уровня может быть децентрализованной или централизованной. В первом случае каждый привод управляется отдельным контуром с ПИД-регулятором; во втором — управление строится на централизованном расчете моментов на приводах напр., методом линеаризации).

Метод децентрализованного (независимого) управления значительно проще: каждый компонент вектора \dot q_d используется в качестве сигнала управления для соответствующего ПИД-контура скорости, при этом эффекты взаимовлияния приводов не учитываются. Если производительность этих контуров будет достаточно
высока по сравнению вышестоящими контурами, то задержка между требуемой и реальной скоростью будет пренебрежимо мала: в таком случае, при условии идеального качения колес, зависимость между скоростью платформы  (v^T_{c d},\omega_d)^T и скоростями приводов может быть аппроксимирована уравнением \eqref{eq7}, в котором реальные скорости приводов \dot q будут заменены на желаемые \dot q_d.

Централизованные системы управления обычно строятся на основе динамической модели робота [6]. Для омниплатформы на роликонесущих колесах уравнение динамики имеет вид
\begin{equation}
\label{eq11}
I \ddot q + (C(\omega) + F) \dot q = \tau
\end{equation}
где I \in \mathbb{R}^{N \times N} — положительно определенная матрица инерции, C(\omega) \in \mathbb{R}^{N \times N} — кососимметрическая матрица кориолисовых и центробежных сил (\omega k — угловая скорость робота), F \in \mathbb{R}^{N \times N} — диагональная матрица сил трения и \tau \in \mathbb{R}^{N \times 1} — вектор моментов на приводах. Учитывая недиагональность матриц I и C(\omega), а также зависимость \eqref{eq7} \omega от \dot q, уравнение \eqref{eq11} нелинейное и связанное. В то же время, как это обычно делают при расчете манипуляторов [5], вектор
управления \tau можно рассчитать методом линеаризации системы
\begin{equation*}
\tau = (C(\omega) + F) \dot q + I y,
\end{equation*}
вводя линейную разделимую модель
\begin{equation*}
\ddot q = y,
\end{equation*}
которая может быть впоследствии использована для создания замкнутого контура по y для отслеживания \dot q_d.

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

Однако, как показывают экспериментальные данные, несмотря на свою простоту метод независимого управления является достаточно точным для отслеживания несложных траекторий на постоянной скорости. Поэтому в дальнейшем мы будем считать, что наша платформа имеет именно такую систему управления низкого уровня, а
алгоритмы отслеживания траектории будут реализованы в системе навигации, находящейся уровнем выше. Таким образом мы представили платформу в виде кинематической модели со входом \dot q_d и выходом  (v^T_{c d},\omega_d)^T .

Сформулируем задачу отслеживания траектории и угла поворота платформы. Пусть  \langle G \rangle = (i,j,k) глобальная инерциальная система координат, где  k = (i \times j) \bot P , тогда произвольная плоская дифференцируемая кривая в P
\begin{equation*}
r_d(t) = i (r^T_d(t) i) + j (r^T_d(t) j)
\end{equation*}
является желаемой траекторией.

Задачей кинематического отслеживания траектории является поиск такого закона управления входными сигналами системы \dot q_d, который бы обеспечивал сходимость к нулю ошибок по положению и направлению
\begin{equation*}
e_r(t) = r_d(t) - r_c(t),
\end{equation*}
\begin{equation*}
e_\phi (t) = \phi_d(t) - \phi(t),
\end{equation*}
где r_c(t) — положение в \langle G \rangle точки центра робота, \phi_d(t) — его желаемое направление и \phi(t) — фактическое направление. Заметим, что как для роботов с дифференциальным приводом, так и для роботов с поворотными колесами желаемое направление не может быть выбрано произвольным образом. Робот всегда должен быть направлен вдоль траектории. Однако для платформы с роликонесущими колесами это не так. Для любой точки желаемой траектории r_d(t) может быть выбрано произвольное направление \phi_d(t), не обязательно совпадающее с траекторией.

Расчет контура движения вдоль траектории

Рассмотрим систему, описываемую уравнением \eqref{eq10} и двигающуюся вдоль траектории \dot r_c(t) = v_c, \dot \phi_d(t) = \omega. Предположим, что условия леммы 1 выполнены, N \geq 3, и M_a \bot span(M_l) (это всегда можно гарантировать выбором геометрии платформы), тогда любая линейная и угловая скорости робота v_c = (\cdot, \cdot, 0)^T и \omega k будут однозначно соответствовать управляющим сигналам \dot q_d:
\begin{equation}
\label{eq18}
\dot q_d = \dot q_{dl} + \dot q_{da}
\end{equation}
\begin{equation}
\label{eq19}
\dot q_{dl} = \frac{1}{\rho \cos \gamma} M_l v_c
\end{equation}
\begin{equation}
\label{eq20}
\dot q_{da} = \frac{1}{\rho \cos \gamma} M_a \omega
\end{equation}
Следуя стандартной методике, выберем функцию Ляпунова следующего вида
\begin{equation*}
V = \frac{1}{2} e^T_r K_r e_r + \frac{1}{2} e^T_\phi K_\phi e_\phi,
\end{equation*}
где K_r \in \mathbb{R}^{2 \times 2} — симметрическая положительно определенная (K_r > 0) матрица и K_\phi — положительная постоянная. Взяв производную по времени от V, получим
\begin{equation*}
\dot V = e^T_r K_r (\dot r_d(t) - v_c) +
e^T_\phi K_\phi (\dot \phi_d(t) - \omega).
\end{equation*}

Если v_c и \omega удовлетворяют следующим равенствам
\begin{equation}
\label{eq23}
v_c = \dot r_d(t) + K_r (r_d(t) - r_c(t)),
\end{equation}
\begin{equation}
\label{eq24}
\omega = \dot \phi_d(t) + K_\phi (\phi_d(t) - \phi(t)),
\end{equation}
то производная \dot V отрицательно определена, т.е.
\begin{equation*}
\dot V = -e^T_r K_r K_r e_r - (K_\phi e_\phi)^2 < 0
\end{equation*}

Подставляя \eqref{eq23} и \eqref{eq24} в \eqref{eq19} и \eqref{eq20}, получим соответствующие желаемые скорости для приводов
\begin{equation}
\label{eq26}
\dot q_d(t) = \dot q_{dl}(t) + \dot q_{da}(t),
\end{equation}
\begin{equation}
\label{eq27}
\dot q_{dl}(t) = \frac{1}{\rho \cos \gamma} M_l \dot r_d(t) +
\frac{1}{\rho \cos \gamma} M_l K_r (r_d(t) - r_c(t)),
\end{equation}
\begin{equation}
\label{eq28}
\dot q_{da}(t) = \frac{1}{\rho \cos \gamma} M_a \dot \phi_d(t) +
\frac{1}{\rho \cos \gamma} M_a K_\phi (\phi_d(t) - \phi(t)).
\end{equation}

Решение \eqref{eq26} прямо пропорционально скоростям, и ошибкам слежения. Оно гарантирует экспоненциальную сходимость ошибок к нулю (e_r = 0, e_\phi = 0) и, как следствие, решает задачу движения вдоль траектории. Закон управления \eqref{eq26} состоит из двух частей: \eqref{eq27} отвечает за отслеживание координаты и \eqref{eq28} -- за отслеживание направления. Стоит заметить, что благодаря гипотезе M_a \bot span(M_l) две составляющие команды \eqref{eq27} и \eqref{eq28} не конфликтуют друг с другом, т.е. вклад \dot q_{dl} в угловую скорость, точно так же как и вклад \dot q_{da} в линейную скорость равен нулю.

Насыщение приводов

Полученный выше закон управления неявно предполагает, что робот способен (моментально) воспроизвести любую скорость \dot q_d вне зависимости от ее нормы. На практике приводы далеки от идеальных: при их работе возникают ненулевые переходные процессы и имеется верхняя граница воспроизводимых ими скоростей. Что касается времени переходных процессов, мы считаем, что контуры управления нижнего уровня работают со значительно более высокой скоростью, чем контур отслеживания траектории (кинематический контур). Это требование отражается на выборе мощности привода и формы траектории. Мощность привода должна быть достаточной, чтобы при данных инерционных свойствах робота максимальные развиваемые приводами ускорения были выше максимальных встречающихся на траектории (\ddot \phi_d(t) и \ddot r_d(t)). При выполнении этого условия кинематический закон управления дает хороший результат. Решение же проблемы насыщения приводов несколько более сложное. Из-за пропорциональной природы закона \eqref{eq26} ошибка слежения (как координатная, так и угловая) может легко оказаться настолько большой,
что приводы достигнут предела воспроизводимой скорости.

Пусть \dot q_{\max j} > 0 — абсолютное значение максимальной скорости, достижимой приводом j, \dot q_{\max} = \min \{ \dot q_{\max j} \} , где j = 1,2,\ldots,N, а \| \dot q_d \|_\infty — максимальное значение скорости, получающееся в результате работы закона управления \eqref{eq26}. Какими бы ни были коэффициенты K_r и K_\phi, при различных значениях \dot \phi_d(t), \dot r_d(t), e_r(t) и e_\phi(t) условие отсутствия насыщения
\begin{equation*}
\| \dot q_d \|_\infty \leq \dot q_{\max}
\end{equation*}
всегда будет нарушаться. Стоит заметить, что если сигналы \dot \phi_d(t) и \dot r_d(t) могут быть ограничены программно, то сигналы ошибок ограничены быть не могут, поскольку они зависят от начального положения робота. Следовательно, превышающие возможности двигателей команды не могут быть исключены из системы априорно и для них требуется дополнительная обработка.

Обнаружение насыщения приводов

Насыщение приводов может оказать негативное влияние на качество отработки траектории: из-за аддитивной структуры уравнения \eqref{eq26}, достижение одним из приводов максимальной скорости может приводить к взаимовлияниям между угловой и линейной скоростями платформы, даже несмотря на тот факт, что M_a не принадлежит линейной оболочке M_l. Предположим, к примеру, что все компоненты \dot q_{dl}(t) лежат в допустимых пределах, однако после добавления составляющей \dot q_{da}(t) результирующий вектор \dot q_d(t) превысил допустимые значения. В этом случае обе составляющие: и линейная, и угловая — будут испорчены. Простейшим методом борьбы с этой проблемой является масштабирование вектора \dot q_d(t) таким образом, чтобы все его компоненты оказались в допустимых пределах. Такое решение, конечно, может гарантировать, что все компоненты вектора \dot q_d(t) находятся в заданных пределах, однако для начала требуется доказать, что преобразование масштабирования не приведет к потере устойчивости системы. Более того, во многих задачах может случиться так, что приоритет отработки линейной и угловой скорости различен. Таким образом, масштабирование вектора \dot q_d(t) приведет к замедлению сходимости заданий с высоким приоритетом из-за присутствия в результирующем сигнале менее важных компонентов. Чтобы избавиться от такого рода проблем и гарантировать приоритезированное выполнение задач отработки координат и направления, необходимо произвести некоторые изменения в предложенном законе управления. Сумма в \eqref{eq26} должна быть взвешена таким образом, чтобы: 1) результирующий командный вектор \dot q_d(t) имел норму в допустимых пределах; 2) задания (в данном случае, отслеживание положения и направления) выполнялись в порядке приоритета; и 3) ошибка слежения сходилась к нулю.

Рассмотрим функцию насыщения
\begin{equation*}
\sigma : \mathbb{R} [ \times 0, \infty ) \to \mathbb{R}
\end{equation*}
\begin{equation*}
\sigma(x,c) = \begin{cases}
0, & \text{if $x = 0$} \\
1, & \text{if $0 \lt |x| \lt c$} \\
c/|x|, & \text{else.}
\end{cases}
\end{equation*}

Будем называть неотрицательный второй аргумент c функции \sigma(x,c) емкостью x. Данная функция является неотрицательным скаляром, который ``обрезает'' выражение x \sigma(x,c) до значения c sign(x) в случаях, когда |x| становится больше или равным своей емкости. Таким образом, выражение x \sigma(x,c) моделирует насыщение x в пределах [-c,c]. Также стоит заметить, что по определению  \sigma(x,0) = 0 \qquad \forall x т.е. при установке нулевой емкости выражение x \sigma(x,0) равно нулю при любых значениях x.

Пусть
\begin{equation}
\label{eq32}
\dot q_d = \sum_{h=1}^n {\dot q_h} \qquad \mbox{—}
\end{equation}
сигнал на входе приводов, состоящий и n независимых заданий  \dot q_1, \dot q_2, \ldots, \dot q_n отсортированных в порядке уменьшения приоритета (\dot q_1 имеет наивысший приоритет). Каждое слагаемое в правой части уравнения \eqref{eq32} и само значение \dot q_d(t) в любой момент должны иметь норму, ограниченную значением \dot q_{\max}. Учитывая, что задания должны выполняться в приоритетном порядке, можно записать выражение \eqref{eq32} в следующем виде:
\begin{align}
\label{eq33}
\dot q_d &= \dot q_1 \sigma(\| \dot q_1 \|_\infty,c_1) \\
&+ \dot q_2 \sigma(\| \dot q_2 \|_\infty,c_2) \\
&+ \vdots \\
&+ \dot q_n \sigma(\| \dot q_n \|_\infty,c_n)
\end{align}
где емкость каждого задания вычисляется рекурсивно
\begin{align}
\label{eq34}
c_1(t) & \leq \dot q_{\max} \mbox{(положительная постоянная)} \\
c_2(t) & = c_1(t) - \| \dot q_1 \|_\infty \sigma(\| \dot q_1
\|_\infty,c_1(t)) \\
c_3(t) & = c_2(t) - \| \dot q_2 \|_\infty \sigma(\| \dot q_2 \|_\infty,c_2(t))
\\
\vdots & = \vdots \\
c_n(t) & = c_{n-1}(t) - \| \dot q_{n-1} \|_\infty \sigma(\| \dot q_{n-1}
\|_\infty,c_{n-1}(t)).
\end{align}

Заметим, что по построению емкости всех заданий неотрицательны, т.е.
\begin{equation*}
c_j \geq 0 \qquad \forall j \in [1,n],
\end{equation*}
и что
\begin{align*}
&c_j \leq c_{j-1} \qquad \forall j \in [2,n] \\
&c_i = 0 \Rightarrow c_j = 0 \qquad \forall j > i,
\end{align*}
то есть, если емкость некоторого задания равна нулю, то емкость всех заданий с более низким приоритетом так же равна нулю. Таким образом, емкость задания i может рассматриваться как емкость, оставшаяся в результате добавления команды задания i-1; к примеру, емкость c_2 (а также все c_j : j > 2) будет равна нулю в том случае, если задание 1 с сигналом \dot q_1 заняло всю емкость c_1. Другими словами, каждое задание будет иметь ненулевой вес в сумме \eqref{eq33} только тогда, когда все задания с более высоким приоритетом не исчерпали всю имеющуюся емкость. Тот факт, что c_1 не должен превосходить значение \dot q_{\max}, объясняется тем, что задание 1 само по себе не должно превышать возможности приводов \dot q_{\max}; более того, с учетом свойства c_{j+1} \leq c_{j}, \forall j \in [1,n-1] условие c_1 \leq \dot q_{\max} гарантирует, что каждое слагаемое выражения \eqref{eq33} будет иметь норму меньшую или равную \dot q_{\max}.

Для того, чтобы применить описанный метод к нашей задаче отслеживания траектории, предположим, что заданные линейная и угловая скорости \dot r_d(t) и \dot \phi_d(t) достаточно малы, а конкретно
\begin{align}
\label{eq36}
&\frac{1}{\rho |\cos \gamma|} \| M_l \dot r_d(t) \|_\infty <
\frac{1}{2} \dot q_{\max} \qquad \forall t \\
\label{eq37}
&\frac{1}{\rho |\cos \gamma|} \| M_a \dot \phi_d(t) \|_\infty <
\frac{1}{2} \dot q_{\max} \qquad \forall t.
\end{align}

Эти условия необходимы для возможности асимптотической сходимости закона управления: они гарантируют, что при отсутствии ошибки по положению и направлению закон управления \eqref{eq26} не достигает предела насыщения, т.е.
\begin{equation*}
e_r = 0, q_\phi = 0 \Rightarrow \\
\| \dot q_d(t) \|_\infty = \frac{1}{\rho | \cos \gamma |} \| M_l \dot r_d(t)
+ M_a \dot \phi_d(t) \|_\infty \\
\leq \frac{1}{\rho |\cos \gamma|} [\| M_l \dot r_d(t) \|_\infty + \| M_a \dot
\phi_d(t) \|_\infty] \\
< \dot q_{\max}.
\end{equation*}

Для простоты объяснения, предположим, что отслеживание положения более
приоритетно, чем отслеживание направления робота. Тогда запишем следующие
соотношения для заданий:
\begin{align}
\label{eq38}
\dot q_1 &= \frac{1}{\rho \cos \gamma} M_l \dot r_d(t) \\
\label{eq39}
\dot q_2 &= \frac{1}{\rho \cos \gamma} M_l K_r (r_d(t) - r_c(t)) \\
\label{eq40}
\dot q_3 &= \frac{1}{\rho \cos \gamma} M_a \dot \phi_d(t) \\
\label{eq41}
\dot q_4 &= \frac{1}{\rho \cos \gamma} M_a K_\phi (\phi_d(t) - \phi(t)).
\end{align}

Из уравнения \eqref{eq33} получим
\begin{equation*}
c_1(t) = \dot q_{\max} \gt 0 \qquad \forall t
\end{equation*}
тогда из \eqref{eq36} следует, что
\begin{equation*}
0 < \frac{1}{2} \dot q_{\max} \leq c_2 \leq \dot q_{\max},
\end{equation*}
т.е. задания 1 и 2 всегда будут иметь ненулевую емкость. Более того, из гипотезы  \| \dot q_1\|_\infty<0.5 \dot q_{\max} и c_1 = \dot q_{\max} следует, что
\begin{equation*}
\dot q_1 \sigma(\| \dot q_1 \|_\infty,c_1) = \dot q_1 \qquad \forall t.
\end{equation*}

Из этого факта, а также из предположения M_a \bot span(M_l), следует, что если подставить \eqref{eq38} - \eqref{eq41} в \eqref{eq33} и \eqref{eq34}, то линейная и угловая скорости робота будут иметь вид \begin{align*}
v_c(t) &= \dot r_d(t) + K_r e_r(t) \sigma(\| \dot q_2 \|_\infty,c_2) \\
\omega(t) &= \dot \phi_d(t) \sigma(\| \dot q_3 \|_\infty,c_3)
+ K_\phi e_\phi(t) \sigma(\| \dot q_4 \|_\infty,c_4).
\end{align*}

Заметим, что выражение \sigma(\| \dot q_2 \|_\infty,c_2) может быть равным нулю в том и только том случае, если \| \dot q_2 \|_\infty = 0, т.к. емкость c_2 строго положительна. Следовательно,
\begin{equation*}
V_1 = \frac{1}{2} e^T_r K_r e_r \Rightarrow \\
\dot V_1 = e^T_r K_r (\dot r_d(t) - v_c(t))
= -e^T_r K_r K_r e_r \sigma(\| \dot q_2 \|_\infty,c_2) \lt 0,
\end{equation*}
т.е. \dot V_1 отрицательно определена, что доказывает глобальную асимптотическую устойчивость по Ляпунову решения e_r = 0. Заметим, что выражения \dot q_3 и \dot q_4 не влияют на производную \dot V_1, т.к. они порождаются M_a, поэтому отрогональны линейной оболочке M_l.

Сходимость задания отслеживания направления также может быть обосновано с помощью теоремы Ляпунова. Факт асимптотической устойчивости e_r = 0 гарантирует, что
\begin{equation*}
\lim_{t \to \infty} \dot q_2(t) = 0 \Rightarrow \lim_{t \to \infty} c_3 = c_2 \geq \frac{1}{2} \dot q_{\max}.
\end{equation*}

С учетом необходимого условия \eqref{eq37} это означает, что
\begin{equation*}
\exists t^* : \dot q_3 \sigma(\| \dot q_3 \|_\infty,c_3) = \dot q_3
\qquad \mbox{и} \qquad c_4 > 0 \qquad \forall t \geq t^*,
\end{equation*}
из чего следует
\begin{equation*}
\Bigl. \omega(t) \Bigr|_{t \geq t^*} = \dot \phi_d(t)
+ K_\phi e_\phi(t) \sigma(\| \dot q_4 \|_\infty,c_4),
\end{equation*}
где \sigma(\| \dot q_4 \|_\infty,c_4) равняется нулю тогда и только тогда, когда \| \dot q_4 \|_\infty = 0, т.к. емкость c_4 строго положительна для t \geq t^*. Следовательно,
\begin{align*}
&V_2 = \frac{1}{2} e^T_\phi K_\phi e_\phi \\
&\Bigl.\dot V_2(t) \Bigr|_{t \geq t^*} =
-e^T_\phi K_\phi^2 e_\phi \sigma(\| \dot q_4 \|_\infty,c_4) < 0,
\end{align*}
т.е. существует такое конечное время t^*, после которого производная \dot V_2 становится отрицательно определенной, что доказывает сходимость к нулю ошибки по направлению e_\phi(t). Хотя до момента времени t^* этой сходимости может и не быть, что допускается более низким приоритетом этой задачи. Заметим также, что выражения \dot q_1 и \dot q_2 не влияют на производную \dot V_2, т.к. они порождаются M_l, поэтому отрогональны линейной оболочке M_a.

В случае, если потребуется отрабатывать с наивысшим приоритетом направление, а не координату робота, нужно будет лишь переназначить компоненты \dot q_1, \ldots, \dot q_4 следующим образом:
\begin{align*}
\dot q_1 &= \frac{1}{\rho \cos \gamma} M_a \dot \phi_d(t) \\
\dot q_2 &= \frac{1}{\rho \cos \gamma} M_a K_\phi (\phi_d(t) - \phi(t)) \\
\dot q_3 &= \frac{1}{\rho \cos \gamma} M_l \dot r_d(t) \\
\dot q_4 &= \frac{1}{\rho \cos \gamma} M_l K_r (r_d(t) - r_c(t)) ;
\end{align*}
асимптотическая устойчивость по Ляпунову для этого случая доказываться аналогично.

Пример расчета кинематики четырехколесной платформы

6-дюймовое колесо компании KORNYLAK

Рис 3. 6-дюймовое колесо компании KORNYLAK

В качестве примера рассмотрим простой четырехколесный робот, имеющий на виде сверху форму прямоугольника. Пусть роликонесущие колеса располагаются в углах этого робота на расстояниях x_w = 0.165~\mbox{mm}, y_w = 0.132~\mbox{mm} от геометрического центра (именно геометрический центр мы cчитаем началом
координат). Будем использовать колеса компании KORNYLAK (см. рис. 3). Их диаметр D = 151~\mbox{mm}, угол наклона роликов  \gamma = 45^{\circ}.

Запишем значения векторов, участвующих в формировании матрицы M:
\begin{align*}
u_{\gamma } &= \frac{1}{2} \begin{pmatrix} -1 \\ 1 \end{pmatrix} &
n_{\gamma 1} &= \frac{1}{2} \begin{pmatrix} 1 \\ 1 \end{pmatrix} &
b_1 &= \begin{pmatrix} x_w \\ y_w \end{pmatrix} \\
%
u_{\gamma 2} &= \frac{1}{2} \begin{pmatrix} 1 \\ 1 \end{pmatrix} &
n_{\gamma 2} &= \frac{1}{2} \begin{pmatrix} 1 \\ -1 \end{pmatrix} &
b_2 &= \begin{pmatrix} x_w \\ -y_w \end{pmatrix} \\
%
u_{\gamma 3} &= \frac{1}{2} \begin{pmatrix} -1 \\ 1 \end{pmatrix} &
n_{\gamma 3} &= \frac{1}{2} \begin{pmatrix} 1 \\ 1 \end{pmatrix} &
b_3 &= \begin{pmatrix} -x_w \\ -y_w \end{pmatrix} \\
%
u_{\gamma 4} &= \frac{1}{2} \begin{pmatrix} 1 \\ 1 \end{pmatrix} &
n_{\gamma 4} &= \frac{1}{2} \begin{pmatrix} 1 \\ -1 \end{pmatrix} &
b_4 &= \begin{pmatrix} -x_w \\ y_w \end{pmatrix}
\end{align*}

Запишем саму матрицу M:
\begin{equation*}
M =
\begin{pmatrix}
n_{\gamma 1 1} & n_{\gamma 1 2} & b_1 u_{\gamma 1} \\
n_{\gamma 2 1} & n_{\gamma 2 2} & b_2 u_{\gamma 2} \\
n_{\gamma 3 1} & n_{\gamma 3 2} & b_3 u_{\gamma 3} \\
n_{\gamma 4 1} & n_{\gamma 4 2} & b_4 u_{\gamma 4}
\end{pmatrix}
=
\begin{pmatrix}
-\frac{1}{2} \sqrt{2} & -\frac{1}{2} \sqrt{2} & 0.01650 \sqrt{2} \\
-\frac{1}{2} \sqrt{2} & \frac{1}{2} \sqrt{2} & -0.01650 \sqrt{2} \\
-\frac{1}{2} \sqrt{2} & -\frac{1}{2} \sqrt{2} & -0.01650 \sqrt{2} \\
-\frac{1}{2} \sqrt{2} & \frac{1}{2} \sqrt{2} & 0.01650 \sqrt{2}
\end{pmatrix}
\end{equation*}

Имея все исходные данные и учитывая невырожденность матрицы M, запишем уравнение кинематики робота:

\begin{equation*}
\dot q_d =
\frac{1}{\rho \cos \gamma} M \begin{pmatrix} v_{x d} \\ v_{y d} \\ \omega_d
\end{pmatrix}, \qquad \mbox{где} \qquad \rho = \frac{1}{2} D.
\end{equation*}

Полученное уравнение может быть использовано как для вывода закона управления роботом, так и для расчета различных характеристик платформы. Определим, к примеру, максимальные линейные и угловые скорости робота, достижимые без насыщения приводов. Диаграмма линейных скоростей представлена на рис. 4. Угловая скорость не может превышать значения 28.8 рад/с.

Рис 4. Диаграмма достижимых скоростей для четырехколесной омниплатформы

Заключение

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

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

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

Список литературы:

  1. O. Diegel, A. Badve, G. Bright, J. Potgieter, and S. Tlale, ``Improved mecanum wheel design for omni-directional robots'', presented at the Australian Conf. Robot. Autom., Auckland, New Zealand, Nov. 27–29, 2002.
  2. S. Ostrovskaya, ``Dynamics of quasiholonomic and nonholonomic reconfigurable rolling robots'', Ph.D. dissertation, Dept. Mech. Eng., McGill Univ., Montreal, QC, Canada, Jul. 2001.
  3. A. Salerno, S. Ostrovskaya, and J. Angeles, ``The development of quasinonholonomic wheeled robots``, in Proc. 2002 IEEE Int. Conf. Robot. Autom. (ICRA 2002), Washington, DC, May, pp. 3514–3520.
  4. R. Volpe, J. Balaram, T. Ohm, and R. Ivlev, ''The rocky 7 mars rover prototype'', in Proc. 1996 IEEE/RSJ Int. Conf. Intell. Robots Syst. (IROS 1996), Osaka, Japan, Nov. 4–8, vol. 3, pp. 1558–1564.
  5. S. K. Saha, J. Angeles, and J. Darcovich, ``The design of kinematically isotropic rolling robots with omnidirectional wheels'', Mech. Mach. Theory, vol. 30, no. 8, pp. 1127–1137, Nov. 1995.
  6. L. Sciavicco and B. Siciliano, Modelling and Control of Robot Manipulators, 2nd ed., Berlin, Germany: Springer-Verlag, 2000.
  7. J. Angeles, Fundamentals of Robotic Mechanical Systems, 3rd ed., Berlin, Germany: Springer-Verlag, 2007.

Leave a Reply

You must be logged in to post a comment.