roboforum.ru

Технический форум по робототехнике.


робот балансер, кто уже сделал?

Обсуждение и примеры готовых и самосборных компонент для построения роботов.

Re: робот балансер, кто уже сделал?

Сообщение lebaon » 16 июн 2008, 18:37

если я правильно понимаю, там когда робот едет, испольуется гирик,
а когда останавливается - гирик обнуляется акселером :)
Аватара пользователя
lebaon
Безбашенный Теоретик
 
Сообщения: 1137
Зарегистрирован: 07 янв 2006, 18:30
Откуда: Подмосковье

Re: робот балансер, кто уже сделал?

Сообщение Ruslan » 16 июн 2008, 19:20

А можно просто прикрепить дальномер, обращенный вниз, на рычаге и поддерживать постоянное расстояние до пола.
Так делают двухколесники даже из Лего. см http://www.g4tv.com/screensavers/features/42181/Build_Your_Own_LegWay.html например.
Аватара пользователя
Ruslan
 
Сообщения: 603
Зарегистрирован: 03 июн 2007, 22:32
Откуда: Москва
ФИО: Руслан

Re: робот балансер, кто уже сделал?

Сообщение craft » 16 июн 2008, 19:36

lebaon писал(а):если я правильно понимаю, там когда робот едет, испольуется гирик,
а когда останавливается - гирик обнуляется акселером :)


В этом что-то есть! только если долго ехать и не останавливтаься, может накопится критичная погрешность.

Может тогда вот так: если мы движемся без ускорения, то акселерометр можно использовать как измеритель угла наклона к горизонту, от сюда вывод: можно ли определить, что мы движемся равномерно? т.е. если гиро ничего не выдает или выдает минимальные значение, можно сказать, что наш аппарат не вращается, можно ли апроксимировать эти минимальные-"нулевые" значения гироскопа как равномерное движение и использовать в этих случаях угол найденный по акселерометру?

Добавлено спустя 1 минуту 51 секунду:
RiO писал(а):А можно просто прикрепить дальномер, обращенный вниз, на рычаге и поддерживать постоянное расстояние до пола.
Так делают двухколесники даже из Лего. см http://www.g4tv.com/screensavers/features/42181/Build_Your_Own_LegWay.html например.


Тогда вот такой номер не пройдет:

1080150574-0.jpeg
Аватара пользователя
craft
 
Сообщения: 16
Зарегистрирован: 14 июн 2008, 19:08
Откуда: Москва
прог. языки: C++, C#, Java, PHP, Object Pascal

Re: робот балансер, кто уже сделал?

Сообщение Master » 19 июн 2008, 09:42

2 craft
Если сделаешь балансера, будешь первым на форуме у кого он заработает.
Ээээ, а бюджет какой?
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: робот балансер, кто уже сделал?

Сообщение EdGull » 19 июн 2008, 09:59

я кстати, начал тут для минибота делать 10А мост
так что теперь бюджет будет копеешный :wink:
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: робот балансер, кто уже сделал?

Сообщение Кирилл » 19 июн 2008, 10:21

Лучше б ты начал гироскопы штамповать - тогда бюджет точно копеешный будет :ROFL:
Кирилл
 
Сообщения: 432
Зарегистрирован: 20 окт 2005, 16:11
Откуда: Вильнюс,Литва
прог. языки: Basic

Re: робот балансер, кто уже сделал?

Сообщение Alex Gritsenko » 20 июн 2008, 05:53

Проверьте плиз мои расчеты :)

Вычисление ускорения и угла наклона относительно вектора силы тяжести с помощью двуосевого акселерометра. Тоесть замена гироскопа :)
Итак... При расчете подразумевается что ускорение по оси силы тяжести не изменяется в больших пределах относительно значения в 1g. Сомневаюсь, что балансирующий робот будет резко взлетать :D.
axx.jpg
Расположение акселерометра относительно вектора силы тяжести
axx.jpg (10.46 КиБ) Просмотров: 3656



Расчет

DSC00500.jpg
Картинко к расчетам 0_о


G = 1g = const

Суммарный вектор:
Sum = sqrt( x^2 + y^2 );

Угол между осью Х и суммарным вектором:
Alpha = arcsin( Y/Sum );

Угол между вектором ускорения и суммарным вектором:
Gamma = arcsin( G/Sum );

Ускорение:
A = sqrt( Sum^2 + G^2 );

Угол между осью Х и вектором силы тяжести:
XG-angle = Alpha + ( 90 - Gamma ); (при Alpha < 45)
XG-angle = Alpha - ( 90 - Gamma ); (при Alpha > 45)

Угол отклонения от вектора силы тяжести: Z-angle = XG-angle - 45;

DSC00501.jpg
Картинко к расчетам 2


calc.zip
Скрипт для расчета (на PHP)
(1.25 КиБ) Скачиваний: 34


Добавлено:
Скрипт на яваскрипте, достаточно открыть страницу у себя в браузере
calc_js.zip
Скрипт для расчета (на JavaScript)
(1.26 КиБ) Скачиваний: 46
Последний раз редактировалось Alex Gritsenko 20 июн 2008, 16:57, всего редактировалось 1 раз.
Аватара пользователя
Alex Gritsenko
 
Сообщения: 150
Зарегистрирован: 12 июл 2005, 16:10
Откуда: Харьков
прог. языки: Lua, C, JS

Re: робот балансер, кто уже сделал?

