roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 20:29

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 15 май 2011, 22:33 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2009, 15:21
Сообщения: 82
Откуда: Inner Mongolia
Стоимость деталей fischertechnik (включая сервомоторы с встроенными редукторами) в этом роботе ~ 6000 р. Остальное - это бортовой контроллер, драйвер для двигателей, датчики и аккумулятор.

_________________
Поздравляю, ft-ninja!
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 16 май 2011, 09:23 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
Eruman писал(а):
Посмотрел на fischertechnik, дорогой он, по-моему. А на простых деталях такого балансира собрать нереально?

Почему нереально. Мне кажется 1 любая серва постоянного вращения, любой контроллер и гироскоп одноосевой (ну еще акк ессно) - это минимум деталей для простого балансира. Корпус можно сделать из детского конструктора или алюминиевых уголков например.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 16 май 2011, 09:25 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Кроме гиры надо еще аксель, желательно 2-осевой.
Но это если полностью красиво делать, а так народ делает балансиров на моторчике + выключателях концевых, без всяких МК :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 04 июн 2011, 10:38 
Не в сети
Аватара пользователя

Зарегистрирован: 13 май 2011, 19:58
Сообщения: 12
Откуда: Москва
ФИО: Евгений
Сервы будет маловато. Желательная скорость вращения 300об\мин
Раму можно сделать из оргстекла 3-4мм и соединить четырьмя штангами с резьбой М4
Колеса 90-100мм... Моторы лучше брать с энкодером. Но энкодер должен быть не одноканальным.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 02 авг 2011, 09:30 
Не в сети

Зарегистрирован: 10 июл 2011, 17:08
Сообщения: 18
Хочу сделать такого же, ни как не найти алгоритм балансировки, все мною найденные завязаны на точные расчеты центров масс и т.д., подскажите плс, как тут реализовано или ссылочку на разжеванное описание ? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 02 авг 2011, 13:02 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
Ну, центр масс считается на раз два с помощью веревки, палки и весов.

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 03 авг 2011, 10:32 
Не в сети

Зарегистрирован: 10 июл 2011, 17:08
Сообщения: 18
Посчитать не проблема, только это не правильно, нужно что бы он сам равновесие ловил независимо от массы(в расчетных, относительно мощности, пределах) и положения центров тяжести.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 04 авг 2011, 23:42 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
Как раз таки правильнее вначале посчитать, чем потом подбирать магические константы.
Физически в балансере есть три интересные вещи: колесная ось, центр масс и расположение датчиков (лично я поставил бы их на прямой, проходящей через ц.м и ось).
Управление балансом делится на две части: получение текущего угла относительно вертикали и расчет управляющего воздействия на ось.
Первое в простом варианте выглядит как получение направления вектора силы тяжести посредством акселерометра, далее школьной геометрией получаем искомый угол.
Какие есть проблемы: объединение показаний гироскопа и акселерометра является нетривиальной задачей; во время компенсации угла у всей системы появляется дополнительное ускорение, и аксель будет отдавать его сумму с g, то есть получаемый угол будет грязным.
Второе тоже довольно несложно. Сделаем тривиальное замечание: балансирование - удержание угла наклона робота относительно вертикали равным нулю; маневр «вперед» или «назад» выполняется через удержание ненулевого угла, при этом чем он больше, тем выше скорость.
Также заключаем, что увеличить модуль угла можно через движение в противоположном наклону направлении, а уменьшить - через сонаправленное. Всё, можно ехать)
У вас есть текущий угол, желаемый угол, осталось сформировать «напругу» на моторы. Банальнейший путь - пропорциональное управление, т.е. разницу углов домножаете на константу и посылаете исполнительному устройству. Способ чуть посложней - запилить ПИД, про него можно прочитать в робофоруиской вики.

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 05 авг 2011, 12:19 
Не в сети

Зарегистрирован: 10 июл 2011, 17:08
Сообщения: 18
Не совсем мне понятны некоторые вещи:

Почему обязательно связка гироскоп + акселерометр("объединение показаний"), гироскоп нам даёт итак угол, акселем можно только обнулять, или собирать их пачку и самому лепить гироскоп http://habrahabr.ru/blogs/algorithm/114513/

