Виявлення "відсутності руху" на пристрої GPS


21

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

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

Я знаю, що проблема не нова: Навігація Google на моєму телефоні Android також має проблеми, коли я раз і знову зупиняюся на перехресті, виявляючи, що я зараз їду в зворотному напрямку (адже насправді я стою нерухомо ).

Але нам дійсно потрібно мати якийсь спосіб сказати, що транспортний засіб не рухається, особливо на тривалий час.

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

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

Який найкращий спосіб підійти до цієї проблеми?

Редагувати:

Щоб додати ще трохи інформації:

  • Пристрій GPS має акселерометр, але він повертає лише двійкову інформацію (рухається / не рухається), і вона є чутливою до TOO або просто не працює.

  • У нас є доступ до таких речей, як кількість супутників або якість, але ми не впевнені, як використовувати цю інформацію. Таким чином, моє питання. :)

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


7
якщо у ваш трекер вбудований акселерометр, ви можете використовувати дані акселерометра, щоб виявити, чи справді автомобіль рухається, і ви можете вимкнути GPS-відстеження, якщо він не рухається.
geogeek

2
Чи записує ваш пристрій GPS якість сигналу, кількість супутників, такі дані? Крім того, здається, що ви "пізніше відображатимете рухи ...", щоб ви могли підтвердити, що це не проблема виявлення в реальному часі , а щось, що ви фільтруєте пізніше під час обробки?
Simbamangu

Я відредагував своє запитання, щоб надати більше інформації. Якщо коротко: акселерометр працює божевільно, у нас є доступ до кількості супутників або інформації про якість, але ми не впевнені, як ними користуватися, і так, це НЕ проблема виявлення в реальному часі.
Шааман

2
На сайті статистики ви знайдете кілька корисних рекомендацій, пов’язаних з виявленням залишків та згладжуванням .
whuber

