Система координат
Для того чтобы математически описать движение мобильного робота нам потребуется определить системы координат. Я введу две системы координат — мировую систему координат W (буду считать что он неподвижна в пространстве), и система координат робота R, которая перемещается в пространстве и остается неподвижной относительно самого робота.
Нам необходимо определить местоположение робота, то есть мы хотим знать, как преобразовывать координаты между W и R.
Степени свободы движения
Число степеней свободы определяет минимальное количество независимых переменных (обобщённых координат), необходимых для полного описания движения механической системы.
Твердое тело, которое перемещается и вращается двигаясь по одномерному пути имеет одну степень свободы — поступательную. В качестве примера можно привезти поезд, движущийся по рельсам.
Твердое тело, которое перемещается и вращается на плоскости имеет 3 степени свободы: 2 поступательных и 1 вращательную. Пример: наземный робот.
Твердое тело, которое перемещается и вращается в 3D-объеме имеет 6 степеней свободы: 3 поступательных и 3 вращательных. Пример: летающий робот.
Особый случай — это так называемый голономный робот, который способен перемещаться мгновенно в любом направлении в пространстве его степеней свободы (робот является голономным если число управляемых степеней свободы равно полному числу степеней свободы). Голономные роботы существуют, но требуют множество моторов и необычный конструктив, что зачастую очень непрактично. Однако, наземные голономные роботы могут быть реализованы с использованием всенаправленных колес (omni-wheels).
На видео показан пример четырехколесного робота со всенаправленными колесами.
Конфигурации колесных роботов
Существует множество различных конфигураций мобильных роботов.
Есть те, которые применяются реже, например, двухколесная платформа сигвей (segway) с динамическим балансом обладает хорошей высотой при малой площади и достаточно большим ускорением.
Или марсоход Opportunity, который имеет колеса на штангах для преодоления больших препятсвий.
Но чаще применяются другие типы конфигураций.
Это простые, надежные, прочные механизмы, пригодные для роботов, которые в основном передвигаются по плоскости.
Все эти роботы неголономны (используется два двигателя, но три степени свободы движения). Например, автомобилеподобный робот не может мгновенно двигаться в сторону.
Робот с дифференциальным приводом
Такая конфигурация используется в роботах-пылесосах.
Робот с дифференциальным приводом имеет два мотора, по одному на каждое колесо (на рисунке — это большие колеса). Изменение направления движения достигается за счет разных скоростей (отсюда и название — дифференциальный).
- Для прямолинейного движения колеса должны вращаться с одинаковыми скоростями.
- Для того, чтобы робот развернулся на месте, необходимо установить скорости одинаковыми по модулю, но направленными противоположно.
- Другие комбинации скоростей приводят к движению по дуге
Обозначим скорости колес (линейные скорости с которыми они «покрывают» поверхность) и – для левого и правого колес, соответственно, и расстояние между колесами.
- Прямолинейное движение, если
- Разворот на месте, если
- В более общем случае — движение по дуге
Для того, чтобы найти радиус криволинейного пути, рассмотрим период движения , в течении которого робот движется вдоль дуги окружности, имеющей угол .
- Левое колесо: пройденное расстояние = ; радиус дуги = ; радиус дуги =
- Правое колесо: пройденное расстояние = ; радиус дуги = ; радиус дуги =
- Обе колесные дуги имеют в основании один и тот же угол
Такой тип роботов имеет два мотора — один для движения, другой для рулежки.
- Не может нормально развернуться на месте.
- При постоянной скорости и угле поворота движется по дуге окружности.
- В четырехколесной схеме необходим задний дифференциал и переменная связь («Принцип Аккермана») на рулевые колеса.
Зубчатая передача
Двигатели постоянного тока, как правило, обладают высокой скоростью вращения и низким крутящим момент, поэтому зубчатая передача практически всегда необходима для управления роботом.
Если Передача 1 имеет крутящий момент , она оказывает тангенциальную силу
на Передачу 2. Крутящий момент Передачи 2 поэтому
Изменение угловой скорости между Передачей 1 и Передачей 2 вычислим, рассмотрев скорость в точке где они соприкасаются:
- Когда маленькая шестерня приводит в движение большую, второе зубчатое колесо будет иметь более высокий крутящий момент и меньшую угловую скорость пропорционально соотношению зубьев.
- Для достижения комбинированного воздействия шестерни можно объединять в цепочки.
Оценка движения c помощью датчиков
Очень часто, робот оценивает свое движение путем мониторинга собственных датчиков. Это может быть, например напряжение электродвигателя и колесные датчики. Эта информация называется одометрией.
Пройденное расстояние пропорционально напряжению и времени. Здесь является расчетной константой (используя знания электричества и геометрии), но также может быть получена в результате калибровки.
- Калибровка включает экспериментальное перемещение робота и сравнение фактического значения пройденного расстояния, со значением, полученным в результате теоретической оценки. Отношение фактического к теоретическому значениям и является коэффициентом калибровки.
- Если при повторных испытаниях будет наблюдаться расхождения в полученных значениях, мы можем повысить точность путем изменения значения констант в наших выражений (таких как ), а затем повторить процесс.
Энкодеры дают большую точность измерения числа оборотов колес. Информация с энкодера может быть преобразована в линейное расстояние умножением на постоянный радиус колеса. Но все же, как правило, для большей точности, все равно проводится калибровка.
Движение и состояние робота для плоскости
и определяют местоположение предопределенной точки «центра робота» в мировой системе координат.
определяет угол поворота между системами координат (угол между осями и ).
Две системы координат совпадают в момент, когда центр робота находится в начале координат и .
Интегральное движение на плоскости
Получая перемещения робота в некоторые моменты времени, мы можем найти весь путь, пройденный роботом, просуммировав эти значения, или перейдя к пределу (при стремлении количества измерений ) — путем их интегрирования.
При движении на плоскости мы имеем три степени свободы для определения положения, представленные при .
Планирование маршрута
Если предположить, что роботу известно местоположение, и как оно относится к мировой системе координат, то планирование маршрута на основе его местоположения позволит ему двигаться по точному пути вдоль последовательности заранее определенных точек. Различные криволинейные траектории могут быть спланированы, с оптимизацией таких критериев, как время движения по маршруту или потребление энергии. Здесь я рассмотрю конкретный, достаточно простой случай, предполагая, что:
- Движение робота состоит из прямолинейных отрезков отдельно от разворотов на месте.
- Робот стремится свести к минимуму общее пройденное расстояние, так что он всегда сразу поворачивается лицом к следующей точке и едет прямо к ней.
На первом шаге планирования маршрута, предположим, что текущее положение робота и следующей точкой маршрута является .
- Сначала робот должен повернуться к указанной точке. Вектор направления должен указывать на:
Необходимо убедиться, что находится в правильном квадранте, в промежутке .
- Робот уже повернут на определенный угол, поэтому угол на который он должен повернуться . Чтобы робот двигался наиболее эффективно, нужно сдвинуть угол, добавив или вычитая . Чтобы робот двигался наиболее эффективно, нужно сдвинуть угол, добавив или вычитая , чтобы .
- После этого, робот должен двигаться по прямой на расстояние .