Обнаружение «отсутствия движения» на устройстве GPS

21

Мы используем устройство слежения GPS, установленное на транспортных средствах, а затем отображаем движения в нашем приложении. Однако у нас небольшая проблема с автомобилями, когда они НЕ движутся.

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

Я знаю, что проблема не нова: Google Navigation на моем телефоне Android также имеет проблемы, когда я время от времени останавливаюсь на перекрестке, обнаруживая, что я сейчас еду в противоположном направлении (хотя на самом деле я стою на месте ).

Но нам действительно нужно иметь какой-то способ сказать, что транспортное средство не движется, особенно в течение длительных периодов времени.

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

Мы можем определить, включен или выключен двигатель транспортного средства, но мы не можем предположить, что он не двигается с выключенным двигателем (были случаи, когда поврежденное транспортное средство было отбуксировано ... и, конечно, есть случай потенциальной кражи, который также должен сообщать).

Как лучше всего подойти к этой проблеме?

РЕДАКТИРОВАТЬ:

Чтобы добавить больше информации:

  • Устройство GPS имеет акселерометр, но он возвращает только двоичную информацию (движется / не движется), и он либо слишком чувствителен, либо просто не работает.

  • У нас есть доступ к таким вещам, как количество спутников или качество, но мы не уверены, как использовать эту информацию. Таким образом, мой вопрос. :)

  • Проблема не в том, чтобы определить, движется автомобиль или нет в режиме реального времени. Мы собираем данные, а затем проводим статистический анализ и отображаем их. Мы показываем текущее положение транспортного средства, но это не имеет большого значения. Таким образом, в основном мы должны быть в состоянии сказать, что транспортное средство двигалось или не двигалось, просматривая исторические данные.

Shaamaan
источник
7
Если у вас есть встроенный в ваш трекер акселерометр, вы можете использовать данные акселерометра, чтобы определить, действительно ли движется транспортное средство, и вы можете отключить GPS-слежение, если оно не движется.
Geogeek
2
Ваше GPS-устройство регистрирует качество сигнала, количество спутников, данные такого рода? Кроме того, звучит так, будто вы «позже отобразите движения ...», поэтому можете ли вы подтвердить, что это не проблема обнаружения в реальном времени , а что-то, что вы будете фильтровать позже во время обработки?
Симбамангу
Я отредактировал свой вопрос, чтобы дать больше информации. Короче говоря: акселерометр работает с ума, у нас есть доступ к количеству спутников или информации о качестве, но мы не уверены, как их использовать, и да, это НЕ проблема обнаружения в реальном времени.
Shaamaan
2
На сайте статистики вы найдете несколько полезных рекомендаций, связанных с обнаружением выбросов и сглаживанием .
whuber
1
Геозона - когда транспортное средство находится в зоне (т. Е. В
Mapperz

Ответы:

5

Комментарии ниже вашего вопроса поднимают некоторые хорошие моменты, особенно в отношении интерпретации качества спутниковых данных (количество спутников, уровень сигнала), и вы можете использовать эту информацию либо на мобильном устройстве, либо на сервере, чтобы отфильтровать «плохие» значения GPS. Вопрос сводится к двум частям: 1) как вы определяете ложные показания GPS, и 2) как вы определяете стационарное состояние.

Давайте начнем с пары параметров:

  • stationary_speed = если мобильное устройство идет медленнее, чем это, то оно стационарно
  • too_fast = если мобильное устройство движется быстрее, чем это, то оно дало поддельные показания GPS

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

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

Вы можете сделать более сложную фильтрацию с фильтрами Калмана , но это может быть намного сложнее.

Katahdin
источник
Устройство GPS возвращает количество данных с каждым отправленным пакетом, включая положение и текущую скорость. У нас уже есть система, в которой, если скорость ниже определенного значения, мы предполагаем, что транспортное средство не движется, однако есть случаи, когда транспортное средство будет отправлять данные со скоростями, превышающими этот порог, несмотря на то, что они все еще (примечание: эти скорости не настолько велики, чтобы мы могли добавить верхний предел). Я не уверен, что расчет скорости на основе только позиций (а не показаний GPS) является хорошей идеей.
Shaamaan
2

Нам удалось настроить данные датчика движения.

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

Также мы взглянули на количество спутников, и это не очень хорошо. В то время как количество спутников было меньше для автомобиля под крышей, оно все еще было относительно высоким. 9-10 - обычное значение для такого транспортного средства, в то время как под крышей оно падает до 7 (но иногда может получить сигнал и подняться). Излишне говорить, что количество спутников оказалось менее чем полезным.

Shaamaan
источник
Информация по-прежнему полезна для определения ошибочных данных. Я делаю большую «правильную» фильтрацию на основе этого. 9 все еще высокий, вы уверены, что чип не повторяет последнее известное значение, у них есть эта функциональность на борту, и он включен в большинстве случаев.
Гленн Плас
Основная проблема связана с транспортными средствами, которые хранятся в каком-то сарае на ночь. Я не думаю, что это повторяет последнюю известную позицию, потому что транспортные средства БУДУТ исчезнуть полностью, если они въедут / будут храниться в бетонных гаражах (или что-нибудь более твердое). Падение спутников является индикатором, но оно кажется тонким, и оказалось, что гораздо проще просто настроить и использовать данные датчика движения.
Shaamaan
Не на 3000+ транспортных средствах, которые я отслеживаю, вам нужно количество сат, использованных для исправления, а не те, которые видны. Они могут оставаться высокими, если у вас есть крыша, которая до сих пор пропускает сигнал. Но исправление является хорошим индикатором вместе со значениями усиления Db.
Гленн Плас
Я могу совершенно точно сказать, кто находится внутри / снаружи какого-то гаража. Я также не страдаю от проблемы паутинга, поскольку состояние движения / неподвижности захватывает ее. Я согласен, что датчики дают вам гораздо больше, чтобы продолжать.
Гленн Плас
1
Вполне возможно, что мой коллега по ошибке установил количество видимых спутников, а не число, использованное для исправления (все, что я увидел, это лист Excel с данными, названия столбцов которых заполнялись вручную). : P В любом случае, как я уже писал, настроенный датчик движения был нашим выходом из этой проблемы.
Shaamaan
2

Вы можете использовать количество сат, использованных для получения последнего исправления, а не те, которые были в поле зрения. Например. View = 11, Fix = 5 И использовать значения Max DB для сигнала самого сильного сат. Это должно быть более 30 дБ, чтобы получить достойный сигнал.

Устройства, которые мы используем, имеют концепцию движения / неподвижности, датчики: ускорение, вибрация, входное напряжение, входной сигнал (от ключевого контакта), данные GPS. Чтобы сообщить о таких позициях, как запуск / остановка (это основано на событии) и событиях направления / расстояния, устройство должно находиться в режиме движения (это счетчик обратного отсчета, настраивается).

Датчики имеют возможность комбинироваться. Ни о событиях направления / расстояния, ни о таймерах не сообщается, пока трассировщик определяет, что он не находится в режиме движения. Когда задействованные датчики перестают сообщать, таймер начинает обратный отсчет до нуля, и затем генерируется событие остановки + устройство переводится в неподвижный режим. До следующего раза. Таким образом, вы можете разделить начальные значения ускорения двигателя, чтобы «перевести» его в режим движения, и отдельный нижний порог для «удержания» его в режиме движения, так как оба являются очень разными схемами ускорения.

Единицы, которые мы используем, сообщат, если точка была взята с плохими данными, не уверенными, делает ли это ваше оборудование. У нас есть SV_Position, SV_KeepAlive или SV_TimeAlive. Keepalive будет повторять точное последнее значение, поскольку GPS не может ни обновлять свои таблицы, ни получать точные данные, даже плохие. TimeAlive - это то, что вы увидите, когда переходите туннель или кто-то припарковался в гараже.

Один из способов также контролировать, хотя это частично обоснованные предположения, и это зависит от того, какие активы вы отслеживаете, это источник напряжения. например. устройство, работающее в 12.30, - это машина, двигатель которой не работает. Если вы видите тот, который сообщает 14.2v, вы знаете, что генератор вращается. Для транспортных средств 24 В есть аналогичная схема на месте.

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

Гленн Плас
источник
1
Я должен прокомментировать идею сбора напряжения. Это отлично! У нас немало проблем с определенными транспортными средствами, и мы не уверены, почему. В настоящее время мы подозреваем, что это может быть связано с плохими навыками со стороны технического специалиста, который установил устройства слежения, что приводит к проблемам с напряжением, хотя это также может быть саботажем (да, саботаж; мы отслеживаем уровень топлива и водителей) не нравится это). Если мы сможем записать напряжение на устройствах слежения, это должно очень помочь. :) Огромный палец вверх! (Я бы дал больше одного, но, к сожалению, я не могу ...)
Shaamaan
Это работает для каждого транспортного средства, у которого нет регулятора напряжения между вашим устройством трассировки. Проверьте эту ссылку в программе конфигурации KCS, это устройство, о котором я говорю, просто запустите его и посмотрите, что вы можете сделать в отношении определения движения, вы будете удивлены. Загрузите это , последнее программное обеспечение модулей revision9. Идея напряжения их. Там вы увидите хорошие настройки по умолчанию (грузовик / автомобиль / мотор)
Glenn Plas
Число сат является плохим показателем, вы действительно хотите, чтобы количество сат использовалось для получения последнего исправления (это значение, на которое вы смотрите, это не показатель текущей ситуации), хотя количество сат позволит вам определить абсолютно плохие точки, это не поможет вам вокруг серой зоны, например, образцы среднего качества. Вам нужно объединить разные датчики. Вычисление скорости, по сути, выполняется так же, как ваш GPS-чип уже сейчас, и это качество также зависит от количества проб, которые вы берете (дороги не везде прямые) и их точности. Проблема куриного яйца
Гленн Плас
0

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

HDunn
источник
1
Поскольку транспортные средства являются проблематичными, когда они не двигаются во время стоянки или в гаражах, это совсем не полезно. :(
Shaamaan
0

Термин искусства для этого является паутинга . Обычный подход состоит в том, чтобы просто выполнять выборку только тогда, когда исправление находится в 10 метрах от предыдущего исправления. Например, портативные устройства Garmin фиксируют исправления в зависимости от расстояния, в то время как фитнес наблюдает исправления в зависимости от времени . Карманные компьютеры не очень паук, но часы делают.

сержант
источник
Термин для этого многопутевой ошибки
ruruskyi