Я работаю над проектом определения угла наклона лезвия червячного привода. Чтобы найти угол, я решил использовать 2 акселерометра. Один из них будет моим эталоном и будет стоять на подножке, другой будет на корпусе и будет перемещаться с коническим шарниром.
Я хочу, чтобы акселерометр на подножке был ориентиром. Следовательно, всякий раз, когда он движется, гравитация будет перпендикулярна акселерометру. Это, конечно, невозможно создать, потому что гравитация всегда направлена ВНИЗ!! Существует ли математическое уравнение или алгоритм, который бы брал значения G акселерометра подножки и создавал "нетрадиционную, псевдо" гравитацию?
Пожалуйста, дайте мне знать, если нужны какие-либо разъяснения. Я использую акселерометр MPU6050.
Каждый акселерометр (когда он неподвижен) дает вам 3 вектора направления силы тяжести.
Предположим, что оба акселерометра не имеют смещения и имеют одинаковый коэффициент усиления по всем трем осям. Если они не идеальны, то достаточно легко получить смещение и коэффициент усиления для каждой оси с помощью шага калибровки, который включает в себя прокатку каждого из них на большое количество случайных углов и получение смещений и коэффициентов усиления таким образом, чтобы величина силы тяжести (sqrt( сумма квадратов компонентов)) постоянна независимо от ориентации акселерометра.
Угол между двумя тремя векторами теперь вычисляется через их точечное (или скалярное) произведение, которое дает вам косинус этого угла. Подробную информацию см. в wikipedia dot product.
Вы хотите измерить угол наклона между плоской поверхностью и углом лезвия? Если это так, вы можете рассчитать это с помощью одного 3-осевого акселерометра, и нет необходимости в другом акселерометре.
Если у вас есть 3 оси - {x, y, z}, у вас будет компонент гравитационного поля Земли вдоль каждой из них, обычно представленный как Gx, Gy и Gz.
Gtotal равен 1G, следовательно, в трехмерном пространстве мы имеем 1G = SQRT (Gx^2 + Gy^2 + Gz^2). Это то, что вы используете для выполнения скалярной калибровки. Поместите акселерометр в различные положения, чтобы определить масштабный коэффициент и смещение для каждой оси.
После калибровки наклон можно рассчитать как atan2(Gxy,Gz), где Gxy = SQRT(Gx^2 + Gy^2).
Если Accel лежит ровно на столе, я предположил, что Gz расположен вдоль оси Accel, Gy направлен вверх, а Gx перпендикулярен обоим.
Надеюсь это поможет.
pjc50
Джейсон Ли
Чендрикс
pjc50
колосы