крок = 180 * atan2(accelX, sqrt(accelY*accelY + accelZ*accelZ))/PI; roll = 180 * atan2(accelY, sqrt(accelX*accelX + accelZ*accelZ))/PI; навігація. акселерометр.20 липня 2021 р
roll = atan2(-accelerometer[1],accelerometer[2]); pitch = atan2(акселерометр[0],sqrt(акселерометр[1]*акселерометр[1]+(акселерометр[2]*акселерометр[2]))); magx = магнітометр[0]*cos(крок)+магнітометр[1]*sin(крок)*sin(крок) + магнітометр[2]*sin(крок)*cos(крен);
Вимірювальна орієнтація
| Орієнтація | Тип руху, що відстежується | Діапазон значень |
|---|---|---|
| крок | Рух вперед і назад | -90 на 90 |
| рулет | Рух з боку в бік | -90 на 90 |
| Нахил | Обертальний рух | -180 на 180 |
Для простоти ми будемо використовувати рівняння: θ = arcsin(x). Arcsin(y) може визначати діапазон від 0° до 180°, але він не може розрізняти кути в діапазоні від 0° до 360°, напр. arcsin(45º) = arcsin(135º). Однак знак x і y можна використовувати, щоб визначити, в якому квадранті знаходиться кут.
крок = 180 * atan2(-accelX, sqrt(accelY*accelY + accelZ*accelZ))/PI; roll = 180 * atan2(accelY, sqrt(accelX*accelX + accelZ*accelZ))/PI; Проблема в тому, що ці кути коливатимуться лише від -90 до +90 градусів.
Якщо ви володієте математикою, ви можете використовувати ці рівняння, щоб знайти довжину крокви по відношенню до схилу: крокви² = прогон² + підйом² підйом / біг = крок, де висота виражена у відсотках. нахил = tan (кут), де кут — це нахил даху в градусах.
Вимірювання кута та крену виконує порівняння відносної висоти кожної пари антен (виміряної з точністю до міліметрів), а кут ковзання вимірюється шляхом порівняння курсу транспортного засобу з напрямком передньої/задньої пари антен.