2010-06-07 4 views
7

Я знаю, что этот вопрос определенно разрешен где-то уже много раз, пожалуйста, просветите меня, если вы знаете о своем существовании, спасибо.Компоненты силы акселерометра

Краткая справка: Я хочу вычислить с 3-х осевого акселерометра гравитационную составляющую на каждой из этих трех осей. Я использовал 2 оси свободного тела диаграммы для разработки силы тяжести акселерометра в мире X-Z, Y-Z и X-Y осей. Но решение кажется слегка выключенным, это приемлемо для экстремальных случаев, когда только одна ось акселерометра подвержена действию силы тяжести, но для шага и валка с обеих сторон 45 градусов общая суммарный масштаб больше, чем гравитация (полученная Хаа 2 + Ya^2 + Za^2 = g^2; Xa, Ya и Za - показания акселерометра по его оси X, Y и Z).

Подробнее: Устройство является Nexus One и имеет датчик магнитного поля для азимута, шага и рулона в дополнение к 3-осевому акселерометру.

В мировой оси (с Z в том же направлении, что и гравитация, или X или Y указывает на северный полюс, не думайте, что это имеет значение?), Я предположил, что у моего устройства есть шаг (P) на ось YZ и рулон (R) на оси XZ. С этими словами я использовал простой триг получить: Sin (R) = Ax/Gxz Cos (R) = Az/Gxz Tan (R) = Ax/Az

Существует еще один набор для поля, П.

Теперь я определил гравитацию, чтобы иметь 3 компонента на мировой оси, Gxz, измеряемый только по оси XZ, Gyz для YZ и Gxy для оси XY. Gxz^2 + Gyz^2 + Gxy^2 = 2 * G^2 2G состоит в том, что гравитация эффективно включается дважды в это определение.

Ох и ось X-Y производят нечто более экзотическое ... Я объясню, если потребуется позже.

Из этих уравнений я получил формулу для Az и удалил операции tan, потому что я не знаю, как обрабатывать вычисления tan90 (это бесконечность?).

Итак, мой вопрос: кто-нибудь знает, сделал ли я это правильно/неправильно или смог указать мне в правильном направлении?

Спасибо! Dvd

ответ

1

Хотел бы я знать, потому что меня тоже интересует эта проблема.

Хорошее место для начала исследования - http://www.diydrones.com/. Люди там уже решили эту проблему в контексте автопилотов самолетов. Существует тонна высококачественного исходного кода, связанного с этим сайтом, а также обсуждения связанной с ним математики.

5

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

Как физик я воспитывался с углами Эйлера вместо кромешной рыскания-н-ролл, но, глядя на http://en.wikipedia.org/wiki/Yaw,_pitch,_and_roll я бы вычислить это следующим образом: Предположим, что устройство изначально ориентирован по глобальной системе координат, так что gravity - gvec:={0,0,-g} (в локальном фрейме). Теперь нам нужно вычислить локальные координаты gvec, когда мы проходим через рывок-рывок (рыскание не делает ничего, как вы упоминаете). Мне это проще всего с вращающимися матрицами: мы должны изменить знак углов с gvec Осталось положить.Я буду делать это с помощью Mathematica, потому что это мой молоток и это гвоздь

yaw = RotationMatrix[-yawangle,{0,0,1}]; 
pitch = RotationMatrix[-pitchangle, {0,1,0}]; 
roll = RotationMatrix[-rollangle,{1,0,0}]; 
gvec={0,0,-g} 
yaw.gvec 
pitch.yaw.gvec 
roll.pitch.yaw.gvec 

Выход локальные координаты gvec до рыскания, и после того, как рыскания, тангажа и крена (так последней строки ниже должен быть вашим ответ):

{0,0,-g} 
{0,0,-g} 
{g Sin[pitchangle],0,-g Cos[pitchangle]} 
{g Sin[pitchangle],-g Cos[pitchangle] Sin[rollangle],-g Cos[pitchangle] Cos[rollangle]} 
0

Thanks Janus! Ваше объяснение прояснило меня относительно матрицы вращения. И последняя линия решила мою проблему!

Теперь мне просто нужно переработать мои диаграммы свободного тела, чтобы узнать, что я сделал неправильно ... Я уже обнаружил, что у меня не должно было быть XY-компонента силы тяжести, так как гравитация ортонормирована оси XY. ..

Еще раз!

Edit: следить за этим, последняя строка: {г Sin [pitchangle], - г Cos [pitchangle] Sin [rollangle], - г Cos [pitchangle] Cos [rollangle]}

I 'найденный вместо -g Cos [pitchangle] Sin [rollangle] Sin [roll] из моей диаграммы свободного тела больше напоминает фактическое ускорение.

Теперь я не могу понять последний компонент -g Cos [pitchangle] Cos [rollangle] теперь он идеально подходит для небольших углов поворота и наклона, и он отлично подходит для угла наклона или угла наклона, другой остается на 0, но отклонение становится значительным, когда и тангаж, и рулон больше не являются небольшим углом (например, 40 градусов). На самом деле я также понял, что для достижения 45-кратного и 45-го шага на базовой станции телефон будет иметь 0-осевое чтение, а X и Y - с ускорением 6.8ish. В то время как полученная формула от умножения матрицы вращения на 45 рулонов и 45 тангажей составляла 0,5 силы тяжести.

Есть ли что-то неправильное с выходом датчика ориентации? или это так, как должны работать качки и ролики?

Кто-нибудь знает, как объяснить это?

Спасибо!

+0

Я ищу аналогичную проблему. Итак, у вас есть точная формула для удаления коэффициента силы тяжести со всей оси с учетом значений ориентации устройства в этот момент. Я хочу только чистое ускорение на всей оси без компонентов силы тяжести. – Pritam

+1

Это не должен быть ответ. Это должно быть комментарием к ответу Януса или добавлено к вашему вопросу с помощью «Обновить:» – bcorso

0

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

рассматривает Navigator

+0

Привет, я ищу какой-то псевдокод, чтобы сделать это с помощью акселерометра и гироскопа. – Bresiu

1

Я понимаю, что проводка старая, но в случае, если другие используют его: В вашем последнем ответе Вы подтверждаете, что вы все еще видите некоторые отклонения, особенно при больших углах. Я испытал то же самое, но он исчез, когда я добавил процедуру калибровки, чтобы зафиксировать показания акселерометра на плоской поверхности и сделал все последующие показания относительно чтения плоской поверхности.

Смежные вопросы