Оглавление:

Робот SnappyXO Precise Mover: 6 шагов
Робот SnappyXO Precise Mover: 6 шагов

Видео: Робот SnappyXO Precise Mover: 6 шагов

Видео: Робот SnappyXO Precise Mover: 6 шагов
Видео: SnappyXO mini two-wheel drive robot 2024, Ноябрь
Anonim
Робот SnappyXO Precise Mover
Робот SnappyXO Precise Mover

Заставьте своего робота Arduino двигаться прямо на указанное расстояние или повернуть на указанный угол с помощью библиотеки PreciseMovement Arduino.

Роботу требуется роликовый шарнир или его аналог, чтобы минимизировать трение при скручивании.

www.pololu.com/product/954

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

Это было протестировано для работы с роботом SnappyXO.

Шаг 1. Местоположение учебника изменено

Учебник перемещен на страницу ниже. Это руководство больше не поддерживается.

sites.google.com/stonybrook.edu/premo

Шаг 2. Соберите робота с дифференциальным приводом SnappyXO

Библиотека PreciseMovement, которую мы будем использовать, совместима только с роботами с дифференциальным приводом. Вы можете использовать других роботов с приводом на 2 колеса.

Шаг 3: Подключите электронику

Подключите электронику
Подключите электронику

Для стандартного оптического кодировщика SnappyXO:

D0 (выход энкодера) -> цифровой вывод Arduino

VCC -> Arduino 5 В

GND -> GND

Мощность двигателя и Arduino:

Источник питания двигателя должен соответствовать используемым вами двигателям. Для комплекта SnappyXO используются батареи 4AA для питания двигателя и батарея 9V для питания Arduino. Убедитесь, что все они имеют общий GND.

Шаг 4: Установите библиотеку PreciseMovement Arduino

Скачать:

github.com/jaean123/PreciseMovement-library/releases

Как установить библиотеку Arduino:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Шаг 5: Код

Код Arduino:

create.arduino.cc/editor/ whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview

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

  • Проверьте и установите штифты двигателя под ARDUINO PINS.
  • Установите ДЛИНУ и РАДИУС.

    • ДЛИНА - это расстояние от левого колеса до правого колеса.
    • РАДИУС - это радиус колеса.
  • Установите PULSES_PER_REV - количество импульсов на выходе энкодера за один оборот колеса.

    • Обратите внимание, что это отличается от количества импульсов на выходе энкодера за один оборот вала двигателя, если только энкодеры не подключены для считывания непосредственно с вала колеса.
    • PULSES_PER_REV = (импульсы на один оборот вала двигателя) x (передаточное число)
  • Установите STOP_LENGTH, если вы видите, что робот пролетает мимо после движения вперед.

    Робот остановится, когда расчетная позиция будет на расстоянии STOP_LENGTH от цели. Таким образом, STOP_LENGTH - это приблизительное расстояние, необходимое для остановки робота

  • Параметры ПИД

    KP_FW: это пропорциональная составляющая поступательного движения. Увеличивайте это, пока робот не пойдет прямо. Если вы не можете заставить его работать прямо, настроив это, скорее всего, неисправно оборудование. (например, перекос колес и т. д.)

    KP_TW: это пропорциональная составляющая ПИД-регулятора крутящего момента. Просто начните с низкого значения и увеличивайте его до тех пор, пока скорость вращения или угловая скорость робота при повороте не станет достаточно высокой, но не приведет к перерегулированию. Для проведения наблюдений вы можете настроить робота поочередно от 0 до 90 и обратно, вставив следующее в функцию цикла

Поместите это в цикл для настройки KP_FW:

mover.forward (99999);

Поместите это в цикл, чтобы чередовать от 0 до 90 для настройки KP_TW:

mover.twist (90); // Твист 90 CW

задержка (2000);

mover.twist (-90) // Поворот на 90 против часовой стрелки

задержка (2000);

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

Шаг 6: как это работает

Если вам интересно, как это работает, читайте дальше.

Движение вперед поддерживается прямым с использованием алгоритма чистого преследования по прямолинейному пути. Подробнее о Pure Pursuit:

ПИД-регулятор поворота пытается поддерживать угловую скорость поворота на уровне TARGET_TWIST_OMEGA. Обратите внимание, что эта угловая скорость является угловой скоростью всего робота, а не колес. Используется только один ПИД-регулятор, а на выходе - скорость записи ШИМ левого и правого двигателей. Для вычисления угла используется точный счет. Как только угол достигает порога ошибки, робот останавливается.

Рекомендуемые: