Ti0riTyK
|
|
1 | |
Акселерометр или Гироскоп29.07.2011, 00:58. Показов 69694. Ответов 29
Метки нет Все метки)
(
Доброго времени суток, электронщики!
Вот затеял разобраться с теорией, что называется "по понятиям" - как устроены акселерометр и гироскоп, и как определить направление (крен, тангаж) радиоуправляемой модели в воздухе? Покопавшись в гугле и в комментариях к статьям DiHALTа не нашел путного объяснения, чем же отличается гироскоп от акселерометра. В моём понимании: гироскоп измеряет проекцию силы тяжести на свои оси. Значит, если <ul><li>датчик неподвижен то гироскоп покажет истинные значения проекций на оси, а, если </li><li>тело движется с ускорением, то на выходе - сумма =g+a (в соответствующим проекциях)</li></ul>Акселерометр меряет ускорение и на выходе будет сигнал(данные) отличные от нуля ТОЛЬКО, если датчик движется с ускорением. Соответственно, если радиомодель неподвижно зависла (или движется равномерно, a=0) в воздухе и имеет отклонения в крене и/или тангаже, то аксел покажет нули, т.к. то самое ускорение, которое он меряет, и равняется нулю. Так ли это в действительности? Определить направление относительно направления на север(нигнитный полюс или, с поправкой, на географический) можно с помощью ?нигнитометра? или цифрового компаса. Как определить азимут с помощью гироскопа/акселерометра? Может быть так- использовать двух-осевой гиро+двух-осевой аксел и из показаний гиро вычитать показания аксела (разумеется в соответствующих проекциях) ? |
29.07.2011, 00:58 | |
Ответы с готовыми решениями:
29
Помогите с MPU-9250 (Гироскоп+Акселерометр+Магнитометр) MPU-6050 гироскоп/акселерометр гироскоп |
0 / 0 / 0
Регистрация: 15.02.2011
Сообщений: 176
|
|
29.07.2011, 02:56 | 2 |
акселерометр как раз таки показывает проекцию g + a. А как раз таки гироскопом можно мерять различные углы отклонения... правда не известно относительно чего(начального положения? тут не знаю, даж даташиты на них не видел...).
3хосевого нигнитометра и акселерометра должно быть достаточно для определения азимута. акселерометром определяем положение относительно земли, по поолжению пересчитываем показания нигнитометра... ЗЫ на авиамодели с акселерометрами надо быть осторожными. всякие там центростремительные ускорения он ловить будет...
0
|
Ti0riTyK
|
|
29.07.2011, 13:07 | 3 |
![]() Нужно еще разобраться что влияет на показания гиро/аксела, рассмотреть два случая <ul><li>1. датчик неподвижен, </li><li>2. датчик движется с некоторым неизвестным ускорением.</li></ul> Тогда более-менее ситуация прояснится Задачка-то простая: узнать крен и тангаж в любой момент времени вне зависимости от характера движения модели. (Делаю систему автопилота и телеметрии для RC-самолёта. Тут еще GPS будет нужен и всё такое) |
Ti0riTyK
|
|
29.07.2011, 20:37 | 4 |
![]()
Хотелось бы еще почитать о том в чем конструктивное отличие гироскопа от акселерометра (википедия выдаёт хрень) ой. накосячил с отправкой ответа. АДМИНЫ, уберите эту херь с проверкой сообщений |
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 180
|
|
29.07.2011, 23:58 | 5 |
0
|
Ti0riTyK
|
|
31.07.2011, 00:02 | 6 |
![]() Один хрен, пока не подержу в руках обе микрухи, не померяю на них - не фига не пойму. так что пошел за микросхемами! |
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 257
|
|
01.08.2011, 10:31 | 7 |
Акселерометр измеряет ускорение. Если измерять по оси направленной вертикально к земле то он покажет 1g даже в полном покое, при наклоне от вертикальной оси показания акселерометра будут уменьшатся до -1g (когда акселерометр полностью перевернутся верх ногами). - то есть его можно использовать для измерения наклона относительно земли. Единственное если сюда наложится еще и внешнее ускорение (а не только свободного падения) - измерение будут неправильные.
Их используют в Iphona и т.д. для измерения ориентации экрана, его называют G-сенсором. Гироскоп измеряет угловую скорость. Если покоиться - то будет 0. Если постоянно интегрировать угловую скорость - то получим угол отклонения (просто суммируем и делим на dt). Единственное проблема - это смещение, которое при интегрировании добавит постоянный увод в тот или иной угол. Использовал совмещенные 3 акселерометра и 3 гироскопа от Analog Devices ADIS16364 c SPI интерфейсом - впечатление крайне положительные.
0
|
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,283
|
|
01.08.2011, 14:00 | 8 |
"3 акселерометра" это трехосевой акселерометр или я не так понял?
0
|
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 257
|
|
01.08.2011, 14:59 | 9 |
![]()
0
|
Ti0riTyK
|
|
01.08.2011, 17:49 | 10 |
Т.е. для определения крена и тангажа хватит одного акселерометра?
хм... аксел показывает проекии текущего вектора ускорения на свои оси. Определить крен и тангаж не составит труда, если датчик неподвижен. А вот если он движется с ускорением тут одного аксела не хватит... |
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 594
|
|
01.08.2011, 23:19 | 11 |
Ничего не понял, но у меня MMA7260QT (±1.5g - 6g Three Axis Low-g
Micromachined Accelerometer) показывает углы наклона платформы робота в статике.
0
|
Ti0riTyK
|
|
01.08.2011, 23:37 | 12 |
млин. я ваще запутался.
Кто-нибудь может толком объяснить какие показания будут у гироскопа и акселерометра, если 1) оба датчика неподвижны, но имеют углы отклонения (крен, тангаж) 2) оба датчика движутся с ускорением и имеют наклон (крен, тангаж) ??? |
0 / 0 / 0
Регистрация: 15.02.2011
Сообщений: 176
|
|
02.08.2011, 00:19 | 13 |
1) неподвижно:
акселерометр: проекция ускорения свободного падения(силы тяжести) на его оси. гироскоп: по нулям все оси 2)движется с ускорением: акселерометр: проекция ускорения свободного падения(силы тяжести) + ускорение с которым движется тело(так же проекции на оси). гироскоп будет показывать нули если крен и тангаж не изменяются. если самолет совершает бочку или петлю Нестерова то покажет скорость вращения разложеную на оси. грубо говоря аксел показывает проекции действующих сил, а гироскоп - проекции угловых скоростей.
0
|
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 594
|
|
02.08.2011, 00:51 | 14 |
![]() 3)Движение без ускорения: показания акселя = показаниям в режиме "неподвижно".
0
|
Ti0riTyK
|
|
02.08.2011, 13:31 | 15 |
![]() Осталось решить вопрос - как определить крен и тангаж? Одного аксела хватит только когда датчик неподвижен. А вот если он движется с ускорением - как согласовать работу гороскопа и акселерометра? |
0 / 0 / 0
Регистрация: 15.02.2011
Сообщений: 176
|
|
02.08.2011, 14:49 | 16 |
при помощи аксела и гироскопа. Включаем самолет, по акселу определяем начальное положение относительно земли(при условии что самолет стартует из состояния покоя с земли и не перезагружается в полете) а дальше интегрируем показания гироскопа. Но будет набираться ошибка, которая сведет на нет всю схему(а еще вибрации ведь будут, темболее при старте).
может по нигнитометру можно попробовать...не уверен что получится и будет ли точнее первого варианта. так у вас еще и компас появится(курс определять) и ни аксел, ни гироскоп не понадобятся. Насколько большой самолет? Если маленький игрушечный то там это, имхо, не надо. А если большой то ставьте механический гироскоп. Он вам углы и даст(но так же относительно начального положения, в котором он раскрутится. Чтобы в состоянии покоя он сам устанавливался нормально к земле центр тяжести должен быть ниже оси. Но при ускорении это будет его сбивать, чтобы при ускорении показания не уходили, центр массы должен быть точно на оси). Это все не так уж просто, авиация, как никак..
0
|
0 / 0 / 1
Регистрация: 20.08.2010
Сообщений: 87
|
|
11.08.2011, 02:23 | 17 |
Я около полугода назад пробивал данную тему. Для успешного определения ориентации необходини связка гироскоп+акселерометр+температурный сенсор+ нигнетометр(желательно). У MEMS гироскопов есть одна нехорошая особенность - температурный дрейф. Если в нём изначально нет термокомпенсации - придётся делать самому (в ДШ обычо есть график зависимости дрейфа от температуры). Для автомата горизонтального полёта всё выглядит довольно просто: определяем гироскопом наличие и направление угловой скорости и устраняем её, определяем направление вектора g+a, получаем некоторую величину, отклонённую от оси гироскопа, перпендикулярной плоскости полёта. Далее уже начинается страшный геморой с совмещением этой оси и вектора.
Другая задача: отслеживание положения и вывод актуальных данных. Заранее задаём базовый вектор, в роли которого выступает родимый g, покачто плюём на гироскоп, пользуемся акселерометром, т.к. у нас практически отсутствуют побочные ускорения. Совмещаем вектор g и гироскопа, перпендикулярную плоскости полёта, запоминаем значения. Далее пойдёт свистопляска и интегрированием - определяем величины крена, тангажа, рысканья как интеграл функции угловой скорости по времени. Это мы берём с гироскопа, акселерометр нужен будет для коррекции данных в моменты относительного покоя (близконулевая угловая скорость). Делаем мы это сверяя вектор g+a с базовым вектором. По углу между ними получаем данные для корректировки. Вообще, есть хорошая книга, которая может Вам помочь. Называется она - "Микросистемная авионика". Придётся применять математическе фильтры для отсеивания ложных данных. Поищите решения на http://sparkfun.som, там можете найти готовое решение и названия фильтров. Так же можно поискать и на http://rcdesykn.ru в разделе "Телеметрия и полёты по камере", но вопросов на РЦдизайне лучше не задавать - сгнобят. Заранее предупрежу. От обилия информации у меня вспух мозг и я решил временно бросить это дело, пока не засосало :-) ----------------------------------------------------------------------- ВСПОМНИЛ!!! ФИЛЬТР КАЛМАНА ОНО НАЗЫВАЕТСЯ! З.Ы. THIS IS SHIFT!!!
0
|
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 3
|
|
06.11.2011, 13:39 | 18 |
Если все еще интерестно..
Гироскоп показывает угловую скорость или угол наклона Акселерометр только ускорение. При помощи классического акселерометра невозможно определить угол. По крайней мере на самолете. Т.К в координировано развороте ,например , ускорение перпендекулярно крылу и ДОЛЖНО быть равно еденице. Т.е. как и при стоящем на стоянке самолете. Ну или к примеру в метрвой петле когда самолет к верху брюхом ускорение направленно вверх. И легко может быть больше еденицы. А при косой петле еще и в бок.
0
|
0 / 0 / 0
Регистрация: 25.07.2010
Сообщений: 39
|
|
06.11.2011, 22:27 | 19 |
Пусть у нас есть один поворот на угол w вокруг оси с направляющим вектором t Возьмем такой кватернион: L =cos(w/2)+t*sin(w/2) = a + b*i+c*j+b*k; i,j, k можно рассматривать как направляющие векторы декартовой системы координат здесь вектор: a*i+b*j+c*k= t* sin(w/2) задаст направление оси поворота, а число a=cos(w/2) Если произошло друг за другом несколько поворотов с кватернионами L и М, то их можно заменить одним поворотом вокруг некой оси, причем кватернионом этого поворота будет K=L*M. при умножении i*j=k , j*k=i , i*k= -j; ну и при перемене мест множителей произведение меняет знак, то есть j*i=-k , k*j=-i , k*i= j; и i*i=-1 (для j и k аналогично) множители умножаем как обычно. если поворотов дохуя очееень много вокруг охрененного большого числа осей, то через кватернионы считать намного проще
0
|
obsotim
|
|
17.01.2012, 19:09 | 20 |
Доброго времини суток. У кого-нибудь возникало желание сделать балансирующего двухколесного робота?
Может быть уже есть какие-нибудь наработки? |
17.01.2012, 19:09 | |
Помогаю со студенческими работами здесь
20
Гироскоп L3G4200D Гироскоп и Windows 7 Гироскоп отключить? что за гироскоп? Посоветуйте MEMS-гироскоп Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Новые блоги и статьи
![]() |
||||
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной.
Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
|
Формулы поворота
Igor3D 10.03.2025
Добрый день
Тема
Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости".
x' = x * cos(a) - y * sin(a)
y' = y * cos(a) + x * sin(a)
Как бы Вы их. . .
|
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
|
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
|
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
|
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view.
string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
|
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
|
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет!
Отправлено 19 февраля 2025 года в 17:20:21 UTC
Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home.
Мы официально. . .
|
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
|
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
|