2016-11-11 7 views
-2

Итак, вот мой проект:Можно ли вычислить положение с акселерометра?

Я проектирую вертолет на воздушной подушке. Когда на воздушной подушке не двигается, я не стабилизирую себя, используя акселерометр. Важно отметить, что acc, всегда будет плоским, что означает, что никакая другая ось, а затем z, не должна зависеть от силы тяжести. Стабилизация в этом случае означает, что если вы нажимаете на воздушной подушке, она должна попытаться получить ту же позицию. Я сделал код matlab, я получаю данные акселерометра от оси x. Затем я создал движущийся фильтр усреднения, чтобы сгладить ситуацию и сделал порог, что означает, что любые значения ниже определенного числа считаются нулевыми. Затем я рисую график, и он выглядит хорошо. Проблема, о которой вы уже знаете, заключается в том, что я должен отслеживать положение на воздушной подушке, чтобы узнать, как далеко от ее первоначальной позиции она была нажата. Когда я рисую скорость и делаю заявление, в котором говорится, что если последние данные ускорения были равны нулю, я могу предположить, что акселерометр не движется, а скорость также равна нулю. Но когда я занимаю позицию, это не очень хорошо. Он перестанет часто двигаться в том же направлении в сюжете, хотя я перемещаю акселерометр в обоих направлениях.

Я рассмотрел использование фильтра kalman, но прежде чем я пойду дальше, я хочу убедиться, что это возможно.

Я использую MPU-9150 для измерения ускорения.

С наилучшими пожеланиями

ответ

0

Если у вас есть только акселерометр + гироскоп + магнитометр вы не сможете вычислить точное положение в пределах разумных потребностей, потому что первая интеграция приведет некоторые не точную скорость, а второй интеграция приведет к ошибке в позиции, которая будет увеличиваться с течением времени.

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