Skip to Content
Conceptos básicosConceptos básicos

Conceptos centrales: un viaje a través del espacio y el tiempo

Para entender realmente cómo funciona el motor de localización en segundo plano de Tracelet, debemos abandonar la idea de un simple “temporizador que haga ping al GPS”. En lugar de eso, sigamos a una usuaria (Sarah, una conductora de reparto) a lo largo de su día. A lo largo del camino, veremos exactamente cómo los algoritmos inteligentes de Tracelet (el qué) resuelven problemas del mundo real (el por qué y el dónde).


Escenario 1: El viaje matutino

Conceptos explorados: Detección de movimiento, muestreo adaptativo, elasticidad

El problema

Sarah se despierta, se prepara y sale de su casa. Si el GPS de su teléfono sonara constantemente a intervalos de 10 metros mientras dormía, su batería se agotaría incluso antes de comenzar su turno. Una vez que sube a su automóvil y conduce hacia la autopista, un intervalo de 10 metros es demasiado frecuente y abrumará la base de datos, pero si es demasiado poco frecuente, su ruta parecerá una línea recta que atraviesa edificios.

Cómo lo resuelve Tracelet

  1. El estado ESTACIONARIO (motion.stopTimeout) Mientras Sarah dormía, el acelerómetro de su teléfono no detectó movimiento. Después de 5 minutos (el valor predeterminado stopTimeout), Tracelet apagó agresivamente la radio GPS por completo, ingresando al estado STATIONARY. El consumo de su batería se redujo a casi el 0%. En el momento en que tomó su teléfono para irse, el acelerómetro despertó a Tracelet instantáneamente.

  2. Modo Adaptativo (geo.enableAdaptiveMode) Mientras Sarah camina hacia su auto, Tracelet usa una línea de base distanceFilter de 10 metros. Sin embargo, cuando ingresa a la autopista a 65 MPH, enableAdaptiveMode detecta la alta velocidad y automáticamente escala el distanceFilter hasta 50 o 100 metros.

¿Por qué? Porque a altas velocidades, recorre mucho terreno en línea recta. No necesitamos 100 puntos para trazar una línea recta en una carretera.

  1. Multiplicador de elasticidad (geo.elasticityMultiplier) Este parámetro controla cuán agresivamente se extiende el filtro de distancia a altas velocidades. Si es una conductora de camión de larga distancia en una interminable carretera desértica, puede configurar elasticityMultiplier en 2.0 para estirar aún más el filtro y ahorrar más batería.

Escenario 2: El túnel del metro

Conceptos explorados: Estimación, filtrado de Kalman, precisión del odómetro

El problema

Sarah tiene un paquete para entregar en el centro. Estaciona su auto y toma el metro durante tres paradas. Mientras está bajo tierra, pierde por completo la señal de GPS. Un rastreador de ubicación normal trazaría una línea recta saltando desde la entrada del metro hasta la salida, arruinando la distancia total calculada para su nómina.

Cómo lo resuelve Tracelet

  1. A estima (geo.enableDeadReckoning) Después de 10 segundos sin señal de GPS (configurada mediante deadReckoningActivationDelay), Tracelet se da cuenta de que se encuentra en un entorno sin GPS. Activa el motor Dead Reckoning, fusionando datos del acelerómetro, giroscopio y brújula para adivinar su camino a través del túnel en función de su última velocidad y rumbo conocidos.

  2. Umbral de precisión del odómetro (geo.filter.odometerAccuracyThreshold) Cuando sale del metro, la señal del GPS rebota alrededor de los rascacielos, dando una ubicación “borrosa” con una precisión de 150 m. Debido a que su odometerAccuracyThreshold está configurado en metros 50, Tracelet registra el punto pero se niega a agregar esa distancia a su odómetro total de viaje, asegurándose de que no se le pague por una distancia de “rebote GPS” inexacta.


Escenario 3: El escritorio de la oficina

Conceptos explorados: Motor de presupuesto de batería, Proxies de Geofence

El problema

Sarah llega a un gran campus corporativo y pasa 45 minutos caminando por el interior entregando paquetes. La señal del GPS es débil y la batería empieza a agotarse.

Cómo lo resuelve Tracelet

  1. El presupuesto de la batería (android.batteryBudgetPerHour) Configuró Tracelet con batteryBudgetPerHour de 2.0%. Tracelet nota que su batería se está agotando a un 3,5 % por hora debido a la señal débil dentro del edificio. El motor degrada automáticamente desiredAccuracy de high a medium y aumenta distanceFilter para forzar que la batería se agote nuevamente por debajo del presupuesto del 2,0%.

  2. Geocercas ilimitadas por proximidad El campus corporativo cuenta con 500 zonas de entrega individuales (geocercas). Tanto iOS como Android te limitan de forma nativa a 20 o 100 geocercas. Tracelet evita esta limitación de hardware al registrar solo las geocercas más cercanas dentro de geofenceProximityRadius. Mientras Sarah camina por el campus, Tracelet carga y descarga geocercas sin problemas en el hardware del sistema operativo, lo que permite infinitas geocercas.