roboforum.ru

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


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

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

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

Сообщение ukrnano » 20 янв 2014, 16:29

Добрый день. Пытаюсь сделать робота-балансера(уже 4й вариант). Кто-нибудь может подсказать на пальцах как фильтруется сигнал с гироскопа и акселерометра? Гугл как-то уж слишком сложно и муторно описывает теорию фильтра Калмана, альфа-бета фильтра и тд.

Грубо говоря, есть байтовых значения: Gyro и Acsel, которые обновляются 100 раз в секунду, какие математические действия нужно сделать сделать чтобы получить отфильтрованное значение?

вот прошлый тестовый вариант шасси:
9163416.jpg

7241699.jpg

5260943.jpg

5234361.jpg

3488179.jpg

2936988.jpg


На данный момент, для увеличения возможностей, переделал блок управления:



Зарание всем спасибо!
Аватара пользователя
ukrnano
 
Сообщения: 156
Зарегистрирован: 27 июн 2013, 19:02

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

Сообщение Madf » 20 янв 2014, 16:31

я так понимаю, что у вас слишком малое передаточное число с мотора на колеса, возможно не хватает крутящего момента
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

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

Сообщение ukrnano » 20 янв 2014, 16:43

хмм...на что это может влиять, кроме мощности?...вибрации??...я специально делал ременную передачу чтоб уменьшить возможные вибрации...
..мощность моторов такова что если зажать колеса то крутит шкив под ремнем...
Аватара пользователя
ukrnano
 
Сообщения: 156
Зарегистрирован: 27 июн 2013, 19:02

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

Сообщение Madf » 20 янв 2014, 18:37

Влиять это может на то, что:

- временные хар-ки более быстрые (за короткий промежуток времени, надо отдать мгновенно данные (выполнить расчет, тянет ли железо, МК, код);
- запас мощности системы питания, да и просто мощности мотора в критических режимах работы (скажем, вместо оборота на 10 градусов за пол секунды, он выдает 8 градусов или вообще за 12 секунд);
- не уверен, что пасиковая система привода оправдана (не должно быть проскальзываний, растяжки как самого пассика, так и самой резины колес относительно поверхности).
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

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

Сообщение ukrnano » 20 янв 2014, 18:44

ОК, я понял.

еще есть проблемка с фильтрацией входных данных....увидеть бы пример расчета хотя бы для какого-то алгоритма фильтрации....
Аватара пользователя
ukrnano
 
Сообщения: 156
Зарегистрирован: 27 июн 2013, 19:02

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

Сообщение Romeo » 20 янв 2014, 20:52

ukrnano писал(а):еще есть проблемка с фильтрацией входных данных....увидеть бы пример расчета хотя бы для какого-то алгоритма фильтрации....

x[i]=(x[i-1]+x[i]+x[i+1])/3
И так для каждого из элементов.
Вложения
1.JPG
Аватара пользователя
Romeo
 
Сообщения: 320
Зарегистрирован: 04 фев 2009, 16:02
Откуда: Десногорск
прог. языки: VB, MicroC, Pascal, С++ Builder

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

Сообщение linvinus » 20 янв 2014, 20:57

Хмм. тута были уже? http://www.x-io.co.uk/category/open-source/ (читать с конца)
Всё готово, нужно только подключить.
Кстати у акселя и гироскопа накапливается ошибка, так что если сильно потрясти нулевое положение уплывёт.
Почитайте статьи по ссылке там всё разжёвано.

готовый пример для ардуино https://github.com/pololu/minimu-9-ahrs-arduino
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение ukrnano » 20 янв 2014, 23:07

Romeo писал(а):
ukrnano писал(а):еще есть проблемка с фильтрацией входных данных....увидеть бы пример расчета хотя бы для какого-то алгоритма фильтрации....

x[i]=(x[i-1]+x[i]+x[i+1])/3
И так для каждого из элементов.


Спасибо за подсказку! А какой программой Вы строили такой график? Я нагуглил только SFmonitor (http://www.poprobot.ru/soft/sfmonitor), но как-то пока не получилось ее запустить, к ней нужна еще куча библиотек..

Добавлено спустя 15 минут 52 секунды:
linvinus писал(а):Хмм. тута были уже? http://www.x-io.co.uk/category/open-source/ (читать с конца)
Всё готово, нужно только подключить.
Кстати у акселя и гироскопа накапливается ошибка, так что если сильно потрясти нулевое положение уплывёт.
Почитайте статьи по ссылке там всё разжёвано.

готовый пример для ардуино https://github.com/pololu/minimu-9-ahrs-arduino


Благодарю, интересный ресурс, надеюсь разжиться там софтишком для своих нужд. Но как-то, к готовому софту + готовым модулям Ардуины душа не лежит...в интернете, все роботы-балансеры(да и остальные), которые я видел, сделаны на готовом ардуино и остальных стандартных модулях и деталях, а также софте....как на мой вкус, то слишком мало творчества, ни паяльника, ни программирования....так-что буду пытаться сделать велосипед))..
Аватара пользователя
ukrnano
 
