supertorpe
26/05/20, 09:35:36
Abro este hilo para intentar promover una tormenta de ideas en relación a la creación de una app cuyo objetivo sea estimar la distancia recorrida basándose, básicamente en el número de pasos.
Introducción
Se plantea el desarrollo de una app para relojes Amazfit que realice una estimación de la distancia recorrida durante un período de tiempo, basándose en el número de pasos realizados en dicho período y sin usar el GPS.
Esto puede ser útil en varios escenarios, por ejemplo: queremos saber qué distancia hemos caminado por la ciudad, pero no nos interesa el recorrido. Podríamos estimar la distancia sin usar el GPS con el consiguiente ahorro de batería.
Problema: estimación de la longitud de la zancada
La zancada varía de persona a persona, y para una misma persona también varía en función de la cadencia; podría depender de varias variables: sexo, estatura, peso, velocidad, edad... es necesario simplificar el modelo a costa de perder precisión.
Para solventar este problema se propone estudiar si hay una relación entre la cadencia y la zancada para una misma persona. Para ello, se volcará en una hoja de cálculo datos del histórico de actividades del usuario. Cuanta más variabilidad y cantidad de actividades, más ajustada se podrá hacer la estimación.
https://i.imgur.com/AVw9s7i.png
Se podría lanzar una encuesta para recopilar, de forma anónima, tablas de datos de actividades: estatura, sexo, edad y lista de actividades - duración "horas:minutos:segundos", distancia, nº pasos-. Con esto se podría realizar un análisis (¿machine learning?) de tal forma que podamos generar una tabla de datos y una función que, a partir de la estatura, sexo, edad, duración y número de pasos sea capaz de estimar la longitud de la zancada.
Funcionamiento
La primera vez que arranca la aplicación pregunta si desea realizar un análisis de sus actividades, para mejorar la estimación del cálculo. En caso afirmativo, se lanza el proceso que lee el histórico de actividades del reloj, creando una tabla de cadencia-zancada:
Por cada actividad:
- Lee el tiempo en segundos
- Lee la distancia
- Lee el nº pasos
- Calcula la cadencia: nº pasos / tiempo
- Calcula la zancada: distancia / pasos
- Añade el par (cadencia,zancada) a la tabla, ordenada por cadencia
La pantalla principal mostrará:
Distancia estimada recorrida en el día de hoy
Botón “Iniciar” para comenzar una actividad
Botón “Config.” para acceder a la pantalla de configuración
c) botón “Config”
Permite:
- establecer el sexo
- establecer la estatura
- lanzar un análisis del histórico de actividades para confeccionar la tabla de cadencias-zancadas
- establecer la frecuencia de muestreo durante la actividad
b) botón “iniciar”
Al pulsar el botón “Iniciar”, se creará un nuevo fichero donde se anotará el nº pasos en ese momento. Se mostrará un botón “Detener” para finalizar la actividad.
Cada 10 segundos (tiempo configurable en la pantalla “Config”) se calculará el nº de pasos dado en la última ventana de tiempo (restando al nº de pasos actuales el nº pasos de la anterior lectura). Con esto tendremos la cadencia en esta ventana de tiempo. Lanzaremos la función de cálculo de zancada para poder calcular la distancia que corresponde a ese número de pasos con esa cadencia.
a) Distancia estimada recorrida en el día de hoy
Potencialmente, durante el día se habrán dado pasos analizados por actividades mediante los botones “iniciar”-”detener” y también pasos que no hayan sido analizados por la app. La suma de ambos será el total de pasos actual reportado por la API del reloj.
Para los pasos que correspondan a actividades analizadas, se tomará la distancia registrada. Para el resto se realizará una estimación mediante una fórmula que depende del sexo y estatura.
Función de cálculo de zancada
Recibe dos parámetros: número de pasos y tiempo
Calcula la cadencia : pasos / tiempo
Con esta cadencia realiza una búsqueda en la tabla de cadencias-zancada del usuario, buscando la cadencia que coincida; si no existe, busca las cadencias justo anterior y posterior para realizar una interpolación para obtener la zancada.
Si no se encuentran datos, se utiliza una fórmula que depende del sexo y estatura.
Retorna la zancada obtenida o calculada.
¿continuará?...
Introducción
Se plantea el desarrollo de una app para relojes Amazfit que realice una estimación de la distancia recorrida durante un período de tiempo, basándose en el número de pasos realizados en dicho período y sin usar el GPS.
Esto puede ser útil en varios escenarios, por ejemplo: queremos saber qué distancia hemos caminado por la ciudad, pero no nos interesa el recorrido. Podríamos estimar la distancia sin usar el GPS con el consiguiente ahorro de batería.
Problema: estimación de la longitud de la zancada
La zancada varía de persona a persona, y para una misma persona también varía en función de la cadencia; podría depender de varias variables: sexo, estatura, peso, velocidad, edad... es necesario simplificar el modelo a costa de perder precisión.
Para solventar este problema se propone estudiar si hay una relación entre la cadencia y la zancada para una misma persona. Para ello, se volcará en una hoja de cálculo datos del histórico de actividades del usuario. Cuanta más variabilidad y cantidad de actividades, más ajustada se podrá hacer la estimación.
https://i.imgur.com/AVw9s7i.png
Se podría lanzar una encuesta para recopilar, de forma anónima, tablas de datos de actividades: estatura, sexo, edad y lista de actividades - duración "horas:minutos:segundos", distancia, nº pasos-. Con esto se podría realizar un análisis (¿machine learning?) de tal forma que podamos generar una tabla de datos y una función que, a partir de la estatura, sexo, edad, duración y número de pasos sea capaz de estimar la longitud de la zancada.
Funcionamiento
La primera vez que arranca la aplicación pregunta si desea realizar un análisis de sus actividades, para mejorar la estimación del cálculo. En caso afirmativo, se lanza el proceso que lee el histórico de actividades del reloj, creando una tabla de cadencia-zancada:
Por cada actividad:
- Lee el tiempo en segundos
- Lee la distancia
- Lee el nº pasos
- Calcula la cadencia: nº pasos / tiempo
- Calcula la zancada: distancia / pasos
- Añade el par (cadencia,zancada) a la tabla, ordenada por cadencia
La pantalla principal mostrará:
Distancia estimada recorrida en el día de hoy
Botón “Iniciar” para comenzar una actividad
Botón “Config.” para acceder a la pantalla de configuración
c) botón “Config”
Permite:
- establecer el sexo
- establecer la estatura
- lanzar un análisis del histórico de actividades para confeccionar la tabla de cadencias-zancadas
- establecer la frecuencia de muestreo durante la actividad
b) botón “iniciar”
Al pulsar el botón “Iniciar”, se creará un nuevo fichero donde se anotará el nº pasos en ese momento. Se mostrará un botón “Detener” para finalizar la actividad.
Cada 10 segundos (tiempo configurable en la pantalla “Config”) se calculará el nº de pasos dado en la última ventana de tiempo (restando al nº de pasos actuales el nº pasos de la anterior lectura). Con esto tendremos la cadencia en esta ventana de tiempo. Lanzaremos la función de cálculo de zancada para poder calcular la distancia que corresponde a ese número de pasos con esa cadencia.
a) Distancia estimada recorrida en el día de hoy
Potencialmente, durante el día se habrán dado pasos analizados por actividades mediante los botones “iniciar”-”detener” y también pasos que no hayan sido analizados por la app. La suma de ambos será el total de pasos actual reportado por la API del reloj.
Para los pasos que correspondan a actividades analizadas, se tomará la distancia registrada. Para el resto se realizará una estimación mediante una fórmula que depende del sexo y estatura.
Función de cálculo de zancada
Recibe dos parámetros: número de pasos y tiempo
Calcula la cadencia : pasos / tiempo
Con esta cadencia realiza una búsqueda en la tabla de cadencias-zancada del usuario, buscando la cadencia que coincida; si no existe, busca las cadencias justo anterior y posterior para realizar una interpolación para obtener la zancada.
Si no se encuentran datos, se utiliza una fórmula que depende del sexo y estatura.
Retorna la zancada obtenida o calculada.
¿continuará?...