Ускорение при наклоне устройства

В настоящее время я работаю над устройством, которое использует постоянно включенный 3D-акселерометр (с использованием шкалы +-2g) и 3D-гироскоп (с использованием шкалы +-250g) -датчик.

Я могу прочитать все возможные векторы (X, Y, Z), их ускорение (g) и угловую скорость (dps), а также угол, под которым в данный момент находится устройство. Но моя проблема в том, что когда устройство находится в наклоне (0g, когда нет наклона), ускорение находится между (вниз) 0g->-1g или между (вверх) 0g-> 1g в зависимости от того, под каким углом находится устройство в данный момент. Ниже картинка, которая, надеюсь, проясняет идею.

Надеюсь, это поможет

Устройство должно измерять разницу в ускорении (ускорение или замедление). Однако, если устройство уже находится в наклоне, акселерометр измерит некоторое ускорение, которое вызывает наклон, что затрудняет определение того, действительно ли устройство имеет какое-то ускорение или это просто наклон, вызывающий ускорение.

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

Надеюсь, это сообщение не слишком сложно понять из-за моих навыков английского и того, как я пытаюсь объяснить свою проблему.

Редактировать. Датчик также имеет магнитометр и может считывать оси X, Y, Z, если это необходимо для решения.


person jumbojohn    schedule 17.01.2018    source источник
comment
величина вектора ускорения должна быть равна 1g, если другого ускорения не существует. ..   -  person Antti Haapala    schedule 17.01.2018
comment
... и направление вектора должно быть вниз...   -  person Antti Haapala    schedule 17.01.2018
comment
Кроме того, вы указали теги C++ и C, но ваш вопрос не содержит ни одного из них.   -  person Antti Haapala    schedule 17.01.2018
comment
Это проблема математики.   -  person Martin James    schedule 17.01.2018
comment
Оси X и Y дают 0 г, а ось Z — 1 г, когда устройство не имеет наклона и находится на плоской поверхности. Наклон приводит к тому, что показание оси X приближается к 1 г, если наклон направлен вверх, и к -1 г, если наклон направлен вниз. +-1g достигается, когда устройство находится под углом 90* градусов от исходного положения.   -  person jumbojohn    schedule 17.01.2018
comment
разница в ускорении (ускорение или замедление) - нет, ускорение - это разница в скорости или ускорении (dv/dt или a, в общепринятых физических символах). Разница в ускорении не измеряется в g.   -  person MSalters    schedule 17.01.2018
comment
@MartinJames: Физика, на самом деле. Не существует математического правила, утверждающего, что все ускорения неразличимы, но это правило общей теории относительности.   -  person MSalters    schedule 17.01.2018
comment
Изменения в ускорении рывками.   -  person Martin James    schedule 17.01.2018
comment
Я голосую за то, чтобы закрыть этот вопрос как не относящийся к теме, потому что он относится к Physics.SE.   -  person MSalters    schedule 17.01.2018
comment
@MSalters Ты прав. Тогда я ограничусь тем, что скажу, что эта проблема не проблема программирования :)   -  person Martin James    schedule 17.01.2018
comment
Скорее, это проблема практической реализации, не связанная с программированием, математикой или физикой. Возможно, наиболее подходящим будет сайт «Электротехника».   -  person Lundin    schedule 17.01.2018


Ответы (1)


Акселерометр не может знать, что вверх, а что вниз, если вы не создадите внешнюю контрольную точку. X, Y и Z — это положения относительно самого акселерометра, а не относительно земли.

Когда часть не движется, у вас будет 1G в каком-то направлении. Будет ускорение либо по 1, либо (чаще) по 2 оси. Вместе они дадут ускорение 1G.

Чтобы решить проблему того, что «внизу», нужно изобретать какие-то средства калибровки. Нельзя считать, что акселерометр идеально смонтирован. И в зависимости от чувствительности, также существуют небольшие локальные различия в гравитации вокруг Земли в зависимости от того, насколько близко вы находитесь к экватору.

person Lundin    schedule 17.01.2018