1
Geofence - коли транспортний засіб знаходиться в зоні (тобто гараж, тоді не фіксуйте
Mapperz

Відповіді:


5

У коментарях під вашим запитанням з’являються деякі хороші моменти, особливо щодо інтерпретації якості супутникових даних (# супутників, потужність сигналу), і ви можете використовувати цю інформацію або на мобільному пристрої, або на сервері, щоб відфільтрувати «погані» значення GPS. Питання зводиться до двох частин: 1) як визначити помилкове зчитування GPS, і 2) як визначити стаціонарний стан.

Почнемо з пари параметрів:

  • stationary_speed = якщо мобільний блок йде повільніше, ніж це, то він нерухомий
  • too_fast = якщо мобільний блок працює швидше за це, він дав помилкове зчитування GPS

Складно обчислити ці швидкості з точністю. Скажіть, що ви обчислюєте швидкість як / між попереднім читанням (при t0) і поточним читанням (при t1). Якщо дельта часу велика, і одиниця проходить навколо кривої, то фактична пройдена відстань буде більшою, ніж обчислена відстань. Крім того, якщо ви отримаєте два помилкових читання підряд, і вони досить близькі один до одного, то ви можете отримати непередбачувані результати.

Отримавши швидкість, просто порівняйте її з вашими параметрами, щоб побачити, чи є зчитування GPS несправедливим чи пристрій нерухомим.

Можна зробити більш складну фільтрацію за допомогою фільтрів Kalman , але це може бути значно більше.


Пристрій GPS повертає ряд даних із кожним надісланим пакетом, включаючи позицію та поточну швидкість. У нас вже є система, де, якщо швидкість нижча за певну величину, ми припускаємо, що транспортний засіб не рухається, однак у вас є випадки, коли транспортний засіб надсилатиме дані зі швидкістю понад цей поріг, незважаючи на те, що все ще є (зверніть увагу: ці швидкості не НАВЧАЛЬНІ, щоб ми могли додати верхню межу). Я не впевнений, чи правильно розраховувати швидкість на основі позицій (а не зчитування GPS).
Шааман

2

Нам вдалося налаштувати дані датчика руху.

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

Також ми подивилися на кількість супутників, і це не виглядало добре. Хоча кількість супутників була меншою для транспортного засобу під дахом, вона все ще була відносно високою. 9-10 - це звичайне значення для такого транспортного засобу, тоді як під дахом воно опускається до 7 (але час від часу може отримати сигнал і піднятися вгору). Потрібно сказати, що кількість супутників виявилася менш ніж корисною.


Інформація все ще корисна для визначення несправних даних. Я роблю багато "правильної" фільтрації на її основі. 9 все ще високий, ви впевнені, що чіп не повторює останнє добре відоме значення, у них є така функціональність на борту, і вона ввімкнена більшість разів.
Гленн Плас

Основна проблема полягає в транспортних засобах, які зберігаються в сараї якоїсь ночі. Я не думаю, що це повторює останню позицію, бо транспортні засоби НЕ Зникнуть повністю, якщо вони в’їжджають / зберігаються в бетонних гаражах (або що-небудь більш тверде). Падіння супутників - це показник, але він, здається, тонкий, і виявилося набагато простіше просто налаштувати та використовувати дані датчика руху.
Shaamaan

Не на 3000+ транспортних засобах, які я відстежую, вам потрібна кількість саток, які використовуються для виправлення, а не ті, що переглядаються. Вони можуть залишатися високими, коли у вас є дах, який все ще пропускає щось із сигналу. Але виправлення є хорошим показником разом із значеннями посилення Db.
Glenn Plas

Я чудово можу сказати, які з них знаходяться всередині / зовні гаража. Я також не страждаю від проблеми з павуком, оскільки стан руху / неруху вловлює її. Я погоджуюся, що датчики дають вам набагато більше, щоб продовжувати.
Glenn Plas

1
Цілком можливо, що мій колега помилково встановив кількість видимих ​​супутників, а не число, яке використовується для виправлення (я бачив лише аркуш Excel з даними заголовків стовпців, заповнених вручну). : P У будь-якому випадку, як я вже писав, налаштований датчик руху був нашим виходом із цієї проблеми.
Shaamaan

2

Ви можете використовувати кількість сатів, використаних для останнього виправлення, а не ті, що переглядаються. Напр. View = 11, Fix = 5 І використовуйте значення Max DB сигналу найсильнішого sat. Це має бути понад 30Db, щоб отримати гідний сигнал.

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

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

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

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

Сподіваюсь, це дає вам певну ідею. Все трохи залежить від того, наскільки гарне обладнання. Джерело ваших даних починається там, а все інше після цього лише настільки добре, наскільки воно є. Але я б настійно закликав вас використовувати можливості одиниць, щоб робити якісну відмінність, а не робити це на всіх серверах (заднім числом). Після того, як вам подобається 3000 одиниць, вам знадобиться надійний сервер для постійного аналізу всіх даних відстеження, тож тоді ви зрозумієте, що він не буде масштабуватися.


1
Я мушу коментувати ідею збирати напруги. Це чудово! З певними транспортними засобами у нас досить неприємності, і ми не знаємо, чому. Наразі ми підозрюємо, що це може бути пов’язано з низькими навичками у частини технічного хлопця, який встановив пристрої стеження, що призводить до проблем з напругою, хоча це також може бути саботажем (так, саботаж; ми стежимо за рівнем палива та водіями не подобається). Якщо ми можемо записувати напругу на слідкувальних пристроях, це повинно допомогти неабияк. :) Величезні великі пальці! (Я дав би більше одного, але, на жаль, не можу ...)
Шааман

Він працює для кожного транспортного засобу, який не має регулятора напруги між вашим трекером. Перевірте це посилання з програми налаштування KCS, це блок, про який я говорю, просто запустіть його і подивіться, що ви можете зробити щодо зондування руху, ви здивуєтеся. Завантажте це - найновіше програмне забезпечення версій9 версій. Ідея напруги їхня. Ви побачите кілька хороших замовчувань там (вантажівка / автомобіль / мотор)
Glenn Plas

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

0

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


1
Оскільки транспортні засоби є проблематичними, коли не рухаються на автостоянках чи гаражах, це зовсім не корисно. :(
Шааман

0

Термін мистецтва для цього - павук . Поширений підхід полягає в тому, щоб просто вибирати вибірку лише тоді, коли виправлення знаходиться на відстані 10 м від попереднього виправлення. Наприклад, кишенькові апарати Garmin фіксують виправлення на основі відстані, тоді як фітнес спостерігає за виправленнями фіксованих даних за часом . КПК не дуже павукує, але годинник.


Термін для цього - помилка з
декількома помилками
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.