Балансировка робота на двух колесах

Балансировка робота на двух колесах

Давно уже мечтал сделать двухколесного робота, который умеет балансировать. А главное хотел поближе и поплотнее поработать с гироскопом mpu6050. И конечно же поиграться с настройками ПИД-регулятора.

Видео по проекту

В данном видеоролике подробно рассказано об основах балансировки. Буквально из подручных материалов собран робот. Произведена его настройка и балансировка. Есть теоретическая часть, но она расписана простым человеческим языком. Так что сложностей не возникнет!

комплектация

Теория

Математическая модель нашего робота – это так называемый обратный маятник. На эту тему много чего уже написано. Но я буду краток. Чтобы робот не упал, нужно постоянно компенсировать его отклонение от положения равновесия путем вращения колес.

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

Очень простой закон управления, который мы скормим ПИД-регулятору. А дальше настроим его в первом приближении с помощью метода Зиглера-Никольса. И наконец посмотрим, что в итоге получилось!

схемы, печатные платы

Схема электрическая принципиальная

программирование

Среда разработки как обычно Arduino IDE. Изначально я разработал основную программу. Но потом для удобства настройки ПИД-регулятора я решил использовать встроенный Serial Plotter для наглядного отображения регулируемой величины в виде графика. А данные передавать в режиме реального времени по Блютуз-каналу. Из-за отсутствия рабочего преобразователя USB-UART пришлось заюзать дополнительную ардуину. Вторая прошивка как раз для нее.  Также добавлена возможность изменения параметров ПИД-регулятора на ходу через Serial Monitor.

Пользуйтесь на здоровье!

настройка

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

При падении вперед колеса должны тоже ехать вперед, если это не так, то меняем фазировку на движках, перепаяв провода.

Найдите равновесный угол ANGLE_ZERO. При отключенных моторах добейтесь равновесия робота, при этом измеренный гироскопом угол и будет искомым равновесным углом.

Первоначальную настройку ПИД-регулятора проводим по методу Зиглера-Никольса.

Дальнейшую подстройку коэффициентов выполняем уже сами, кто как умеет. Есть много инфы в интернете и в рамках данной статьи сложно целиком охватить эту тему!