Форум программистов, компьютерный форум, киберфорум
Робототехника и умный дом
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/373: Рейтинг темы: голосов - 373, средняя оценка - 4.59
Ti0riTyK
1

Акселерометр или Гироскоп

29.07.2011, 00:58. Показов 69694. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, электронщики!
Вот затеял разобраться с теорией, что называется "по понятиям" - как устроены акселерометр и гироскоп, и как определить направление (крен, тангаж) радиоуправляемой модели в воздухе?

Покопавшись в гугле и в комментариях к статьям DiHALTа не нашел путного объяснения, чем же отличается гироскоп от акселерометра.

В моём понимании: гироскоп измеряет проекцию силы тяжести на свои оси. Значит, если <ul><li>датчик неподвижен то гироскоп покажет истинные значения проекций на оси, а, если </li><li>тело движется с ускорением, то на выходе - сумма =g+a (в соответствующим проекциях)</li></ul>Акселерометр меряет ускорение и на выходе будет сигнал(данные) отличные от нуля ТОЛЬКО, если датчик движется с ускорением. Соответственно, если радиомодель неподвижно зависла (или движется равномерно, a=0) в воздухе и имеет отклонения в крене и/или тангаже, то аксел покажет нули, т.к. то самое ускорение, которое он меряет, и равняется нулю.

Так ли это в действительности?

Определить направление относительно направления на север(нигнитный полюс или, с поправкой, на географический) можно с помощью ?нигнитометра? или цифрового компаса.

Как определить азимут с помощью гироскопа/акселерометра?
Может быть так- использовать двух-осевой гиро+двух-осевой аксел и из показаний гиро вычитать показания аксела (разумеется в соответствующих проекциях) ?
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.07.2011, 00:58
Ответы с готовыми решениями:

Помогите с MPU-9250 (Гироскоп+Акселерометр+Магнитометр)
Добрый день! Имеется в наличии модуль MPU-9250 : Хочу работать с ним по SPI... Я взял пример из github-а для stm32f4...

MPU-6050 гироскоп/акселерометр
Всем, доброго времени суток:) Я работаю с гироскопом/акселерометром MPU-6050, а именно с осью Z. Собственно вопрос вот в чем: мне...

гироскоп
помогите посчитать гироскопические силы, возникающие при повороте оси вращения диска и кольца

29
0 / 0 / 0
Регистрация: 15.02.2011
Сообщений: 176
29.07.2011, 02:56 2
акселерометр как раз таки показывает проекцию g + a. А как раз таки гироскопом можно мерять различные углы отклонения... правда не известно относительно чего(начального положения? тут не знаю, даж даташиты на них не видел...).
3хосевого нигнитометра и акселерометра должно быть достаточно для определения азимута. акселерометром определяем положение относительно земли, по поолжению пересчитываем показания нигнитометра...

ЗЫ на авиамодели с акселерометрами надо быть осторожными. всякие там центростремительные ускорения он ловить будет...
0
Ti0riTyK
29.07.2011, 13:07 3
Цитата Сообщение от K_I_S_T
акселерометр как раз таки показывает проекцию g + a. А как раз таки гироскопом можно мерять различные углы отклонения... правда не известно относительно чего(начального положения? тут не знаю, даж даташиты на них не видел...).
3хосевого нигнитометра и акселерометра должно быть достаточно для определения азимута. акселерометром определяем положение относительно земли, по поолжению пересчитываем показания нигнитометра...
ЗЫ на авиамодели с акселерометрами надо быть осторожными. всякие там центростремительные ускорения он ловить будет...
Тогда: гироскоп показывает углы отклонения? - собственно, что мне и надо (крен, тангаж)

Нужно еще разобраться что влияет на показания гиро/аксела, рассмотреть два случая <ul><li>1. датчик неподвижен, </li><li>2. датчик движется с некоторым неизвестным ускорением.</li></ul> Тогда более-менее ситуация прояснится

Задачка-то простая: узнать крен и тангаж в любой момент времени вне зависимости от характера движения модели.
(Делаю систему автопилота и телеметрии для RC-самолёта. Тут еще GPS будет нужен и всё такое)
Ti0riTyK
29.07.2011, 20:37 4
Цитата Сообщение от K_I_S_T
акселерометр как раз таки показывает проекцию g + a. А как раз таки гироскопом можно мерять различные углы отклонения... правда не известно относительно чего(начального положения? тут не знаю, даж даташиты на них не видел...).
3хосевого нигнитометра и акселерометра должно быть достаточно для определения азимута. акселерометром определяем положение относительно земли, по поолжению пересчитываем показания нигнитометра...
ЗЫ на авиамодели с акселерометрами надо быть осторожными. всякие там центростремительные ускорения он ловить будет...
Надо разобраться поконкретнее в вопросе в чем будет отличие показаний гиро и аксела при одинаковых углах крена/тангажа, если
  • оба датчика находятся неподвижно
  • оба датчика движутся с одинаковым ускорением

Хотелось бы еще почитать о том в чем конструктивное отличие гироскопа от акселерометра (википедия выдаёт хрень)
ой. накосячил с отправкой ответа.

АДМИНЫ, уберите эту херь с проверкой сообщений
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 180
29.07.2011, 23:58 5
http://habrahabr.ru/btogs/augm... ty/118192/
0
Ti0riTyK
31.07.2011, 00:02 6
Цитата Сообщение от zotk
http://habrahabr.ru/btogs/augmented_reotyty/118192/
Так вроде норм объяснение, тока не понятно чего докладчик втирал про кватернионы какие-то.
Один хрен, пока не подержу в руках обе микрухи, не померяю на них - не фига не пойму. так что пошел за микросхемами!
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
Цитата Сообщение от dsodir
"3 акселерометра" это трехосевой акселерометр или я не так понял?
Да правильно поняли, я не правильно написал, именно так, 3-х осевой акселерометр и 3-х осевой гироскоп.
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
Цитата Сообщение от K_I_S_T
1) неподвижно:
акселерометр: проекция ускорения свободного падения(силы тяжести) на его оси.
2)движется с ускорением:
акселерометр: проекция ускорения свободного падения(силы тяжести) + ускорение с которым движется тело(так же проекции на оси).
Хорошо сформулировано. Еще добавлю.
3)Движение без ускорения: показания акселя = показаниям в режиме "неподвижно".
0
Ti0riTyK
02.08.2011, 13:31 15
Цитата Сообщение от K_I_S_T
1) неподвижно:
акселерометр: проекция ускорения свободного падения(силы тяжести) на его оси.
гироскоп: по нулям все оси
2)движется с ускорением:
акселерометр: проекция ускорения свободного падения(силы тяжести) + ускорение с которым движется тело(так же проекции на оси).
гироскоп будет показывать нули если крен и тангаж не изменяются. если самолет совершает бочку или петлю Нестерова то покажет скорость вращения разложеную на оси.
грубо говоря аксел показывает проекции действующих сил, а гироскоп - проекции угловых скоростей.
Во, теперь понятно!

Осталось решить вопрос - как определить крен и тангаж?
Одного аксела хватит только когда датчик неподвижен.
А вот если он движется с ускорением - как согласовать работу гороскопа и акселерометра?
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
Доброго времини суток. У кого-нибудь возникало желание сделать балансирующего двухколесного робота?
Может быть уже есть какие-нибудь наработки?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2012, 19:09
Помогаю со студенческими работами здесь

Гироскоп L3G4200D
Привет всем! Имеется платка собственного изготовления с камнем stm32f103 и гироскопом от ST l3g4200d. И, конечно же, имеется проблемма. ...

Гироскоп и Windows 7
Имеется в ноутбуке такая фиговина Гироско́п STMicroelectronics 3-Axis Digital Accelerometer, предназначение известно, драва присутствуют,...

Гироскоп отключить?
Подскажите плиз где то слышал что в юнити можно отключить гироскоп или как там он называется.У меня бывает запускаю на телефоне игру она...

что за гироскоп?
http://www.parkflyer.ru/37223/product/10113/ - там должен был стоять гироскоп murata enc-03 а оказалось какая-то подстава. Вот думаю, стоит...

Посоветуйте MEMS-гироскоп
Привет) Цена/качество/ттх До 300рэ. Для ориентации игрушки в пространстве) Спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Что нового в 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, но была исключена на встрече комитета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru