Найти движение автомобиля по IMU и GPS
Я использую MPU9250
, в автомобиле которого есть как акселерометр, так и гироскоп. Я хочу просто знать, движется ли в данный момент автомобиль или нет. Я поискал и обнаружил, что мне нелегко получить скорость, поэтому я пропустил это, но мне было интересно, как мне найти движение с помощью IMU.
Изменить: Как сказал @Duncan, похоже, что его нельзя проверить только с помощью IMU. В моем устройстве также есть датчик GPS, и я получаю значение скорости по GPS, но оно не очень точное. Например, если транспортное средство остановлено на 5 минут, я получаю переменную скорость от 0 до 10,0 км/ч, а с другой стороны, определение местоположения по широте и долготе имеет ошибку около 20 метров. Так что я не могу на это положиться. Мне было интересно, могу ли я объединить GPS и IMU, чтобы узнать, действительно ли он движется или нет? Одно из решений, к которому я пришел, заключалось в том, чтобы полагаться на скорость GPS, но в случае скачков просто проверьте изменения акселерометра, и если они выходят за пределы порогового значения, это означает, что он действительно переместился.
@Masoud Rahimi, 👍0
Обсуждение1 ответ
Вы отметили, что ваша цель — определить, находится ли транспортное средство в движении. Поскольку вы пытаетесь использовать IMU, я предполагаю, что устройство, которое должно знать об этом, находится на борту автомобиля.
Существует множество сложных способов узнать это, например использование данных об ускорении от IMU для выполнения инерционного счисления , здесь возникает проблема временного дрейфа. У GPS есть проблема: данные о скорости необходимо немного фильтровать, чтобы избавиться от резких скачков скорости.
Но если вам просто нужно знать, движется ли транспортное средство или нет, и есть ли у транспортного средства колеса, вы можете использовать детектор света, например пару ИК-излучателя и ИК-приемника, а также прилагаемый прорезанный диск. к колесу и просто посчитайте, когда приемник был активирован в последний раз - если прошло некоторое время, вы предполагаете, что колесо не вращается и, следовательно, автомобиль не движется. Или, возможно, просто используйте датчик освещенности и нарисуйте на колесе белые и темные узоры.
Или поместите магнит на колесо и поместите датчик Холла (магнитный датчик) рядом с местом, где будет проходить магнит. Посчитайте импульсы от датчика Холла.
Однако, если транспортное средство не является колесным, вам, возможно, придется полагаться на GPS или какой-либо другой метод.
Если вы не знаете наверняка, что автомобиль неподвижен в момент начала записи, у вас нет системы отсчета для инерционного точного счисления. Как я уже упоминал в своем комментарии, вы не можете знать, стоит ли автомобиль или движется со скоростью 100 км/ч. Кроме того, при использовании типичных недорогих акселерометров и гироскопов измерения недостаточно точны, а дрейф быстро забивает фактические расчеты скорости., @Duncan C
Действительно, именно поэтому мой ответ отклонился от этого и обратился к чему-то более конкретному., @jose can u c
Вы правы, но я не могу добавить датчики. Мне не нужна точная точность и мне нужно решить эту проблему только с помощью IMU и GPS., @Masoud Rahimi
- Можно ли измерить скорость акселерометром? Насколько точно?
- В чем разница между акселерометром, гироскопом и датчиком магнитометра?
- OVF в последовательном мониторе вместо данных
- Как связаться с датчиком через порты RX/TX Arduino?
- Линейное ускорение от MPU 6050
- Как правильно определить крен, тангаж, перемещение?
- Правильный способ получить значения крена, тангажа и перемещения
- Снять гравитацию с акселерометра MPU-6050
Вы не можете измерить скорость с помощью акселерометра и гироскопа. Невозможно определить, сидите ли вы на месте или едете по ровной дороге со скоростью 200 км/ч, когда начинаете снимать показания. Вибрация — единственное, что вы можете измерить, и припаркованный автомобиль с неровной работой на холостом ходу может показывать большую вибрацию, чем плавно движущийся автомобиль, движущийся со скоростью 100 км/ч. На самом деле нет никакого способа сказать., @Duncan C
@DuncanC Спасибо, я отредактировал вопрос., @Masoud Rahimi