Самая непонятная вещь - это расчет управляющего воздействия, предположим робот стоял в положении равновесия(управляющее воздействие, например напряжение на двигателе = 0), далее мы берем и бросаем на робота сверху груз, робот начинает быстро падать, что делает система управления - заметив падение начинает давать напряжение на двигатель, вопрос - как подбирается это напряжение: можно начать перебирать(увеличивать от нуля до предела), но это займет много времени, робот десять раз успеет упасть(либо мы должны иметь аппарат получения текущего угла(ускорения) очень быстрый что-нибудь > 2-3 КГц) при имеющихся 0.1 КГц; можно например начать с середины(бинарный поиск), но при больших мощностях двигателя, это может оказаться слишком много и робот завалится в другую сторону. Плюс все осложняется тем, что воздействие описанное может быть не линейным => скорость получения данных должна быть еще выше... :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 05 авг 2011, 23:11 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
Ну, связка совсем не обязательна - я видел балансеры вообще без акселей-гиро на двух кнопках с усиками, на дальномере мордой в пол. Опять же, есть вероятность того, что робот только с акселем будет неплохо балансировать.
Объединение, вообще говоря, лучше сделать, чем нет, ибо:
1) мемс гироскопы _очень быстро_ накапливают ошибку.
2) корректировку акселем нужно проводить без собственных ускорений, чтобы не загрязнить вектор g. Это значит никаких неровностей поверхности, двигатель без вибраций, постоянная скорость. Фактически придется останавливать робота каждые, скажем, 5 секунд.
Вот, специально нашел ролик с тестами датчиков, там слева направо показания акселя, фильтра Калмана, гиры.
http://www.youtube.com/watch?v=MJ71V_wxtuU
По управлению: константы подбираются один раз и хардкодятся в программу, всё на глазок. При пропорциональном управлении воздействие = дельта_угол * конст. Если произойдет перерегулирование(слишком сильно дернуть), то следующее движение его исправит.
Если пропорциональной части окажется недостаточно, можно будет добавить дифференциальную, зависящую от скорости изменения угла. Ознакомитесь со статей о ПИД регуляторе wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4_%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8_%22%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE_%D0%BE_%D0%9F%D0%98%D0%94-%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%B0%D1%85%22.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 08 авг 2011, 10:40 
Не в сети

Зарегистрирован: 10 июл 2011, 17:08
Сообщения: 18
Судя по видео, гироскоп вообще вещь лишняя, ибо с таким уползнием он только мешать будет, нужно строить систему акселерометров пропущенную через Калмана.
С принципом ПИД управления я знаком :) что бы данный аппарат (с ПИД управлением) сработал как надо, ему нужно как минимум два измерения при воздействии управления, но как я описал ранее, если робот двигается в реальных условиях(открытое пространство, неровная дорога, препятствия, ветер...) например 20 кмч, наезжает на препятствие и тут порыв ветра, для стабилизации время будет отведено крайне мало и гироскоп для ПИД регулятора не успеет дать информацию о положении, до того как это всё упадет...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 10 авг 2011, 16:05 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
гироскоп важен в краткосрочной перспективе. если, скажем, за десятую секунды робот наехал на камешек, аксель показал резкое изменение ускорения и расчетное приращение угла равно 30 градусов; в это же время изменение по гироскопу 10 градусов, а его дрейф за это время не больше 7гр, тогда настоящее изменение должно лежать в пределах [3..17] и 30 - явно завышенная оценка.

насчет ПИД: мне кажется, здесь выбор между скоростью датчиков и количеством информации об объекте управления. т.е. либо вы лучше прогнозируете систему (матмодели и таки точные расчеты :wink:), либо улучшаете датчики, третье вряд ли дано.

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 23 ноя 2017, 16:37 
Не в сети

Зарегистрирован: 23 ноя 2017, 16:34
Сообщения: 1
Подскажите, если у меня есть магнитный компас(HMC5883L), он работает в 3-х осях. По сути же его одного должно хватить для создания такого робота?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот V0.1
СообщениеДобавлено: 23 ноя 2017, 17:07 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
http://www.avislab.com/blog/hmc5883l_ru/


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO