Основные концепции: путешествие в пространстве и времени
Чтобы по-настоящему понять, как работает механизм фонового определения местоположения Tracelet, мы должны отказаться от идеи простого «таймера, проверяющего GPS». Вместо этого давайте проследим за пользователем — Сарой, водителем службы доставки — в течение ее дня. Попутно мы увидим, как интеллектуальные алгоритмы Tracelet (что) решают реальные проблемы (почему и где).
Сценарий 1: Утренняя поездка на работу
Изученные концепции: обнаружение движения, адаптивная выборка, эластичность.
Проблема
Сара просыпается, собирается и выходит из дома. Если бы GPS ее телефона постоянно опрашивал данные с интервалом в 10 метров, пока она спала, ее батарея разрядилась бы еще до того, как она начала свою смену. Как только она сядет в машину и выедет на шоссе, интервал в 10 метров будет слишком частым и перегрузит базу данных, но если это будет слишком редко, ее маршрут будет выглядеть как прямая линия, проходящая через здания.
Как Tracelet решает эту проблему
-
СТАЦИОНАРНОЕ состояние (
motion.stopTimeout) Пока Сара спала, акселерометр ее телефона зафиксировал нулевое движение. Через 5 минут (stopTimeoutпо умолчанию) Tracelet полностью отключил радиомодуль GPS, перейдя в состояниеSTATIONARY. Разряд ее батареи упал почти до 0%. В тот момент, когда она взяла телефон, чтобы уйти, акселерометр мгновенно разбудил Трейселет. -
Адаптивный режим (
geo.enableAdaptiveMode) Когда Сара идет к своей машине, Tracelet использует базовую линиюdistanceFilter, равную 10 метрам. Однако, когда она выезжает на шоссе на скорости 65 миль в час,enableAdaptiveModeопределяет высокую скорость и автоматически масштабируетdistanceFilterдо 50 или 100 метров.
Почему? Потому что на высоких скоростях по прямой приходится преодолевать большую территорию. Нам не нужно 100 точек, чтобы провести прямую линию на шоссе.
- Множитель эластичности (
geo.elasticityMultiplier) Этот параметр контролирует насколько агрессивно растягивается фильтр расстояний на высоких скоростях. Если она водитель грузовика-дальнобойщика на бесконечном пустынном шоссе, вы можете установитьelasticityMultiplierна2.0, чтобы еще больше растянуть фильтр и сэкономить больше заряда батареи.
Сценарий 2: Туннель метро
Изученные концепции: точный расчет, фильтрация Калмана, точность одометра.
Проблема
Саре нужно доставить посылку в центр города. Она паркует машину и проезжает три остановки в метро. Находясь под землей, она полностью теряет сигнал GPS. Обычный трекер местоположения нарисовал бы прямую линию, идущую от входа в метро к выходу, испортив общее расстояние, рассчитанное для ее заработной платы.
Как Tracelet решает эту проблему
-
Мертвая расплата (
geo.enableDeadReckoning) После 10 секунд отсутствия сигнала GPS (настроенного с помощьюdeadReckoningActivationDelay) Tracelet понимает, что находится в среде, в которой запрещен прием GPS. Он активирует механизм точного расчета, объединяя данные акселерометра, гироскопа и компаса, чтобы угадать ее путь через туннель на основе ее последней известной скорости и курса. -
Порог точности одометра (
geo.filter.odometerAccuracyThreshold) Когда она выходит из метро, сигнал GPS отражается от небоскребов, давая «нечеткое» местоположение с точностью до 150 метров. Поскольку для ееodometerAccuracyThresholdустановлено значение50, Tracelet записывает точку, но отказывается добавлять это расстояние к общему одометру поездки, гарантируя, что ей не заплатят за неточное расстояние «отскока GPS».
Сценарий 3: Офисный стол
Изученные концепции: Модуль экономии заряда батареи, прокси-серверы Geofence.
Проблема
Сара добирается до большого корпоративного кампуса и проводит 45 минут, гуляя по нему и доставляя посылки. Сигнал GPS слабый, аккумулятор начинает разряжаться.
Как Tracelet решает эту проблему
-
Бюджет батареи (
android.batteryBudgetPerHour) Вы настроили Tracelet сbatteryBudgetPerHourили2.0%. Трейслет замечает, что ее батарея разряжается со скоростью 3,5% в час из-за слабого сигнала внутри здания. Механизм автоматически снижаетdesiredAccuracyсhighдоmediumи увеличиваетdistanceFilter, чтобы снова снизить разряд батареи до уровня 2,0%. -
Неограниченное количество геозон через близость Корпоративный кампус имеет 500 индивидуальных зон доставки (геозонов). И iOS, и Android изначально ограничивают вас 20 или 100 геозонами. Tracelet обходит это аппаратное ограничение, регистрируя только ближайшие геозоны в
geofenceProximityRadius. Пока Сара проходит по кампусу, Tracelet плавно загружает и выгружает геозоны в аппаратное обеспечение ОС, позволяя создавать бесконечные геозоны.