#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. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.