Я соглашаюсь с тем, что владелец сайта использует файлы cookie для повышения удобства работы на сайте, сервис Яндекс.Метрика. Оставаясь на сайте, я соглашаюсь с политикой их применения.
OK

Как сделать робота-сегвея своими руками: гироскоп и PID-регулятор

Создание самобалансирующегося транспорта, или робота-сегвея, — это один из самых захватывающих проектов в области робототехники. В устройстве объединены механика, электроника и теория управления.

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

А в этой статье мы разберём ключевые принципы работы такого аппарата, сфокусировавшись на двух главных компонентах системы стабилизации: датчике-гироскопе и алгоритме PID-регулирования.

Содержание

  • Принцип действия и общая схема

  • Ключевые компоненты

  • Мозг системы: PID-регулятор

  • Сборка и программирование

Принцип действия и общая схема

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

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

Если робот наклоняется вперёд, контроллер даёт команду двигателям вращаться вперёд, чтобы «догнать» падающее тело и вернуть его в точку баланса, если назад — вращаться назад.

Ключевые компоненты

Для сборки робота вам понадобятся:

  1. Шасси — платформа с двумя мотор-колёсами.
  2. «Мозг» системы — микроконтроллер.
  3. Источник питания — аккумуляторная батарея.
  4. Драйвер двигателей — плата, способная управлять мощностью моторов.
  5. IMU-модуль — сенсор, объединяющий акселерометр и гироскоп.
  6. «Сердце» системы стабилизации — гироскоп и акселерометр

Обычный гироскоп измеряет угловую скорость вокруг своей оси. Однако он имеет существенный недостаток: со временем в его показаниях накапливается ошибка. Из-за этого интегрирование угловой скорости для получения текущего угла будет давать всё более неверный результат.

Чтобы решить эту проблему, используется комбинация с акселерометром. Акселерометр измеряет проекцию ускорения свободного падения на свои оси. Когда платформа стоит строго горизонтально, акселерометр фиксирует ускорение только по оси Z. Если платформа наклонится, вектор гравитации сместится, и акселерометр сможет точно определить статический угол наклона.

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

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

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

Мозг системы: PID-регулятор

Получив точное значение угла наклона, микроконтроллер должен решить, с какой скоростью крутить колёса. Для этого используется PID-регулятор — самый распространённый алгоритм обратной связи в системах автоматического управления.

PID расшифровывается как Proportional-Integral-Derivative (пропорционально интегрально-дифференцирующий). Его задача — минимизировать «ошибку" — разницу между желаемым состоянием и реальным состояниями.

Разберём роль каждого компонента балансировки.

Пропорциональная составляющая — это основная часть. Она реагирует на величину ошибки. Чем сильнее робот отклонился от вертикали, тем большую мощность регулятор выдает на двигатели. Это заставляет робота быстрее возвращаться в положение равновесия. Однако одной пропорциональной составляющей недостаточно: она может вызвать колебания вокруг целевой точки.

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

Дифференциальная составляющая — «предсказатель». Она реагирует не на саму ошибку, а на скорость её изменения. Если робот падает очень быстро, дифференциальная составляющая создаст мощное противодействие, замедляя падение. Это ключевая часть для демпфирования колебаний и стабилизации системы. Без неё робот будет постоянно раскачиваться и упадёт.

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

Сборка и программирование

Процесс создания можно разделить на несколько шагов:

  1. Сборка механики. Установите моторы на шасси, закрепите плату контроллера и IMU-сенсор максимально близко к центру тяжести платформы.
  2. Подключение электроники. Соедините драйвер моторов с контроллером и моторами, подключите IMU-сенсор к шине I2C.
  3. Написание кода:

  • Подключите библиотеки для работы.
  • Инициализируйте датчики и считывайте сырые данные.
  • Примените комплементарный фильтр для получения угла наклона.
  • Настройте PID-объект, задав входную переменную (угол), выходную (управляющий сигнал для моторов) и уставку (0 градусов).
  • В основном цикле программы вызывайте функцию Compute () объекта PID.
  • Масштабируйте выходной сигнал PID под рабочий диапазон ШИМ-сигнала драйвера моторов и отправляйте команды на колёса.

Создание робота-сегвея — это комплексная задача, требующая терпения. Начните с настройки PID-регулятора без движения: просто пытайтесь удержать платформу на месте. После достижения стабильного баланса можно добавлять функционал управления скоростью и направлением с помощью джойстика или наклона площадки для ног. Этот проект даст бесценный опыт в понимании того, как теория управления воплощается в реальном физическом объекте.
Кстати, уже этой осенью старшеклассники Москвы будут заниматься подобными исследованиями вместе с наставниками на «Научном ускорителе».
«Научный ускоритель» — это программа для старшеклассников, которые хотят попробовать себя в современным направлениях науки — от нейробиологии до психологии мышления. Вместе с научными руководителями из московских вузов и НИИ школьники напишут исследовательский проект, подадутся на перечневые конкурсы и получат возможность поступить в лучшие вузы Москвы!