Описание движения мобильного робота

движение робота

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

Мобильные роботы могут перемещаться в различных средах: в водной, воздушной, по земле, в космосе. И движение в каждой среде имеет свои особенности, связанные с их различными физическими свойствами.

В этой публикации я рассмотрю колесных роботов, которые способны перемещаться по достаточно плоским поверхностям.

При разработке системы перемещения робота необходимо учитывать следующие моменты:

  • скорость или ускорение движения
  • точность позиционирования (повторяемость)
  • гибкость и робастность (надежность) при различных условиях
  • эффективность (низкое энергопотребление)

 

Система координат

Для того чтобы математически описать движение мобильного робота нам потребуется определить системы координат. Я введу две системы координат —  мировую систему координат W (буду считать что он неподвижна в пространстве), и система координат робота R, которая перемещается в пространстве и остается неподвижной относительно самого робота.

Системы координат

Системы координат

Нам необходимо определить местоположение робота, то есть мы хотим знать, как преобразовывать координаты между W и R.

 

Степени свободы движения

Число степеней свободы определяет минимальное количество независимых переменных (обобщённых координат), необходимых для полного описания движения механической системы.

Твердое тело, которое перемещается и вращается двигаясь по одномерному пути имеет одну степень свободы — поступательную. В качестве примера можно привезти поезд, движущийся по рельсам.

Твердое тело, которое перемещается и вращается на плоскости имеет 3 степени свободы: 2 поступательных и 1 вращательную. Пример: наземный робот.

Твердое тело, которое перемещается и вращается в 3D-объеме имеет 6 степеней свободы: 3 поступательных и 3 вращательных. Пример: летающий робот.

Всенаправленное колесо

Всенаправленное колесо

Особый случай — это так называемый голономный робот, который способен перемещаться мгновенно в любом направлении в пространстве его степеней свободы (робот является голономным если число управляемых степеней свободы равно полному числу степеней свободы). Голономные роботы существуют, но требуют множество моторов и необычный конструктив, что зачастую очень непрактично. Однако, наземные голономные роботы могут быть реализованы с использованием всенаправленных колес (omni-wheels).

На видео показан пример четырехколесного робота со всенаправленными колесами.


 

Конфигурации колесных роботов

Существует множество различных конфигураций мобильных роботов.

Есть те, которые применяются реже, например, двухколесная платформа сигвей (segway) с динамическим балансом обладает хорошей высотой при малой площади и достаточно большим ускорением.

segway_platform

Или марсоход Opportunity, который имеет колеса на штангах для преодоления больших препятсвий.

mars_rover

Но чаще применяются другие типы конфигураций.

Это простые, надежные, прочные механизмы, пригодные для роботов, которые в основном передвигаются по плоскости.

Все эти роботы неголономны (используется два двигателя, но три степени свободы движения). Например, автомобилеподобный робот не может мгновенно двигаться в сторону.

Стандартный колесные конфигурации

Стандартный колесные конфигурации

 

Робот с дифференциальным приводом

Дифференциальный привод

Дифференциальный привод

Такая конфигурация используется в роботах-пылесосах.

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

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

криволинейный путь робота с дифференциальным приводом

Движение по дуге

Обозначим скорости колес (линейные скорости с которыми они «покрывают» поверхность) V_L и V_R - для левого и правого колес, соответственно, и W расстояние между колесами.

  • Прямолинейное движение, если V_L = V_R
  • Разворот на месте, если V_L = - V_R
  • В более общем случае — движение по дуге

