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