Adafruit BNO055 "raw data" quaternion выход

Вам всем привет,

Прошу прощения за основной вопрос, но я не смог проверить это сам, просматривая библиотечные файлы. В справочном руководстве BNO055 есть пример "Необработанные данные датчиков", который советует следующее:

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

Ключевыми функциями необработанных данных являются:

getVector (adafruit_vector_type_t vector_type) getQuat (пустота) getTemp (пустота)

А вот и код для кватернионов:

imu::Quaternion quat = bno.getQuat();

/* Display the quat data */
Serial.print("qW: ");
Serial.print(quat.w(), 4);
Serial.print(" qX: ");
Serial.print(quat.y(), 4);
Serial.print(" qY: ");
Serial.print(quat.x(), 4);
Serial.print(" qZ: ");
Serial.print(quat.z(), 4);
Serial.println("");

Я проследил, что функция просматривает значения регистров для вывода кватернионов из спецификации датчика (см. раздел 4.3.34).

Но кое-что меня смущает.

  1. являются ли данные, выводимые из вышеуказанной функции, плавлеными и калиброванными данными от датчика BNO с использованием их фильтров?
  2. Если нет, то как мне получить эти данные (данные "самого высокого качества" от датчика)?
  3. если данные из приведенного выше кода являются выходными данными алгоритмов слияния датчиков, то почему руководство советует обратное, как указано выше? И почему ему нужно делать дополнительную математику на нем, как описано в классе кватернионов?

Извините, если это многословно. Я ценю, что вы нашли время, чтобы помочь новичку! Я пытался спросить на официальных форумах, но ответа пока нет.

, 👍0