Сообщение Виталий » 20 июн 2008, 09:17

Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: робот балансер, кто уже сделал?

Сообщение Alex Gritsenko » 20 июн 2008, 15:18

"Акселерометр меряет проекцию (на свою ось чувствительности) суммы всех сил, приложенных к его корпусу, кроме силы тяжести"

Из этой формулировки уже понятно, что если она верна, то использовать акселерометр в качестве измерителя наклона в общем случае нельзя, так как акселерометр не меряет именно искомую составляющую силы тяжести. То, что акселерометры применяют-таки для измерения наклона, объясняется условиями, в которых это делают, а именно при неподвижном корпусе акселерометра, когда сила, приложенная к корпусу (реакция опоры или подвеса) равна по модулю силе тяжести, действующей на акселерометр, и направлена противоположно ей.


В нашем случае как раз опорой служит плоскость, по которой двигается робот, а она довольно плоская и ее вертикальные неровности, способные повлиять на ускорение вдоль оси силы тяжести невелики. Поэтому сила тяжести ничем не компенсируется и постоянно находится в районе 1g.

В состоянии покоя или при равномерном движении на акселерометр будет действовать только ускорение силы тяжести. При неравномерном движении к ускорению силы тяжести добавляется ускорение движения.
Аватара пользователя
Alex Gritsenko
 
Сообщения: 150
Зарегистрирован: 12 июл 2005, 16:10
Откуда: Харьков
прог. языки: Lua, C, JS

Re: робот балансер, кто уже сделал?

Сообщение Виталий » 20 июн 2008, 16:59

Это для тех кто по этим записям случайно соберется самолет делать....
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: робот балансер, кто уже сделал?

Сообщение Alex Gritsenko » 20 июн 2008, 18:04

Модеры админы, перенесите пожалуйста мой пост в "проджекты-идеи".
Аватара пользователя
Alex Gritsenko
 
Сообщения: 150
Зарегистрирован: 12 июл 2005, 16:10
Откуда: Харьков
прог. языки: Lua, C, JS

Re: робот балансер, кто уже сделал?

Сообщение craft » 26 июн 2008, 17:36

Alex Gritsenko писал(а):Проверьте плиз мои расчеты :)

Ускорение:
A = sqrt( Sum^2 + G^2 );


Наверное там должен быть не плюс, а минус: A = sqrt( Sum^2 - G^2 ) ? Кстати js скрипт лично у меня выдает Nan почти всегда. Но кажется при имеющихся входных условиях предложенный алгоритм может сработать :good: , но наверное я бы не доверил своему ребенку ехать на "такой механике" с горы :wink:
Аватара пользователя
craft
 
Сообщения: 16
Зарегистрирован: 14 июн 2008, 19:08
Откуда: Москва
прог. языки: C++, C#, Java, PHP, Object Pascal

Re: робот балансер, кто уже сделал?

Сообщение Alex Gritsenko » 27 июн 2008, 02:06

Наверное там должен быть не плюс, а минус

Да, опечатка приключилась :) в скрипте написано верно.

скрипт лично у меня выдает Nan почти всегда

Значит неверные данные на вход вводил.

Написал скрипт для расчета значений на осях X и Y акселерометра при входном наклоне и ускорении движения.
anticalc_js.zip
Антикалькулятор
(1.37 КиБ) Скачиваний: 35
Аватара пользователя
Alex Gritsenko
 
Сообщения: 150
Зарегистрирован: 12 июл 2005, 16:10
Откуда: Харьков
прог. языки: Lua, C, JS

Re: робот балансер, кто уже сделал?

Сообщение craft » 28 июн 2008, 22:17

Master писал(а):2 craft
Если сделаешь балансера, будешь первым на форуме у кого он заработает.
Ээээ, а бюджет какой?


Понятно, бюджет 1000-1500 дол.

С алгоритмами по самой теме на данный момент стало более менее понятно, надо пробывать живьем.

Уже не уверен, что AVR является оптимальным для меня решением. Посматриваю в сторону ARM, люблю работать с готовым API для взаимодействия с периферией и в более вальготных условиях, чем предоставляются на AVR - более 10 лет разработки в среде MS Visual Studio и использование языка C++ накладывает свой отпечаток.

В связи с этим подскажите пожалуйста какие и где есть хорошие курсы по ARM ? Я так понял, что по цене это тот же порядок цен, что и AVR? реально ли эта платформа более удобна и масштабируема с точки срения программиста?

Хотелось бы использовать аппаратные решения по максимуму. Как Вы считаете, какие готовые аппаратные модули (аппаратура) понадобятся по данной задаче? начиная от выбора платы, акселерометра и гиры и заканчивая ШИМ-генераторами, контроллерами двигателей с учетом бюджета.
Последний раз редактировалось craft 28 июн 2008, 22:51, всего редактировалось 2 раз(а).
Аватара пользователя
craft
 
Сообщения: 16
Зарегистрирован: 14 июн 2008, 19:08
Откуда: Москва
прог. языки: C++, C#, Java, PHP, Object Pascal

Re: робот балансер, кто уже сделал?

Сообщение EdGull » 28 июн 2008, 22:21

плату с АРМом бери готовую олимексовксую
питается и программится сразу через усб

Добавлено спустя 1 минуту 19 секунд:
с каким именно армом смотри таблицы чего тебе хочется от МК
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Пред.След.

Вернуться в Готовые модули

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

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