Я знаю, что этот вопрос определенно уже решен где-то много раз, пожалуйста, просветите меня, если вы знаете об их существовании, спасибо.
Краткое описание:
Я хочу вычислить из трехосевого акселерометра гравитационную составляющую на каждой из этих трех осей.
Я использовал 2-х осевые диаграммы тел для расчета гравитационной составляющей акселерометра в мировых осях X-Z, Y-Z и X-Y. Но решение кажется слегка отклоненным, оно приемлемо для экстремальных случаев, когда гравитация воздействует только на одну ось акселерометра, но для шага и крена обоих 45 градусов общая суммарная величина больше силы тяжести (полученной Xa ^ 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) = Ах / Gxz
Cos (R) = Az / Gxz
Tan (R) = Ax / Az
Существует еще один набор высоты тона, P.
Теперь я определил гравитацию, чтобы иметь 3 компонента на мировой оси, Gxz, который можно измерить только на оси X-Z, Gyz для Y-Z и Gxy для оси X-Y.
Gxz ^ 2 + Гыз ^ 2 + Gxy ^ 2 = 2 * G ^ 2
2G - потому что гравитация фактически включена дважды в это определение.
Да, и ось X-Y производит нечто более экзотическое ... Я объясню, если потребуется позже.
Из этих уравнений я получил формулу для Az и удалил операции tan, потому что не знаю, как обрабатывать tan90 (это бесконечность?).
Итак, мой вопрос: кто-нибудь знает, правильно ли я сделал это или неправильно или смог указать мне правильное направление?
Спасибо!
Dvd