Подтвердить что ты не робот

Вычисление расстояний с использованием акселерометра

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


Вопрос

Давайте рассмотрим, что я держу в руке 9-осный датчик, и я двигаю рукой в ​​определенном направлении, как я могу найти новое положение моей руки в пространстве? как получить вектор движения от начальной точки до новой точки? Я имею в виду, как знать пройденные расстояния по трем осям?

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

4b9b3361

Ответ 1

Короткий ответ на ваш вопрос заключается в том, что вы не можете этого сделать.

Метод двойной интеграции - это действительно единственный способ получить информацию, которую вы ищете, используя только акселерометр. Вы обнаружили проблему с этим методом. Ошибка увеличивается с течением времени и, как правило, не дает точности, которую многие ищут.

Калманская фильтрация обычно требует 2 устройства и в основном берет лучшее из обоих устройств и фильтрует плохое. См. Пример ниже.

Калманская фильтрация - очень сложная тема, которую я пытался погрузиться в старшую конструкцию, но никогда не обнаружил каких-либо значимых результатов с моим ограниченным тестированием. Отличное место, чтобы начать понимать эту тему с помощью этой серии видео youtube.

Это тот парень, который выиграл вызов DARPA со Стэнфордом и объяснил эту тему легко понятным образом. Весь курс - это 6-ти серия видеороликов о программировании роботов для перемещения и понимания их местоположения в неизвестной среде. Стоит смотреть, если у вас есть время и интерес.

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

Еще одна отличная фильтрация Калмана прочитайте это (если эта ссылка не работает, установите бот-фильтр для фильтра Google Kalman и нажмите ссылку в блоге TKJ). В основном этот парень использует акселерометр и гироскоп для отслеживания ориентации в реальном мире.

Что-то еще, чтобы заглянуть в wiki В реальном времени кинематика. Это касается тракторов и комбайнов для обеспечения действительно точной информации о местоположении. John Deere продает систему, но ей нравится 20 000 долларов. Вот версия бедного человека, используя GPS и beagleboard

Ответ 2

Дающим 9-осевым датчиком я предполагаю, что это означает:

  • 3-осевой гироскоп (измеряет скорость вращения)
  • 3-осевой акселерометр (ускорение измерений)
  • 3-осевой магнитометр (заголовок меры)

Получение практической оценки положения от этого типа 9-осевого датчика невозможно без использования другого датчика, который использует внешнюю ссылку, такую ​​как GPS.

Теоретически, если вы знаете ускорения объекта в пространстве и его начальное положение и скорость, вы сможете вычислить новое положение объектов, распространив информацию об его ускорении и скорости обратно в исходное положение (т.е. интегрируя ускорение в два раза). Причина, по которой на практике практически невозможна, заключается в том, что акселерометр имеет шум. Этот шум будет иметь ненулевое среднее значение, поэтому при интегрировании сигнала ускорения непрерывно добавляется ненулевой средний шум и накапливается в результирующем сигнале скорости. Это рассматривается как дрейф датчика. Оценка скорости начинается довольно корректно, но быстро уменьшается из-за этого накопленного шума. Интеграция во второй раз, чтобы получить позицию, только ухудшает ситуацию, повторяя процесс.

Используя внешнюю ссылку, такую ​​как GPS, фильтр Калмана может использоваться для объединения медленного обновления сигнала GPS и быстрого обновления сигнала ускорения для обеспечения надежной оценки положения. GPS имеет эффект обнуления дрейфа, который будет накапливаться путем выполнения интеграции по сигналу ускорения.

Я бы предложил посмотреть видео Udacity Youtube, которые предложил Хейми. Изучая фильтр Калмана, он помогает получить четкий общий обзор цели и того, что делает фильтр кальммана. Тогда математика и реальные этапы алгоритма будут намного легче понять. Еще одна вещь, которая полезна при изучении фильтра Калмана, делает это для одной переменной состояния за раз, а не всего вектора состояния. Это просто помогает сосредоточить ваше внимание на том, что фильтр Калмана действительно делает, чтобы вы не увязли в матричной алгебре.

Ответ 3

Без учета вращения:

Предположим, что в момент времени t=t0 вы находитесь в положении [ x0 , y0 , z0 ] и векторе скорости [ vx0 , vy0 , vz0 ].

В t=t1 вы читаете вектор ускорения [ ax1 , ay1 , az1 ] (среднее ускорение от t0 и t1).

Тогда вектор скорости в t=t1 будет:

[ vx1 , vy1 , vz1 ] = [ vx0 + ax1 * (t1 - t0) , vy0 + ay1 * (t1 - t0) , vz0 + az1 * (t1 - t0) ] 

Средняя скорость между t0 и t1 будет

[ vx01 , vy01 , vz01 ] = [ (vx0 + vx1) / 2 , (vy0 + vy1) / 2 , (vz0 + vz1) / 2 ]

И позиция в t=t1 будет:

[ x1 , y1 , z1 ] = [x0 + vx01 * (t1 - t0), y0 + vy01 * (t1 - t0), y0 + vy01 * (t1 - t0) ]

Как вы можете видеть, ошибка распространяется с помощью t^2, поэтому поэтому инерционные системы должны быть компенсированы внешней ссылкой, такой как GPS.

Ответ 4

Если есть базовая карта, и вы уверены, что датчик перемещается по известному пути (например, по дороге), вы можете использовать базовую карту для исправления шумных показаний. См. Jun Han, Emmanuel Owusu, Thanh-Le Nguyen, Adrian Perrig и Joy Zhang "ACCOMplice: определение местоположения с использованием акселерометров на смартфонах" в материалах 4-й Международной конференции по системам связи и сетям (COMSNETS 2012), Бангалор, Индия, январь 3-7, 2012.

http://www.netsec.ethz.ch/publications/papers/han_ACComplice_comsnets12.pdf