К сожалению я плохо разбираюсь в математике, но школьну программу немного помню.
У меня задача с помощью акселерометра-компаса-гироскопа вычислить скорость/перемещение
к-л объекта.
Это вообще возможно?
Я пока не хочу буриться в кватернионы и прочие прелести (это на потом останеца когда буду все это понимать)
для меня сейчас интересна вот такая задача:
положим: я получил ускорения от акселерометра
получил значения магнитного поля, по этим данным я расчитал наклоны по осям X и Y
и поворот вокруг оси с помошью данных от акселерометра=магнетометра.
само собой акселерометр показывает мне ускорение G = 9.8 (на самом деле чуть больше - примерно 1006 G
но это вероятно зависит от калибровки)
Из курса школы помню что скорость - это интеграл от ускорения по времени (были в алгебре какие то "материальные точки"),
то есть в самом простом случае я могу суммировать с накоплением отсчеты акселеромера
по осям, ну а потом так же с помошью тригонометрии вычислить вектор этой скорости
ну а если взять еще один интеграл от скорости по времени - то получу пройденный путь.
У меня есть данные: отсчеты акселерометра, дискреты таймера - по готовности этого акселерометра - положим раз в секунду.
То есть если я тупо буду отсчитывать :
Vx += ax * dt
Vy += ay * dt
Vz += az * dt
То смогу получить скорость моего устройства
То же самое я могу проделать и для расстояния.
Но вот самая неприятная вешь - как мне убрать из показаний акселерометра
что бы он не показывал мне G.
Ну то есть чтобы я мог "вычесть" из значения по оси Z 9.8
ну и соответственно из других координат то,
что вектор свободного падения наплодил проекцией на эти оси
Как это правильно сделать?