Odometry ru: Unterschied zwischen den Versionen
(→Описание) |
(→Encoder pinout (Ardumower motors)) |
||
Zeile 18: | Zeile 18: | ||
* Для обеспечения прямолинейного движения (чтобы робот не уходил вправо или влево) | * Для обеспечения прямолинейного движения (чтобы робот не уходил вправо или влево) | ||
− | = | + | = Выводы энкодера (колесные двигатели) = |
− | + | В Ardumower имеет 2-х канальный кодер с 5 импульсов на один цикл двигателя умножается на передаточное число 1:212, в результате чего 1060 шифратора тактов за один полный шиномонтаж резолюции. | |
− | + | Разводка разъема энкодера: | |
+ | зеленый ---- GND | ||
+ | коричневый ---- VCC | ||
+ | синий ---- odometry1 | ||
+ | фиолетовый ---- odometry2 | ||
− | |||
− | |||
− | |||
− | |||
− | + | Внимание!: В печатных платах версий v0.5/1.2 отсутствуют подтягивающие резисторы. Добавьте из самостоятельно: | |
− | + | ||
odometry1 --- 4.7k --- 5v | odometry1 --- 4.7k --- 5v |
Aktuelle Version vom 23. August 2015, 15:33 Uhr
Inhaltsverzeichnis
Описание
Последняя прошивка 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):
Видео
Еще нет видео (функционал в разработке)