угол вектора, перпендикулярного датчику, относительно вектора, перпендикулярного земле

#c #vector #stm32 #mpu6050

Вопрос:

У меня есть акселерометр MPU6050 и датчик MEMS гироскопа для расчета крена и тангажа. Но этого расчета сейчас достаточно для моего проекта.

В моем проекте датчик находится в верхней части коробки. Моя идея состоит в том, чтобы рассчитать состояние опрокидывания коробки с одним углом. Коробка, как показано ниже:

представление коробки и датчика

Зеленый вектор всегда будет перпендикулярен вектору земли. Синий вектор всегда перпендикулярен датчику. Если у меня есть вектор, перпендикулярный датчику, и вектор, перпендикулярный земле, я могу рассчитать условие опрокидывания с помощью одних данных, рассчитав угол между этими двумя векторами.

Итак, мой вопрос в том, как я могу получить эти два вектора из крена и тангажа?

Комментарии:

1. Вы имеете в виду, что зеленый вектор указывает на центр земли, и вы хотите определить угол между этим вектором и фиксированным (относительно прямоугольника) вектором?

2. Угол между векторами a и b в радианах должен быть примерно таким acos((a.x * b.x a.y * b.y a.z * b.z) / sqrt((a.x * a.x a.y * a.y a.z * a.z) * (b.x * b.x b.y * b.y b.z * b.z))) . ( a.x * b.x a.y * b.y a.z * b.z является точечным произведением a и b , a.x * a.x a.y * a.y a.z * a.z является квадратом величины a , b.x * b.x b.y * b.y b.z * b.z является квадратом величины b .)

3. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.