Сообщения: 156
Зарегистрирован: 27 июн 2013, 19:02

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

Сообщение Romeo » 20 янв 2014, 23:34

ukrnano писал(а):... А какой программой Вы строили такой график? ...

Прогу писал сам, на VB6. Пробовал разные фильтры сигнала.
Аватара пользователя
Romeo
 
Сообщения: 320
Зарегистрирован: 04 фев 2009, 16:02
Откуда: Десногорск
прог. языки: VB, MicroC, Pascal, С++ Builder

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

Сообщение linvinus » 21 янв 2014, 11:21

Советую изучить http://www.gnuplot.info/
программа может строить графики из любых данных
Ещё можно рисовать и делать управление используя Processing http://robocraft.ru/blog/arduino/336.html
http://www.x-io.co.uk/osc-illoscope/


Вот ещё хороший фильтр, http://ru.wikipedia.org/wiki/%D0%9C%D0% ... 1%82%D1%80
который хорошо сглаживает кратковременные пики, в отличие от обычного усреднения.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение ukrnano » 21 янв 2014, 22:22

Romeo писал(а):
ukrnano писал(а):... А какой программой Вы строили такой график? ...

Прогу писал сам, на VB6. Пробовал разные фильтры сигнала.


А не могли бы вы поделиться такой программкой, если это не секретная технология?!))...мне нужна самая простая..чтоб взяла байт с ком-порта, поставила точку на график и все.

Добавлено спустя 6 минут 57 секунд:
linvinus писал(а):Советую изучить http://www.gnuplot.info/
программа может строить графики из любых данных
Ещё можно рисовать и делать управление используя Processing http://robocraft.ru/blog/arduino/336.html
http://www.x-io.co.uk/osc-illoscope/


Оо, процессинг под виндовс!..надеюсь получиться с ним разобраться!.. :beer: пасиб
Аватара пользователя
ukrnano
 
Сообщения: 156
Зарегистрирован: 27 июн 2013, 19:02

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

Сообщение linvinus » 21 янв 2014, 23:10

мне нужна самая простая..чтоб взяла байт с ком-порта, поставила точку на график и все.

gnuplot с этим отлично справится.
передача отладочной информации с контроллера это сама по себе ресурсоёмкая задача.
Самое оптимальное, сначала набрать массив данных в контроллере с отметками времени, а потом передавать через компорт для сохранения в файл, потом данные из файла можно изучать и обрабатывать.
передавать лучше в бинарном виде так быстрее, потом ,если нужно, можно перевести в текстовый вид, для наглядности.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение Romeo » 22 янв 2014, 01:13

ukrnano писал(а):...А не могли бы вы поделиться такой программкой, если это не секретная технология?!))...мне нужна самая простая..чтоб взяла байт с ком-порта, поставила точку на график и все...

Во вложении проект на VB6. Принимает указанное количество байт с указанного порта и делает 2 фильтра с этими данными. Выводит входной и выходной сигналы на экран.
Вложения
filter.rar
(10.76 КиБ) Скачиваний: 0
Аватара пользователя
Romeo
 
Сообщения: 320
Зарегистрирован: 04 фев 2009, 16:02
Откуда: Десногорск
прог. языки: VB, MicroC, Pascal, С++ Builder

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

Сообщение Madf » 22 янв 2014, 10:42

Спасибо, полезно.

зы: одна проблема, mscomm не воспринимает порты больше 2х, надо быть внимательным. (
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

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

Сообщение ukrnano » 22 янв 2014, 13:12

Всем спасибо за подсказки!...теперь главное переварить такой объем информации))
Аватара пользователя
ukrnano
 
Сообщения: 156
Зарегистрирован: 27 июн 2013, 19:02

След.

Вернуться в Новичкам или основы основ роботостроения.

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

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