Тщательный осмотр страницы 35 (рис. 58) таблицы данных ADXL345 показывает, что только при гравитационном нагружении чип использует левую систему координат. Мои собственные эксперименты с этим чипом подтверждают это.
Я обычно использую чип только для обозначения вектора гравитации. Поэтому, используя этот чип, я просто отменяю значения, чтобы получить правую систему координат. Но это не кажется правильным. Я предполагаю, что есть логическое и математическое объяснение для левой системы координат, но я не могу понять, что это может быть.
Ответы:
Ответ заключается в том, что 3-осевые акселерометры не имеют левосторонней системы координат только для гравитации. В статическом состоянии (то есть, если акселерометр не ускоряется относительно какой-либо инерциальной системы отсчета), они измеряют противоположность ускорению силы тяжести, а не само ускорение силы тяжести.
В более общем смысле акселерометры измеряют разницу между фактическим ускорением датчика относительно любой инерциальной системы отсчета и гравитационным ускорением:
Это можно легко проверить, проверив меру акселерометра в свободном падении: так как в этом случае фактическое ускорение датчика будет равног мера акселерометра будет 0 ,
источник
Это не использует левую систему координат! Проверьте мои грубые изменения на диаграмме.
Обратите внимание, что каждая система координат (RGB для XYZ, черный для гравитации) имеет вектор гравитации, выровненный в отрицательном направлении соответствующей оси, а диаграмма показывает положительное значение. Я мог бы нарисовать их по-другому, но фактическое ускорение в отсутствие силы тяжести было бы вверх, чтобы произвести то же самое чтение. Возможно, именно поэтому отрицание значений работает для вашего приложения.
источник
В конце дня вы можете использовать матрицу для преобразования любой системы координат, которая использовалась в вашей собственной системе. Это обычно тот случай, когда вам необходимо разместить детали в определенном направлении из-за трудностей с маршрутизацией. Используя простую матрицу 3х3, вы можете преобразовать показания X, Y, Z так, чтобы они все совпали на нескольких датчиках. Матрица будет иметь значения 0, 1 и -1 соответственно, в зависимости от того, как должно быть выполнено преобразование.
источник
Моим лучшим предположением для этого было бы то, что в левой системе координат гравитация положительна, когда вы правая сторона вверх, и отрицательна, когда вы вверх ногами. Как упоминалось в моем комментарии, будьте осторожны с тем, как вы «трансформируете» свои системы координат - отрицание всех значений просто перемещает вас от одного октанта к другому.
источник