roboforum.ru

Технический форум по робототехнике.
Текущее время: 28 фев 2025, 05:33

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Зачем в балансере акселерометр?
СообщениеДобавлено: 19 апр 2009, 21:40 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Гироскоп ясно зачем - отклонился от нужного курса, к примеру, начал падать вперед включаем оба мотора и едем вперед чтобы стабилизировать падение, а акселерометр зачем?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 19 апр 2009, 22:02 
Не в сети
Аватара пользователя

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

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 20 апр 2009, 00:54 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Что-то я не понял, акселерометр измеряет ускорение, каким образом он задаст начальную позицию и почему именно он должен обнулять гироскоп?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 20 апр 2009, 08:07 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Гироскоп не может определять вертикальное положение, он только может определять его изменение.
А акселерометр может.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 20 апр 2009, 10:48 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Таким образом получается акселерометр определяет вертикально стоит туловище или нет. И если нет гироскоп определяет в какую сторону произошло отклонение и на сколько.
Правильно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 20 апр 2009, 11:07 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
неее :)

Гироскоп даёт локальные изменения положения и быстро, но не даёт абсолютного положения (точнее накапливает по нему ошибку безбожно), а акселерометр даёт абсолютное положение, но достаточно медленно и при резком повороте тяжело будет понять что есть гравитация, а что есть ускорение от поворота - вроде как-то так...

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 20 апр 2009, 11:44 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Короче балансера мы не скоро построим :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 20 апр 2009, 16:27 
Не в сети
Аватара пользователя

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

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 21 апр 2009, 17:42 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
А что значит ваше "обнуляется"? Что ждет пока остановится и потом тупо сбрасует угол гироскопа? А если долго ездить без остановки? Упадет от усталости? Както не технично.
:no:
Ктото из местных Великих когдато о хитром фильтровании говорил чтобы гироскоп и аксель вместе работали непрерывно а не друг друга сбрасывали когда прийдется, можно ли осветить эту стоону вопроса?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 21 апр 2009, 17:55 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 21 апр 2009, 22:40 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
=DeaD=, это ты щас с кем разговаривал? Две строки текста - нифига не понял.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 21 апр 2009, 23:11 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
:D

Бывает :) я говорю, что мы написали, что аксель обнуляет гироскоп не в том смысле, что аксель можно юзать только в состоянии покоя, а в том, что без акселя гироскоп накапливает ошибку, а аксель ему её скидывает, но реально можно не дожидаться этого вроде (пока платформа остановится в каком-то положении), а юзать хитрый фильтр кальмана :)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 21 апр 2009, 23:25 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Master писал(а):
=DeaD=, это ты щас с кем разговаривал? Две строки текста - нифига не понял.

Попробую разжевать (типа капитан очевидность :) )
Акселерометр меряет ускорение. Может вдоль нескольких осей. Но поскольку действие гравитации полностью аналогично ускорению, то он меряет еще и силу тяжести, и отличить одно от другого не может. Гироскоп (который MEMS, "твердотельный") на самом деле вообще не гироскоп :) А датчик угловой скорости. Меряет, будете смеяться, угловую скорость. Называется гироскопом только потому, что гироскопами тоже можно мерять угловую скорость.

Вернемся к нашему перевернутому маятнику. Пусть для простоты он качается в одной плоскости, чаще всего так и есть. Как его балансировать? Нужно узнать угол отклонения от вертикали. Как узнать? Есть 2 метода.

По акселерометру - если маятник вертикален, ускорение вдоль горизонтальной оси нулевое. Если маятник отклонился, то в показаниях акселерометра появляется проекция силы тяжести, примерно пропорциональная отклонению. Но при этом при каждом качании маятника акселерометр к наклону добавляет сигнал, пропорциональный ускорению. Он регулировать очень мешает, но зато полезен тем, что интеграл от него после возврата маятника на исходную позицию равен нулю. Значит, если долго усреднять показания акселерометра, то получим наклон маятника без "примесей". Но за то время пока мы усредняем, маятник упадет :(

По датчику угловой скорости - угловая скорость есть производная угла наклона. Значит если показания датчика проинтегрировать, то получим угол. Причем любые быстрые изменения угла будут учтены. Но зато появляется накопление ошибки датчика. Если, предположим, в покое показания равны 1 градус в секунду, то через 90 секунд наш интеграл станет равен 90 градусам, хотя маятник по прежнему вертикален. Ну или если мы по этим показаниям регулируем, то наоборот, мы будем держать значение интеграла равное нулю, а маятник через 90 сек ляжет.

Поэтому долговременное значение угла нужно определять акселерометром, а кратковременно - ДУСом (гироскопом).

А теперь как объединить. ИМХО, можно и без кальмана. Взять показания акселерометра, пропустить через ФНЧ. А показания ДУС - через интегратор+ФВЧ (по сути это фильтр с характеристикой как у интегратора, но только до определенной частоты, потом спад). частоты среза фнч и фвч взять равными, выбрать исходя из характеристик ДУС и маятника. И вот эту сумму и считать углом наклона маятника. По ней ПИ/ПИД и на мотор.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зачем в балансере акселерометр?
СообщениеДобавлено: 22 апр 2009, 11:18 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
Спасибо за подробное объяснение. Вобщем понятно :good:
А в Лего роботе-балансере что фильтр Кальмана или наколенный вариант постом выше? (просто видел видео держится он отлично, вот и интересно какой алгоритм юзают)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

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


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

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


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

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