Для того, чтобы найти радиус R криволинейного пути, рассмотрим период движения \Delta t, в течении которого робот движется вдоль дуги окружности, имеющей угол \Delta \theta.

  • Левое колесо: пройденное расстояние = V_L \Delta t; радиус дуги = R - \frac{W}{2}
  • Правое колесо: пройденное расстояние = V_R \Delta t; радиус дуги = R - \frac{W}{2}
  • Обе колесные дуги имеют в основании один и тот же угол \Delta \theta

    \[\Delta\theta = \frac{V_L\Delta t}{R-\frac{W}{2}} = \frac{V_R \Delta t}{R + \frac{W}{2}}\]

    \[\Rightarrow \frac{W}{2} (V_L+V_R) = R(V_R - V_L)\]

    \[\Rightarrow R = \frac{W(V_R+V_L)}{2(V_R-V_L}~~~~~ \Delta\theta = \frac{(V_R-V_L)\Delta t}{W}\]

 

Автомобиль/Трицикл/Реечно-зубчатый привод

Такой тип роботов имеет два мотора — один для движения, другой для рулежки.

  • Не может нормально развернуться на месте.
  • При постоянной скорости и угле поворота движется по дуге окружности.
  • В четырехколесной схеме необходим задний дифференциал и переменная связь («Принцип Аккермана») на рулевые колеса.

Круговой путь автомобилеподобного трехколесного робота

Круговое движение трехколесного робота

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

    \[R = \frac{L}{\tan s}\]

Радиус траектории, которую описывают задние колеса:

    \[R_d = \frac{L}{\sin s}\]

За время \Delta t расстояние вдоль этой дуги окружности, пройденное приводными колесами равно v\Delta t, поэтому угол \Delta \theta на который повернется робот:

    \[\Delta \theta = \frac{V\Delta t}{R_d} = \frac{V \Delta t \sin s}{L}\]

    \[R = \frac{L}{\tan s}~~~~\Delta \theta = \frac{V \Delta t\sin s}{L}\]

 

Зубчатая передача

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

Зубчатые передачи

Зубчатые передачи

Если Передача 1 имеет крутящий момент t_1, она оказывает тангенциальную силу

    \[F = \frac{t_1}{r_1} \]

на Передачу 2. Крутящий момент Передачи 2 поэтому

    \[t_2 = r_2F = \frac{r_2}{r_1}t_1\]

Изменение угловой скорости между Передачей 1 и Передачей 2 вычислим, рассмотрев скорость в точке где они соприкасаются:

    \[V = \omega_1 r_1 = \omega_2 r_2\]

    \[\Rightarrow \omega_2 = \frac{r_1}{r_2}\omega_1\]

  • Когда маленькая шестерня приводит в движение большую, второе зубчатое колесо будет иметь более высокий крутящий момент и меньшую угловую скорость пропорционально соотношению зубьев.
  • Для достижения комбинированного воздействия шестерни можно объединять в цепочки.

 

Оценка движения c помощью датчиков

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

Например, на основе очень простой оценки:

    \[D=KV\Delta t\]

Пройденное расстояние пропорционально напряжению и времени. Здесь K является расчетной константой (используя знания электричества и геометрии), но также может быть получена в результате калибровки.

  • Калибровка включает экспериментальное перемещение робота и сравнение фактического значения пройденного расстояния, со значением, полученным в результате теоретической оценки. Отношение фактического к теоретическому значениям и является коэффициентом калибровки.
  • Если при повторных испытаниях будет наблюдаться расхождения в полученных значениях, мы можем повысить точность путем изменения значения констант в наших выражений (таких как K), а затем повторить процесс.

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

 

Движение и состояние робота для плоскости

Если предположить, что робот ограничивается перемещением на плоскости, его местоположение может быть определено вектором состояния X, состоящем из трех параметров:

    \[X = \left(\begin{array}{c}x \\ y \\ \theta \end{array}\right) \]

x  и y определяют местоположение предопределенной точки «центра робота» в мировой системе координат.

\theta определяет угол поворота между системами координат (угол между осями x^W и x^R).

Две системы координат совпадают в момент, когда центр робота находится в начале координат и x = y = \theta = 0.

 

Интегральное движение на плоскости

Получая перемещения робота в некоторые моменты времени, мы можем найти весь путь, пройденный роботом, просуммировав эти значения, или перейдя к пределу (при стремлении количества измерений \rightarrow \infty) — путем их интегрирования.

При движении на плоскости мы имеем три степени свободы для определения положения, представленные (x, y, \theta) при \pi < \theta \le \pi.

Рассмотрим робота, который может только двигаться вперед или поворачиваться на месте:

Движение робота на плоскости

Движение робота на плоскости

При прямолинейном движении робота на расстояние D новое состояние будет выражено как:

    \[ \left(\begin{array}{c}x_{new} \\ y_{new} \\ \theta_{new} \end{array}\right) = \left(\begin{array}{c}x + D \cos \theta\\ y + D \sin \theta \\ \theta \end{array}\right) \]

Если присутствует только вращательное движение, при повороте на угол \alpha:

    \[ \left(\begin{array}{c}x_{new} \\ y_{new} \\ \theta_{new} \end{array}\right) = \left(\begin{array}{c}x \\ y \\ \theta + \alpha \end{array}\right) \]

 

Оценка кругового 2D движения

Движение по окружности

Движение по окружности

Для случаев и дифференциального и трехколесного роботов мы можем получить выражения для R и \Delta \theta для случая когда присутствует только движение по дуге окружности:

    \[ \left(\begin{array}{c}x_{new} \\ y_{new} \\ \theta_{new} \end{array}\right) = \left(\begin{array}{c}x + R(\sin(\Delta \theta + \theta) - \sin \theta) \\ y - R(\cos(\Delta \theta + \theta) - \cos \theta) \\ \theta + \Delta \theta \end{array}\right) \]

 

Планирование маршрута

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

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

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

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

На первом шаге планирования маршрута, предположим, что текущее положение робота (x, y, \theta) и следующей точкой маршрута является (W_x, W_y).

  • Сначала робот должен повернуться к указанной точке. Вектор направления должен указывать на:

    \[ \left(\begin{array}{c}d_x \\ d_y \end{array}\right) = \left(\begin{array}{c}W_x - x \\ W_y - y  \end{array}\right) \]

Значение абсолютного значения угла в градусах \alpha в который робот должен повернуться:

    \[\alpha = \tan^{-1}\frac{d_y}{d_x} \]

Необходимо убедиться, что \alpha находится в правильном квадранте, в промежутке -\pi < \alpha \le \frac{\pi}{2}.

  • Робот уже повернут на определенный угол, поэтому угол на который он должен повернуться \beta = \alpha - \theta. Чтобы робот двигался наиболее эффективно, нужно сдвинуть угол, добавив или вычитая 2\pi, чтобы -\pi < \beta \le \pi.
  • После этого, робот должен двигаться по прямой на расстояние d = \sqrt{d_x^2 + d_y^2}.
 
Как вы оцениваете эту публикацию? 1 звезда2 звезды3 звезды4 звезды5 звезд (21 голосов, средняя оценка: 4,86 из 5)
Загрузка...

Вы можете пропустить чтение записи и оставить комментарий. Размещение ссылок запрещено.

2 комментария к записи “Описание движения мобильного робота”

  1. Юрий:

    На роботе-танке есть компас, датчики вращения колес и блютус связь с компьютером (плюс датчики препятствий и микроконтроллер). Задача- отобразить на экране переданный от робота маршрут движения по лабиринту.

    Пожалуйста посоветуйте:

    1-какую программу применить для графического отображения пакета данных

    (азимут + число оборотов колеса)? Лучше в процессе движения ,в крайнем

    случае — таблица в конечной точке маршрута.

    2-как передать данные со входного порта компьютера в эту программу?

    Заранее благодарен.

    Юрий

    • Юрий, здравствуйте!

      Самый простой способ визуализировать данные — использовать встроенный в Arduino IDE инструмент Serial Plotter. Для рисования траектории и визуализации каких-то дополнительных параметров придется писать самописную программку. Простенький язык специально предназначенный для подобных задач называется Processing. Есть видео.

      Hello world! на Processing.

      Также для реализации коммуникации между микроконтроллером и ПО, которое запущено на компьютере существует специальный протокол Firmata.

Erektil dysfunktion omkring din penis. Blodstrom Hvor meget er sildenafil gennem penis slap af. Denne afslappelse er den underliggende arsag. Men hvis et tegn pa penilen

Оставить комментарий