Как правильно определить крен, тангаж, перемещение?
У меня MPU9250. Я рассчитал акселерометр, гироскоп, магнитометр. Но я хочу знать, как рассчитать шаг рыскания по крену. Я искал в Google. Я нашел много ответов
roll = (atan2(-Accel_Y, Accel_Z)*180.0)/M_PI;
pitch = (atan2(Accel_X sqrt(Accel_Y*Accel_Y + Accel_Y*Accel_Y))*180.0)/M_PI;
источник: https://theccontinuum.com/2012/09/ 24/arduino-imu-pitch-roll-from-accelerometer/
accelerationX = (signed int)(((signed int)rawData_X) * 3.9);
accelerationY = (signed int)(((signed int)rawData_Y) * 3.9);
accelerationZ = (signed int)(((signed int)rawData_Z) * 3.9);
pitch = 180 * atan (accelerationX/sqrt(accelerationY*accelerationY + accelerationZ*accelerationZ))/M_PI;
roll = 180 * atan (accelerationY/sqrt(accelerationX*accelerationX + accelerationZ*accelerationZ))/M_PI;
yaw = 180 * atan (accelerationZ/sqrt(accelerationX*accelerationX + accelerationZ*accelerationZ))/M_PI;
источник: https:/ /engineering.stackexchange.com/questions/3348/calculating-pitch-yaw-and-roll-from-mag-acc-and-gyro-data
Accroll = atan2( accy / (accy^2 + accz^2) )
Accpitch = atan2( accx / (accx^2 + accz^2) )
источник: http://franciscoraulortega.com/pubs/Algo3DFusionsMems.pdf
Accroll = atan2(accy, accz)
Accpitch = atan2( -accx, sqrt(accy^2 + accz^2) )
источник:https://www.nxp.com/docs/en/application-note /AN3461.pdf
Как правильно определить тангаж по крену?
@x-xx-x, 👍2
Обсуждение1 ответ
Для стационарного акселерометра, воспринимающего ускорение свободного падения, я вижу "мертвые зоны", когда оси тангажа, рысканья или крена параллельны или почти параллельны вектору силы тяжести.
Вероятно, именно поэтому акселерометры используются в сочетании с гироскопами.
См. данный документ NXP (также известный как Motorola, Freescale & Qualcomm). подробное обсуждение необходимой математики. Обратите внимание на раздел «Области нестабильности».
Также см. этот курс от rutgers.edu, который работает со студентами над проектом с использованием Arduino и акселерометра в 1-м классе, а затем добавляет гироскоп в 2-й класс для улучшения ответа.
(Добавлено позже)
Ссылки на rutgers.edu больше не работают, и в качестве альтернативы была предложена эта ссылка. .
Ссылки на pdf-файл класса rutgers.edu больше не работают. Кажется, https://aatishb.com/materials/srr/materials.html — новая домашняя страница., @Martin Meixger
Спасибо @MartinMeixger, я добавил вашу новую ссылку., @st2000
- Можно ли измерить скорость акселерометром? Насколько точно?
- В чем разница между акселерометром, гироскопом и датчиком магнитометра?
- OVF в последовательном мониторе вместо данных
- Построение графика данных датчика Arduino в реальном времени на Processing, MatLab или Python
- Как связаться с датчиком через порты RX/TX Arduino?
- Линейное ускорение от MPU 6050
- Правильный способ получить значения крена, тангажа и перемещения
- Снять гравитацию с акселерометра MPU-6050
Акселерометр шумит, гироскоп дрейфует, и только магнитометр знает направление. Правильный способ — это фильтр, который использует все датчики вместе, иногда называемый: слияние датчиков. Например, фильтр ahrs. См. mpu-9250 и ahrs на sparkfun: https://learn.sparkfun.com/tutorials/mpu-9250-hookup-guide, @Jot
Прежде чем все усложнят эту проблему, первое, что нужно выяснить, это то, движется ли устройство и / или меняет ориентацию. Если это не так, проблема намного проще, и многие из предложенных вещей не нужны., @Chris Stratton