roboforum.ru

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

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

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

lebaon » 16 июн 2008, 18:37

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

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

Ruslan » 16 июн 2008, 19:20

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

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

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

Master » 19 июн 2008, 09:42

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

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

EdGull » 19 июн 2008, 09:59

я кстати, начал тут для минибота делать 10А мост
так что теперь бюджет будет копеешный :wink:

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

Кирилл » 19 июн 2008, 10:21

Лучше б ты начал гироскопы штамповать - тогда бюджет точно копеешный будет :ROFL:

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

Alex Gritsenko » 20 июн 2008, 05:53

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

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



Расчет

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 раз.

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

Виталий » 20 июн 2008, 09:17


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

Alex Gritsenko » 20 июн 2008, 15:18

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

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


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

В состоянии покоя или при равномерном движении на акселерометр будет действовать только ускорение силы тяжести. При неравномерном движении к ускорению силы тяжести добавляется ускорение движения.

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

Виталий » 20 июн 2008, 16:59

Это для тех кто по этим записям случайно соберется самолет делать....

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

Alex Gritsenko » 20 июн 2008, 18:04

Модеры админы, перенесите пожалуйста мой пост в "проджекты-идеи".

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

craft » 26 июн 2008, 17:36

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

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


Наверное там должен быть не плюс, а минус: A = sqrt( Sum^2 - G^2 ) ? Кстати js скрипт лично у меня выдает Nan почти всегда. Но кажется при имеющихся входных условиях предложенный алгоритм может сработать :good: , но наверное я бы не доверил своему ребенку ехать на "такой механике" с горы :wink:

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

Alex Gritsenko » 27 июн 2008, 02:06

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

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

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

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

Написал скрипт для расчета значений на осях X и Y акселерометра при входном наклоне и ускорении движения.
anticalc_js.zip
Антикалькулятор
(1.37 КиБ) Скачиваний: 35

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 раз(а).

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

EdGull » 28 июн 2008, 22:21

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

Добавлено спустя 1 минуту 19 секунд:
с каким именно армом смотри таблицы чего тебе хочется от МК


Rambler\'s Top100 Mail.ru counter