Saltar al contenido principal

¿Cómo calculamos las distancias?

¿Cómo calculamos las distancias?

Pwr-running, al igual que la mayoría de aplicaciones para registrar y medir actividades de “running”, utiliza el GPS como sensor principal para estimar las distancias recorridas. El GPS proporciona la posición en el globo terráqueo en términos de latitud y longitud, y calcula la altitud respecto al nivel del mar. Además, el GPS da una indicación de la fiabilidad, en metros, de los valores de posición y altitud. Una fiabilidad en la posición de 5 metros significa que el dispositivo GPS garantiza que el error entre la latitud y la longitud proporcionada, y la real es inferior a 5 metros. Las fiabilidades de los sensores de los teléfonos móviles se mueven en el rango de 3 metros a 15 metros en zonas de muy buena cobertura. Con mala cobertura, el error puede llegar a los 100 metros. Las mediciones del GPS suelen ser cada segundo, por lo que en una actividad de running a un ritmo de entre 8 y 15 km/h, los puntos GPS estarán distanciados entre 2 y 4 metros con un error, en el mejor de los casos, de 3 metros. Es decir, si el movimiento fuera errático, el error sería enorme, pero cuando corremos, el movimiento no es errático, sigue una línea, lo cual permite medir las distancias con una precisión inferior al 1%. Cuanto más recta sea la línea en la que nos desplazamos, mayor será la precisión.

Pwr-running utiliza modelos de Inteligencia Artificial, concretamente de machine-learning, para estimar las distancias. En un modelo de machine learning, se introducen un conjunto de casos contrastados en los que se conocen tanto los puntos GPS como la distancia “real” recorrida (casos de “aprendizaje”), y el modelo “inventa” un algoritmo que minimiza el error, es decir, que cuando calculamos con dicho algoritmo la distancia recorrida a partir de los puntos GPS, el error medio de dichas distancias estimadas respecto a las distancias reales conocidas, es mínimo. Cuanto mayor y más variado sea el conjunto de casos de aprendizaje, más fiable será el algoritmo o mejor dicho más fiable independientemente del escenario.

En pwr-running, hemos construido 4 modelos de machine-learning para estimar distancias. En el primer modelo, hemos utilizado como casos de aprendizaje recorridos por “Carretera” y como medidor “fiable” de distancias el cuentakilómetros de un coche. En el modelo “Montaña”, hemos utilizado recorridos por caminos y como medidor “fiable” una bicicleta con cuentakilómetros. En el modelo “Competición”, son recorridos en pistas de atletismo o circuitos de competición y el medidor fiable es la distancia homologada del circuito. Por último, hemos construido un modelo con todos los casos de aprendizaje de los tres modelos anteriores. Es nuestro modelo “Optimizado”. En la pestaña de Ajustes de pwr-running, en la sección de Ajustes de la App, se puede seleccionar el modelo de cálculo de distancias que utilizará la aplicación.

Para comprobar cómo funcionan los modelos, hemos hecho 2 pruebas: una en un circuito de 5 kilómetros exactos y otra en un circuito que, más o menos, se corresponde con una media maratón: 21,1 kilómetros. Ambos casos son circuitos de carretera y en ambos casos hemos medido las distancias con un coche. El circuito de 5 km es más curvilíneo y con peor cobertura GPS, y el más largo está compuesto por tramos más rectos y la cobertura GPS es muy buena. Además, hemos medido los recorridos con otras 3 aplicaciones que se ejecutaban en el mismo teléfono móvil: Adidas running, Runkeeper y Strava.

En el circuito de 5 km, todos los modelos “sobre-miden”. El que más se “acerca” es el modelo de Competición con 5,037 Km seguido por el Optimizado con 5,062 Km.

En cambio, en el circuito de 21,1 km, hay dos modelos que “infra-miden” y el resto “sobre-miden”. El que más se aproxima es el Optimizado con un error de 3 metros seguido por el de Competición.

Si sumamos los dos circuitos y calculamos la desviación simple y la cuadrática, el modelo que más se aproxima es el de Competición aunque todos los modelos muestran un excelente comportamiento con errores inferiores al 1%. Se debe tener en cuenta que cualquier método de medición tiene un margen de error. En este caso, el cuentakilómetros del coche tiene un error del 0,25%, lo cual significa que si hubiéramos utilizado otro coche, el ranking de modelos que más se aproximan podría ser muy diferente.

Una App que nace con vocación de ser Simple

Una App que nace con vocación de ser Simple

pwr-RUNNING es el resultado de un trabajo riguroso y concienzudo por construir una app que mida con la máxima fiabilidad las métricas y parámetros de una carrera utilizando únicamente un teléfono móvil. pwr-RUNNING no es una red social de corredores, no es una aplicación para competir con los amigos, ni enseñar nuestros logros, y tampoco es un entrenador personal con planes y rutinas de entrenamiento. pwr-RUNNING es una app para medir y registrar las actividades de running incluyendo parámetros de carrera como la oscilación vertical, la eficiencia de carrera, la potencia, el consumo de VO2 o la eficiencia metabólica.

Uno de los primeros objetivos que nos marcamos fue que la app ocupará poco espacio de almacenamiento. A todos nos queda muy poco espacio de almacenamiento en el móvil y las apps que ocupan cientos de megas, nos crean problemas. Una app que ocupa menos espacio normalmente es más simple que una que ocupa más espacio.

La app en iOS ocupa únicamente 11,9 MB y, en el ejemplo de abajo, otros 2,3 MB para datos (220 sesiones). Como los datos de las sesiones se guardan en la nube, apenas se necesita espacio en el teléfono. Runkeeper ocupa 71,5 MB y 23,7 MB de datos para 190 sesiones. Strava ocupa 114,2 MB y 27,7 MB con 55 sesiones. Y Adidas Running ocupa 171,4 MB y adicionalmente otros 108,4 MB con casi 500 sesiones almacenadas.

En android, no hemos conseguido una app tan simple: 50,21 MB y 2,36 MB de datos con 220 sesiones. Runkeeper ocupa 98,12 MB y 4,10KB de datos sin sesiones. El tamaño de Strava es 58,89 MB y 8,16 MB adicionales para datos de usuario con 2 sesiones. Y Adidas Running ocupa 106 MB y 8,62 MB con 14 actividades.