В настоящее время я работаю над устройством, которое использует постоянно включенный 3D-акселерометр (с использованием шкалы +-2g) и 3D-гироскоп (с использованием шкалы +-250g) -датчик.
Я могу прочитать все возможные векторы (X, Y, Z), их ускорение (g) и угловую скорость (dps), а также угол, под которым в данный момент находится устройство. Но моя проблема в том, что когда устройство находится в наклоне (0g, когда нет наклона), ускорение находится между (вниз) 0g->-1g или между (вверх) 0g-> 1g в зависимости от того, под каким углом находится устройство в данный момент. Ниже картинка, которая, надеюсь, проясняет идею.
Устройство должно измерять разницу в ускорении (ускорение или замедление). Однако, если устройство уже находится в наклоне, акселерометр измерит некоторое ускорение, которое вызывает наклон, что затрудняет определение того, действительно ли устройство имеет какое-то ускорение или это просто наклон, вызывающий ускорение.
Я думал о том, как устранить это ускорение, которое вызывает наклон, и измерить только реальное ускорение устройства, но просто не могу придумать выход из этой проблемы со следующими данными, которые я могу предоставить.
Надеюсь, это сообщение не слишком сложно понять из-за моих навыков английского и того, как я пытаюсь объяснить свою проблему.
Редактировать. Датчик также имеет магнитометр и может считывать оси X, Y, Z, если это необходимо для решения.