Skip to Content
Основные понятияОсновные понятия

Основные концепции: путешествие в пространстве и времени

Чтобы по-настоящему понять, как работает механизм фонового определения местоположения Tracelet, мы должны отказаться от идеи простого «таймера, проверяющего GPS». Вместо этого давайте проследим за пользователем — Сарой, водителем службы доставки — в течение ее дня. Попутно мы увидим, как интеллектуальные алгоритмы Tracelet (что) решают реальные проблемы (почему и где).


Сценарий 1: Утренняя поездка на работу

Изученные концепции: обнаружение движения, адаптивная выборка, эластичность.

Проблема

Сара просыпается, собирается и выходит из дома. Если бы GPS ее телефона постоянно опрашивал данные с интервалом в 10 метров, пока она спала, ее батарея разрядилась бы еще до того, как она начала свою смену. Как только она сядет в машину и выедет на шоссе, интервал в 10 метров будет слишком частым и перегрузит базу данных, но если это будет слишком редко, ее маршрут будет выглядеть как прямая линия, проходящая через здания.

Как Tracelet решает эту проблему

  1. СТАЦИОНАРНОЕ состояние (motion.stopTimeout) Пока Сара спала, акселерометр ее телефона зафиксировал нулевое движение. Через 5 минут (stopTimeout по умолчанию) Tracelet полностью отключил радиомодуль GPS, перейдя в состояние STATIONARY. Разряд ее батареи упал почти до 0%. В тот момент, когда она взяла телефон, чтобы уйти, акселерометр мгновенно разбудил Трейселет.

  2. Адаптивный режим (geo.enableAdaptiveMode) Когда Сара идет к своей машине, Tracelet использует базовую линию distanceFilter, равную 10 метрам. Однако, когда она выезжает на шоссе на скорости 65 миль в час, enableAdaptiveMode определяет высокую скорость и автоматически масштабирует distanceFilter до 50 или 100 метров.

Почему? Потому что на высоких скоростях по прямой приходится преодолевать большую территорию. Нам не нужно 100 точек, чтобы провести прямую линию на шоссе.

  1. Множитель эластичности (geo.elasticityMultiplier) Этот параметр контролирует насколько агрессивно растягивается фильтр расстояний на высоких скоростях. Если она водитель грузовика-дальнобойщика на бесконечном пустынном шоссе, вы можете установить elasticityMultiplier на 2.0, чтобы еще больше растянуть фильтр и сэкономить больше заряда батареи.

Сценарий 2: Туннель метро

Изученные концепции: точный расчет, фильтрация Калмана, точность одометра.

Проблема

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

Как Tracelet решает эту проблему

  1. Мертвая расплата (geo.enableDeadReckoning) После 10 секунд отсутствия сигнала GPS (настроенного с помощью deadReckoningActivationDelay) Tracelet понимает, что находится в среде, в которой запрещен прием GPS. Он активирует механизм точного расчета, объединяя данные акселерометра, гироскопа и компаса, чтобы угадать ее путь через туннель на основе ее последней известной скорости и курса.

  2. Порог точности одометра (geo.filter.odometerAccuracyThreshold) Когда она выходит из метро, ​​сигнал GPS отражается от небоскребов, давая «нечеткое» местоположение с точностью до 150 метров. Поскольку для ее odometerAccuracyThreshold установлено значение 50, Tracelet записывает точку, но отказывается добавлять это расстояние к общему одометру поездки, гарантируя, что ей не заплатят за неточное расстояние «отскока GPS».


Сценарий 3: Офисный стол

Изученные концепции: Модуль экономии заряда батареи, прокси-серверы Geofence.

Проблема

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

Как Tracelet решает эту проблему

  1. Бюджет батареи (android.batteryBudgetPerHour) Вы настроили Tracelet с batteryBudgetPerHour или 2.0%. Трейслет замечает, что ее батарея разряжается со скоростью 3,5% в час из-за слабого сигнала внутри здания. Механизм автоматически снижает desiredAccuracy с high до medium и увеличивает distanceFilter, чтобы снова снизить разряд батареи до уровня 2,0%.

  2. Неограниченное количество геозон через близость Корпоративный кампус имеет 500 индивидуальных зон доставки (геозонов). И iOS, и Android изначально ограничивают вас 20 или 100 геозонами. Tracelet обходит это аппаратное ограничение, регистрируя только ближайшие геозоны в geofenceProximityRadius. Пока Сара проходит по кампусу, Tracelet плавно загружает и выгружает геозоны в аппаратное обеспечение ОС, позволяя создавать бесконечные геозоны.