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

Обсуждаем модели и конструкции, построенные своими руками
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1019
Зарегистрирован: 22 окт 2010, 23:57

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

Сообщение Mr.Kubikus »

Зачетно! Есть идеи как улучшить качество регулирования? В первую очередь перерегулирование и колебания.
С уважением, Григорий
GitHub FB ВК
Аватара пользователя
Eugene
Сообщения: 60
Зарегистрирован: 10 май 2011, 20:29
Откуда: Электросталь
Контактная информация:

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

Сообщение Eugene »

И еще фотографии
Вложения
Self-balancing robot v2.0
Self-balancing robot v2.0
Крепление аккумулятора
Крепление аккумулятора
Крепление моторов и Arduino
Крепление моторов и Arduino
Человек в своей жизни ни в чем не может быть уверен, кроме того, что ему придется с ней расстаться. Джордж Мередит
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1019
Зарегистрирован: 22 окт 2010, 23:57

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

Сообщение Mr.Kubikus »

Как, по вашим ощущениям, жесткость конструкции? Жестче первоначальной из деталей конструктора?
С уважением, Григорий
GitHub FB ВК
Аватара пользователя
Eugene
Сообщения: 60
Зарегистрирован: 10 май 2011, 20:29
Откуда: Электросталь
Контактная информация:

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

Сообщение Eugene »

По поводу дерганья вблизи нуля... думаю надо использовать другие коэффициенты для ПИДа, которые будут использоваться только, когда угол отклонения не больше 5 градусов например.
Плюс что на счет этой строчки? if(torque>5) map(torque,0,255,30,255);


И еще вопрос. Я правильно понял что начальная положение, к которому будет стремиться робот при балансировании задаем мы, при установке робота в вертикальное положение?
Т.е. допустим вы включаем робота и держим его под углом 45 градусов от вертикали... робот же будет пытаться находиться в этом положении (45 градусов)?
Т.е. как такового нуля нет? Или у меня что-то не так работает.
Человек в своей жизни ни в чем не может быть уверен, кроме того, что ему придется с ней расстаться. Джордж Мередит
Аватара пользователя
Eugene
Сообщения: 60
Зарегистрирован: 10 май 2011, 20:29
Откуда: Электросталь
Контактная информация:

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

Сообщение Eugene »

Григорий Зайцев писал(а):Как, по вашим ощущениям, жесткость конструкции? Жестче первоначальной из деталей конструктора?
Конструкция значительно прочнее и не создает дополнительных колебаний из-за своей нежесткости, но при этом она и тяжелее.
Данные моторы работаю на пределе с ней. Если аккумулятор поднять выше, то уже не справляются, робот начинает быстро ехать вперед и заваливается, не успевают моторы его поднять.

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

Оргстекло резал и сверлил в рекламном агентстве... сделали за копейки.
Для разметки отверстий под крепеж платы ардуино использовал этот чертеж
http://arduino.cc/blog/2011/01/05/nice- ... mega-2560/
1 mil = 0.0254 мм - при таком переводе размеров отверстия попали один в один, с точностью до 0.5мм

Моторы не очень хорошо получилось прикрепить, т.к. внутри мешают ребра жесткости. И отверстия в корпусе самих моторов не очень ровно просверлил.
Получились оси не на одной прямой немного.
Человек в своей жизни ни в чем не может быть уверен, кроме того, что ему придется с ней расстаться. Джордж Мередит
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1019
Зарегистрирован: 22 окт 2010, 23:57

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

Сообщение Mr.Kubikus »

if(torque>5) map(torque,0,255,30,255)
Это реализация зоны нечувствительности. Регулятор не реагирует на маленькие рассогласования.
Я правильно понял что начальная положение, к которому будет стремиться робот при балансировании задаем мы
.
Все верно. В алгоритме предусмотрена однократная калибровка при запуске программы - calibrateSensors(). Попробуйте убрать калибровку и использовать жестко заданное значение уставки "0".
С уважением, Григорий
GitHub FB ВК
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1019
Зарегистрирован: 22 окт 2010, 23:57

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

Сообщение Mr.Kubikus »

Оргстекло резал и сверлил в рекламном агентстве... сделали за копейки.
Название агентства в студию!
С уважением, Григорий
GitHub FB ВК
Аватара пользователя
Eugene
Сообщения: 60
Зарегистрирован: 10 май 2011, 20:29
Откуда: Электросталь
Контактная информация:

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

Сообщение Eugene »

Григорий Зайцев писал(а):
Оргстекло резал и сверлил в рекламном агентстве... сделали за копейки.
Название агентства в студию!
Да оно местное =) Не Московское. За 200 руб. на станке с ЧПУ выпилили всё.
Еще там лазер есть, но он занят был... им еще лучше можно сделать.
Человек в своей жизни ни в чем не может быть уверен, кроме того, что ему придется с ней расстаться. Джордж Мередит
Аватара пользователя
Eugene
Сообщения: 60
Зарегистрирован: 10 май 2011, 20:29
Откуда: Электросталь
Контактная информация:

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

Сообщение Eugene »

Все верно. В алгоритме предусмотрена однократная калибровка при запуске программы - calibrateSensors(). Попробуйте убрать калибровку и использовать жестко заданное значение уставки "0".

Ну просто так функцию калибровки из setup () нельзя убрать. Там как минимум задается масштаб для гироскопа.
Если просто убрать функцию, то в GUI интерфейсы все данные неправильные идут.
Человек в своей жизни ни в чем не может быть уверен, кроме того, что ему придется с ней расстаться. Джордж Мередит
Аватара пользователя
Eugene
Сообщения: 60
Зарегистрирован: 10 май 2011, 20:29
Откуда: Электросталь
Контактная информация:

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

Сообщение Eugene »

И вот собственно сами пластины из оргстекла.
Вложения
Оргстекло
Оргстекло
Человек в своей жизни ни в чем не может быть уверен, кроме того, что ему придется с ней расстаться. Джордж Мередит
Ответить