Здравствуйте.
Сделал я себе балансирующего робота: http://vrtp.ru/index.php?showtopic=2211 ... t&p=614693.
Не на Arduino. Не на СИ. К сожалению знаю только ассемблер.
Максимум, что он у меня умеет - стоять "в углублении", например на ковре. На ровном жёстком полу или столе - убегает. Разгоняется и падает.
ПИД регулятор, поддерживающий вертикаль я победил. С помощью околонаучного тыка, такой то матери, и кореша, который
сбацал мне программулину (в Excel) рисующую графики (6 штук) изменения переменных.
На этом - всё . В Нете на эту тему 99% ссылок - на Arduino на инглиш...
Как удержать его на месте, как заставить двигаться в заданном направлении?
Чую, нужен ещё один регулятор (возможно ПИД). Но что в него "заводить"? Первый, удерживающий вертикаль, работает с отклонением от вертикали.
В второй?
Если у кого есть ответ, то не тыкайте меня, пожалуйста, в исходники на СИ. Я в нём чуть больше нуля
На словах, если можно, "на пальцах". Просто теорию, описание алгоритма. Реализую сам.
Балансирующий робот, другой.
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Балансирующий робот, другой.
Привет!
Конструкция - норм.
Прежде чем идти дальше надо определиться - какую именно задачу вам надо решить и что вы понимаете под фразой "Как удержать его на месте, как заставить двигаться в заданном направлении"?
Конструкция - норм.
Прежде чем идти дальше надо определиться - какую именно задачу вам надо решить и что вы понимаете под фразой "Как удержать его на месте, как заставить двигаться в заданном направлении"?
Re: Балансирующий робот, другой.
Сейчас у меня так:
ПИД-регулятор "подгоняет" моторами текущий угол наклона (результат работы MPU-6050 плюс комплиментарный фильтр) к КОНСТАНТЕ.
Эта константа - тот же самый угол наклона в вертикальном положении.
Но. Всё это хорошо для математической модели. А если под колесо попала крошка, если поверхность под колесом наклонилась, то и положение
равновесия девайса изменилось. Т.е. "угол наклона в вертикальном положении" изменил своё абсолютное значение.
Получается надо:
Оперативно, "на ходу", менять этот самый угол наклона в вертикальном положении. Он не должен быть константой. Он должен меняться
в зависимости от "дорожной обстановки" под колёсами.
Как это сделать - вопрос.
ПИД-регулятор "подгоняет" моторами текущий угол наклона (результат работы MPU-6050 плюс комплиментарный фильтр) к КОНСТАНТЕ.
Эта константа - тот же самый угол наклона в вертикальном положении.
Но. Всё это хорошо для математической модели. А если под колесо попала крошка, если поверхность под колесом наклонилась, то и положение
равновесия девайса изменилось. Т.е. "угол наклона в вертикальном положении" изменил своё абсолютное значение.
Получается надо:
Оперативно, "на ходу", менять этот самый угол наклона в вертикальном положении. Он не должен быть константой. Он должен меняться
в зависимости от "дорожной обстановки" под колёсами.
Как это сделать - вопрос.