как получить линейное ускорение по данным акселерометра

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

Я на правильном пути, и не могли бы вы помочь, если можете?


после этого я дважды интегрирую ускорение, чтобы получить положение, как показано ниже

        CurrentAcceleration[0] = e.Accelerometer[0];
        CurrentAcceleration[1] = e.Accelerometer[1];
        CurrentAcceleration[2] = e.Accelerometer[2];

        //we need to get the linear acceleration instead of the read data !!

        CurrentVelocity[0] += (CurrentAcceleration[0] + PreviousAcceleration[0]) / 2;
        CurrentVelocity[1] += (CurrentAcceleration[1] + PreviousAcceleration[1]) / 2;
        CurrentVelocity[2] += (CurrentAcceleration[2] + PreviousAcceleration[2]) / 2;

        Position[0] += (CurrentVelocity[0] + PreviousVelocity[0]) / 2 ;
        Position[1] += (CurrentVelocity[1] + PreviousVelocity[1]) / 2 ;
        Position[2] += (CurrentVelocity[2] + PreviousVelocity[2]) / 2 ;

        PreviousAcceleration[0] = CurrentAcceleration[0];
        PreviousAcceleration[1] = CurrentAcceleration[1];
        PreviousAcceleration[2] = CurrentAcceleration[2];

        PreviousVelocity[0] = CurrentVelocity[0];
        PreviousVelocity[1] = CurrentVelocity[1];
        PreviousVelocity[2] = CurrentVelocity[2];

person Mokhtar Ashour    schedule 10.06.2012    source источник
comment
В коде есть пара ошибок. Даже если бы вы починили, это не сработало бы.   -  person Ali    schedule 10.06.2012
comment
Я прочитал некоторые исследовательские работы и обнаружил, что вы правы, нам нужно другое устройство, чтобы помочь (что-то вроде GPS, чтобы исправить ошибку), однако теория верна. в любом случае спасибо за помощь, извините за опоздание с оценкой ответа. Принятый ответ.   -  person Mokhtar Ashour    schedule 11.08.2012
comment
Проголосовал за ваш вопрос, и я рад, что смог помочь.   -  person Ali    schedule 11.08.2012


Ответы (1)


Не работает.

Вы не можете получить точное местоположение или даже скорость. По приведенной выше ссылке вы найдете советы, что вы могли бы сделать вместо этого.

Кстати, этот вопрос всплывает на удивление часто.

person Ali    schedule 10.06.2012
comment
спасибо за помощь, я посмотрю ссылки и попробую найти способ. - person Mokhtar Ashour; 10.06.2012