Тел. (495) 972-27-12

Балансирующий робот

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

С математической точки зрения модель движения такого робота аналогична модели перевернутого маятника. Задача стабилизации перевернутого маятника в неустойчивом положении является классическим примером в теории автоматического управления и часто используется для сравнения различных алгоритмов управления (ПИД-регуляторы, нечеткая логика, нейронные сети и генетические алгоритмы).

Робот собран из конструктора fischertechnik ROBO TX учебная лаборатория (арт. 505286). Конструкция состоит из прямоугольной рамы, на которой закреплены следующие узлы: в нижней части — двигатели и датчик наклона, в средней части — бортовой управляющий контроллер, и в верхней части — аккумуляторная батарея.

Первые конструкторы fischetechnik появились в Германии в середине 1960-х годов. Первоначально это были механические конструкторы, которые состояли из пластиковых строительных блоков и соединялись друг с другом с помощью зацепления «ласточкин хвост». Постепенно перечень деталей увеличивался, в составе конструктора появились простые электронные блоки, а затем и микропроцессорные блоки управления. Первые наборы fischertechnik с программируемыми контроллерами появились во второй  половине 1980-х годов.

Вес робота — 600 г. Диаметр колес — 90 мм. Для измерения угла наклона используется плата с трех-осевым акселерометром ADXL335 и двухосевым гироскопом IDG500, которая подключается напрямую к бортовой системе управления на базе микропроцессорного блока Arduino. На плате Arduino установлен микроконтроллер ATmega328P, работающий на частоте 16 МГц. Объем flash-памяти микроконтроллера — 32 кБ. Программное обеспечение написано на языке Wiring с расширениями для Arduino. Для стабилизации робота в вертикальном положении используется стандартный ПИД-регулятор. Частота работы регулятора 100 Гц.

Для вращения колес используются двигатели (135484 Encoder Motor) из конструктора fischertechnik. Максимальная скорость вращения двигателей 300 об/мин. Двигатели получают питание от платы расширения Arduino, на которой установлен драйвер L293. Управление скоростью двигателей с помощью ШИМ.

==
ПАКПАК — обучение через игру!

  • Eugene

    А почему для стабилизации выбрали ПИД-регулятор, а не фильтр Калмана?
    Планируется ли добавить роботу возможность передвижения?
    И защиту от столкновения =)

    Вот интересный проект Испанца — http://www.youtube.com/watch?v=DyieQZaT_WM&NR

  • http://www.pacpac.ru Григорий Зайцев

    Я использовал для стабилизации ПИД-регулятор потому что это, наверное, самый простой и доступный для большинства алгоритм регулирования. В сети существует множество подробных описаний этого алгоритма.

    Планирую добавить контур регулирования скорости вращения колес.

    Спасибо за ссылку. Там все описание на испанском. Может быть есть английская версия?

  • Eugene

    На английском, из хорошо реализованных, встречал только на основе конструктора LEGO Mindstorms NXT

    Вот несколько ссылок, должно быть интересно:
    http://web.mac.com/ryo_watanabe/iWeb/Ryo's%20Holiday/NXTway-G.html — сайт проекта
    http://www.youtube.com/watch?v=V40ScvJeFxg — видео

    И более интересная реализации с управлением с ПДУ
    http://www.youtube.com/watch?v=dIdVl3c7HL8

    http://sites.mecheng.adelaide.edu.au/robotics/robotics_projects.php?wpage_id=44&title=47&browsebytitle=1 — моделирование в MATLAB для NXTway-G

  • Eugene

    Этого робота тоже видел.

    Энкодер в моторах используется?

    • http://www.pacpac.ru Григорий Зайцев

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

  • Eugene

    ADXL335 и IDG500 на каком-то готовом модуле или сами плату делали?
    Что-то проде такого http://www.sparkfun.com/products/10010
    Только тут гироскопы другие

    • http://www.pacpac.ru Григорий Зайцев

      Используется плата SEN-09268 sparkfun.