Odometry ru

Aus www.wiki.ardumower.de
Wechseln zu: Navigation, Suche

Описание


Последняя прошивка Ardumower требует моторные датчики оборотов (энкодеры).

Их использование позволяет рассчитать скорость робота и направление движения робота.

Алгоритм работает путем подсчета импульсов с датчиков оборотов левого и правого колеса.


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

  • Для обеспечения прямолинейного движения (чтобы робот не уходил вправо или влево)

Выводы энкодера (колесные двигатели)

В Ardumower имеет 2-х канальный кодер с 5 импульсов на один цикл двигателя умножается на передаточное число 1:212, в результате чего 1060 шифратора тактов за один полный шиномонтаж резолюции.

Разводка разъема энкодера:

зеленый     ---- GND
коричневый  ---- VCC
синий       ---- odometry1
фиолетовый  ---- odometry2


Внимание!: В печатных платах версий v0.5/1.2 отсутствуют подтягивающие резисторы. Добавьте из самостоятельно:

odometry1 --- 4.7k --- 5v
odometry2 --- 4.7k --- 5v

Сигнал от энкодеров

Вперед: pin1 переключает LOW->HIGH и pin2 = HIGH
Назад:  pin1 переключает LOW->HIGH и pin2 = LOW

Самодельные экнодеры

Подключение

VCC           pinArduino
+--13 KOhm----+-------Collector  Emitter---GND
+--380 Ohm------------Anode      Kathode---GND

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

При подключении датчиков оборотов мы можем вычислить расстояние и направление движения.


Расстояние на каждое колесо:

left_cm  = ticksLeft  / odometryTicksPerCm
right_cm = ticksRight / odometryTicksPerCm

Направление движения (курс):

wheel_theta = (left_cm - right_cm) / odometryWheelBaseCm
odometryTheta += wheel_theta

Общее расстояние:

avg_cm  = (left_cm + right_cm) / 2.0
odometryX += avg_cm * sin(odometryTheta)
odometryY += avg_cm * cos(odometryTheta)

Неточность наземных измерений

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

Регулятор скорости мотора (ПИД)

Скорость двигателей регулируется с помощью программного ПИД-регулятора. Вы можете следить за качеством управления скорости через pfodApp (Plot->Motor control):

Видео

Еще нет видео (функционал в разработке)