Робот-балансир на ESP32: три контура управления

Десять дней, один робот, три контура управления. Как наш робот-балансир на ESP32 с коллекторными моторами научился стоять, возвращаться после толчка, держать свою точку и ездить по Wi-Fi — с числами из его журналов и прошивкой, благодаря которой всё заработало.

Я собрал робота-балансира: три контура управления

Коллекторные моторы, ESP32 и MPU-6500 — и три контура управления, каждый исправляет то, чего не умел предыдущий. Контур угла (PID, 500 раз в секунду) держит его вертикально, но робот откатывается на 27 см. Контур скорости возвращает его в полосу 30 см. Контур положения возвращает его домой с точностью до 3 см — а потом робот ездит по Wi-Fi и прыгает с напольных весов. Три контура, один LQR или нейросеть — на что поставите?

Я толкаю. Он возвращается: мой балансир на пропеллере с ESP32

Я толкаю — он возвращается. Эта рама балансирует в одной плоскости на тяге одного пропеллера: датчик MPU-6500 измеряет наклон, а на ESP32 работает PID-регулятор (в этом опыте Kp 8 · Ki 2 · Kd 2,2), который через DRV8833 управляет мотором. Bluetooth передаёт наклон и команду мотору на мой компьютер, на страницу, где я могу менять настройки PID. А первые попытки? Гравитация не подводила. Что дальше: две плоскости или колёса?