roboforum.ru

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

Зачем в балансере акселерометр?

Зачем в балансере акселерометр?

Master » 19 апр 2009, 21:40

Гироскоп ясно зачем - отклонился от нужного курса, к примеру, начал падать вперед включаем оба мотора и едем вперед чтобы стабилизировать падение, а акселерометр зачем?

Re: Зачем в балансере акселерометр?

MiBBiM » 19 апр 2009, 22:02

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

Re: Зачем в балансере акселерометр?

Master » 20 апр 2009, 00:54

Что-то я не понял, акселерометр измеряет ускорение, каким образом он задаст начальную позицию и почему именно он должен обнулять гироскоп?

Re: Зачем в балансере акселерометр?

=DeaD= » 20 апр 2009, 08:07

Гироскоп не может определять вертикальное положение, он только может определять его изменение.
А акселерометр может.

Re: Зачем в балансере акселерометр?

Master » 20 апр 2009, 10:48

Таким образом получается акселерометр определяет вертикально стоит туловище или нет. И если нет гироскоп определяет в какую сторону произошло отклонение и на сколько.
Правильно?

Re: Зачем в балансере акселерометр?

=DeaD= » 20 апр 2009, 11:07

неее :)

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

Re: Зачем в балансере акселерометр?

Master » 20 апр 2009, 11:44

Короче балансера мы не скоро построим :)

Re: Зачем в балансере акселерометр?

MiBBiM » 20 апр 2009, 16:27

ну да, аксель меряет проекции ускорения на каждую из его осей. если робот стоит, то аксель будет мерить g(и соотвественно знать наклон робота). но стоит роботу поехать, как ускорение на акселе становится a+g, и вычислить направление g уже затруднительно.
в этом случае помогает гироскоп, показания котрого слабо зависят от ускорения робота. но и тут нас подстерегает лажа: гироскоп накапливает серьезную ошибку. после достижения критического значения робот с горя хлопнет вотки и сляжет :) поэтому гироскоп периодически обнуляется, чтобы устранить ошибку.

Re: Зачем в балансере акселерометр?

executer » 21 апр 2009, 17:42

А что значит ваше "обнуляется"? Что ждет пока остановится и потом тупо сбрасует угол гироскопа? А если долго ездить без остановки? Упадет от усталости? Както не технично.
:no:
Ктото из местных Великих когдато о хитром фильтровании говорил чтобы гироскоп и аксель вместе работали непрерывно а не друг друга сбрасывали когда прийдется, можно ли осветить эту стоону вопроса?

Re: Зачем в балансере акселерометр?

=DeaD= » 21 апр 2009, 17:55

Наше обнуляется значит зачем вообще аксель на балансере, и почему гиро не решает.
А как его юзать - с кальманом или нет - это второй вопрос.

Re: Зачем в балансере акселерометр?

Master » 21 апр 2009, 22:40

=DeaD=, это ты щас с кем разговаривал? Две строки текста - нифига не понял.

Re: Зачем в балансере акселерометр?

=DeaD= » 21 апр 2009, 23:11

:D

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

Re: Зачем в балансере акселерометр?

boez » 21 апр 2009, 23:25

Master писал(а):=DeaD=, это ты щас с кем разговаривал? Две строки текста - нифига не понял.

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

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

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

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

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

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

Re: Зачем в балансере акселерометр?

executer » 22 апр 2009, 11:18

Спасибо за подробное объяснение. Вобщем понятно :good:
А в Лего роботе-балансере что фильтр Кальмана или наколенный вариант постом выше? (просто видел видео держится он отлично, вот и интересно какой алгоритм юзают)


Rambler\'s Top100 Mail.ru counter