JumpStart Logo
JumpStart
English
versión 1.4.1
© tomdroid.com
convierte tu dispositivo Android en un cronómetro electrónico preciso para agility

Introducción

Siendo un fanático del agility, estuve dando vueltas sobre maneras de mejorar el cronometrajeSalto con dispositivo de mis pistas de agility y las de mis compañeros de club y cómo mantener fácilmente registros de sus tiempos. Para la mayoría de los técnicos y clubes de modesto tamaño, un cronómetro de mano siempre ha sido el método más fácil. Es una solución barata, aunque propenso a fallos humanos y, de una manera u otra, los tiempos deben ser registrados manualmente después de cada carrera, si uno decide llevar un registro.
Sofisticados y caros sistemas de cronometraje electrónicos se ven habitualmente en la mayoría de las pruebas oficiales de hoy en día, pero estos sistemas están prácticamente fuera del alcance de la mayoría de los clubes de agility amateur y de los aficionados saltando en el jardín detrás de sus casas. Los cronómetros electrónicos se basan en la ruptura de un haz de luz reflectante y los tiempos de carrera pueden ser grabados y procesados remotamente​​.
Con los Smartphones de hoy en día, cada vez más potentes y versátiles, se me ocurrió que con unas cuantas horas de programación Android sería factible crear una aplicación capaz de funcionalidades similares usando la cámara incorporada de los móviles. Así nació la idea de JumpStart. Eventualmente, esas 'cuantas horas' se convirtieron en varios fines de semana de programación entretenida y pruebas de campo. Durante los últimos dos meses la App se ha puesto a disposición de un grupo seleccionado de ß-testers de todo el mundo, que contribuyeron en gran medida en hacer la aplicación mejor y aportaron valiosas ideas. Quiero dar las gracias a todos los que han participado en esta primera fase. La aplicación ha sido probada en el mundo real y funciona bastante bien en más del 75% de los montajes. Por supuesto, el objetivo final sería conseguir una tasa de éxito de al menos un 90%. Aún tengo varias mejoras en mente y estoy bastante seguro de que finalmente alcanzaremos esa meta. Ahora es el momento de lanzar una primera versión de producción a un público más amplio a través de la Google Play Store. Estoy seguro que la aplicación seguirá mostrando muchas deficiencias. Ten en cuenta que es una aplicación que típicamente depende del hardware y que necesitaría pruebas exhaustivas en varios modelos de dispositivos y niveles de API Android. Es por eso que necesito vuestro feedback y sugerencias.

¿De qué se trata?

En pocas palabras, JumpStart convierte tu teléfono Android en un sensor que se coloca en el salto de inicioDetección de Movimiento (y también necesariamente salto final) de la pista de agility. Detecta el perro saltando el obstáculo y mide el tiempo exacto entre el salto de salida y el salto de llegada. Mantiene una base de datos muy simple de perros, guías y sus tiempos. El dispositivo se fija en uno de los dos postes, justo por encima de la barra del obstáculo, con la cámara dirigida hacia el poste opuesto. En la foto a la derecha: movimiento es detectado sobre el poste opuesto comparando dos fotogramas consecutivos (la zona en rojo es la diferencia con el fotograma siguiente) (por cortesía de Gerard Barberà, Club Agility Neo, Reus, España)

El hecho de que en la mayoría de los dispositivos Android su emplearía necesariamente una cámara trasera, tiene algunas consecuencias importantes:

Requerimientos y Limitaciones actuales

Mejoras Futuras

Esta última limitación fue eliminada en la versión pro de la App: JumpStart Pro. Dos dispositivos ejecutando JumpStart Pro comunican de forma inalámbrica de tal manera que se pueden colocar dispositivos distintos en el salto de inicio y en el salto final. También hay una aplicación JumpStart Remote en desarrollo, ideal para tablets, que comunicará con las aplicaciones sensor y permitirá la activación remota, reinicio y gestión centralizada de la base de datos, incluyendo la posibilidad de marcar faltas y rehuses, sistemas de puntuación y clasificaciones de las pruebas.

Notas de Versión

Por favor, consulta las notas de la última versión en el párrafo "Novedades" en la Play Store.

Instrucciones paso-a-paso

Configuración

Al iniciar la aplicación, la pantalla principal muestra una vista previa de la cámara y el texto "Coloca el dispositivo y presiona el botón lateral ...". No obstante, antes de proceder a colocar el dispositivo en el salto de salida, debe ser cuidadosamente configurado para un rendimiento óptimo. Esto es extremadamente importante. No ajustar el dispositivo a tu montaje particular, resultará inevitablemente en mal funcionamiento y fallo. Para configurar el dispositivo, pulsa el botón de menú y selecciona "Ajustes" en el menú. Aparecerá un amplio panel de configuración. Explicaremos brevemente cada uno de los ítems del menú en orden:

Ventana de Ajustes 1

Tiempos

  • Tiempo hasta pitido de salida: indica el número de segundos que la aplicación esperará después de pulsar el botón lateral (volumen) y la posterior calibración, y antes de que el sensor de la cámara inicia la detección de movimiento. Una vez transcurrido ese tiempo de preparación, sonará un silbato de árbitro indicando que el perro puede saltar y empezar la pista. El valor predeterminado es de 10 segundos. 
  • Tiempo de sensor: éste es el máximo tiempo de espera durante el cual el sensor de detección de movimiento estará operativo y esperando el salto inicial. Una vez transcurrido este tiempo, el sensor se desactivará y la carrera es abortada. El valor predeterminado es 1 minuto.
  • Carrera mínima: éste es el mínimo absoluto para el tiempo de ejecución de la pista. Es decir, se espera que ningún equipo termine el recorrido en un tiempo menor. Este parámetro es necesario para poder distinguir entre la salida y la llegada. Tan pronto como el sensor detecta el movimiento del salto inicial, la detección pausa durante este tiempo para evitar que el paso de las patas traseras del perro se interpreten como salto final. Se recomienda ajustar este valor tan alto como sea posible (por ejemplo, 20 segundos) teniendo en cuenta la longitud de la pista. De esta manera se evitan detecciones de falsos positivos debidos a movimientos en segundo plano (ver más abajo) o por cambios repentinos en la luz del sol. También da al personal de pista el tiempo necesario para recolocar la barra en caso de que el perro la tumbe en el salto de salida. Por otro lado, si estás simplemente experimentando con la App, deja el valor predeterminado de 5 segundos, con el fin de no tener que esperar demasiado tiempo antes de poder hacer un salto final.
  • Tiempo de Recorrido Máximo: éste es el máximo absoluto para la ejecución de la pista. Recorridos más largos serán abortados automáticamente (sonará la bocina). Nota: no necesariamente este tiempo debe interpretarse como el TRM para eliminación.
  • Dispositivo

  • Dispositivo con cámara frontal Preferir Cámara Frontal: varios dispositivos Android tienen tanto cámara frontal como trasera. Si tienes tal dispositivo, puedes intentar usar la cámara frontal para la detección. De este modo, la pantalla táctil estará visible y el tiempo transcurrido puede ser claramente observado durante la carrera. Con la vista previa de la cámara visible, también será más fácil el posicionamiento preciso del dispositivo en el poste. Por otro lado, como en general la calidad de las cámaras frontales tiende a ser inferior, esto podría influir en el rendimiento del sensor. A la derecha: un Samsung Galaxy Note con cámara frontal, bien sujeto al poste con una cuerda de alambre (por cortesía de Lynn Busse, CleverK9s, Wisconsin, EE.UU.
  • Ventana de Ajustes 2
  • Entrar en modo avión: durante pruebas oficiales puede ser aconsejable poner tu teléfono Android en modo avión. Desconectando radiocomunicaciones (telefonía móvil), evitas que la App sea  inesperadamente interrumpido por una llamada entrante. Ten en cuenta que el WiFi o Bluetooth no se desconecta n ya que se utilizan para la comunicación con la App JumpStart Remote. Nota: desde Android 4.2 ("Jelly Bean") ya no se permite Calibración Automática exitosamodificar programáticamente los ajustes globales del dispositivo, por lo que habrá que entrar manualmente en modo avión antes de ejecutar JumpStart.
  • Calibración Automática: esta característica es el cerebro de la aplicación JumpStart. Emplea técnicas de Visión por Computador e Inteligencia Artificial para reconocer activamente el  poste opuesto del obstáculo, para que nada del fondo o segundo plano quede incluído en el área de detección. A la derecha, una vista previa de la cámara con una correcta detección automática del poste indicada en verde.
  • Recalibrar cada vez: esta opción hace que la App recalibre el algoritmo cada vez que se pulse el botón lateral. Si el dispositivo está bien fijado al poste de modo que no se puede mover accidentalmente al pulsar el botón lateral, esta opción se puede desactivar.
  • Usar Flash: Esta opción permite utilizar el flash de la cámara para crear mejor contraste e iluminación lo cual debería mejorar la detección automática en determinados casos. Como las cámaras delanteras no suelen tener flash, esta función solo es aplicable a las cámaras traseras.
  • Recorte Sup. del Sensor: en el caso de que la "Calibración Automática" no esté seleccionada o fallara debido a un pobre reconocimiento visual, JumpStart supone que el poste opuesto se encuentra exactamente en el centro de la vista de la cámara y detectará movimiento en una estrecha franja de arriba a abajo de la imagen. Esto significa que en caso de postes cortos no es improbable que se detecteCalibración por defecto incorrecta movimiento en un segundo plano por encima del poste. Estos falsos positivos podrían erróneamente disparar el cronómetro. Para reducir al mínimo las posibilidades de que esto suceda, se puede recortar un porcentaje de la parte superior de pantalla que quedará excluido de la zona de detección. El valor por defecto es 0% (sin recortar). La imagen de la derecha muestra una vista de la cámara con la franja de detección por defecto y recortada 20% de la parte superior. Observe que la cantidad de recorte en este caso es insuficiente. Además, el dispositivo está mal centrado en el obstáculo, con el riesgo de detección de falsos positivos de gente en segundo plano o incluso el perro corriendo sobre la pasarela.
  • Ventana de Ajustes 3

    Sonido

  • Silencio: seleccionando esta opción silenciará la App. Si no está seleccionada, la App producirá señales acústicas y, opcionalmente, instrucciones de voz (ver a continuación). Ten en cuenta que todo audio se reproduce a volumen máximo para que se oiga mínimamente bien en un campo de agility normalmente ruidoso. Además, recuerda que los botones de volumen del dispositivo aquí tienen un significado completamente nuevo, el de activar el sensor. Mientras que la App se esté ejecutando ya no sirven para ajustar el volumen.
  • Instrucciones de Voz: si seleccionada, la App empleará voz hablada para indicar al guía que se prepare, y después de la carrera para pronunciar el tiempo resultado en segundos y cientos de segundos, junto con el nombre del perro. El motor de Texto-A-Voz (Text-To-Speech, TTS) es un componente estándar del sistema Android. Sin embargo, según el idioma seleccionado, tu dispositivo podría tener que descargar archivos de idioma adicionales. En este caso, la App se interrumpirá y dará el control a Google Play Store. Una vez que los archivos de idioma necesarios estén descargados y siempre mientras permanezcan en el dispositivo, la App será capaz de localizarlos y no tendrá que descargarlos de nuevo.
  • Agility

    Los dos parámetros siguientes se refieren a las dimensiones del salto en el que se colocará el dispositivo. Es muy importante especificarlos correctamente. Estas dimensiones se utilizan, junto con las características de la cámara, para calcular el tamaño esperado del poste opuesto en la vista de la cámara. Si las dimensiones son incorrectas, calibración y posterior detección fallarán.
  • Ancho de Valla: esto es la distancia entre ambos postes del salto. Típicamente alrededor de 1200mm. Aquí se podría restar el grosor del smartphone para una mayor precisión.
  • Acho del ala opuesta: esto es el ancho del poste opuesto, visto desde la cámara como una franja vertical rectangular. Típicamente del orden de 40mm.
  • Ventana de Ajustes 4

    Conectividad

  • Tipo de Conexión: a través de esta opción de configuración, se especifica la tecnología inalámbrica a utilizar para la comunicación con otros dispositivos, sea otra aplicación JumpStart Pro en otro obstáculo, o la aplicación JumpStart Remote. La comunicación puede ser a través de Bluetooth o Wi-Fi Direct. Esta última opción sólo está disponible en los dispositivos con Android 4.1 ("Jelly Bean") o superior. Tenga en cuenta que, lógicamente, ambos dispositivos deben utilizar la misma tecnología de comunicación, por lo que para el uso de Wi-Fi Direct se necesitaría dos dispositivos Jelly Bean. Nota: a partir de v1.4 se añadió un tercer tipo de conexión, AllJoyn, permitiendo establecer conexiones de modo transparente a través de cualquier tecnología de transporte disponible. Más detalles en la página de JumpStart Pro.
  • Control Remoto: esta opción indica que la App sera controlada remotamente a través de la App "JumpStart Remote" (inédita) en otro dispositivo, típicamente un tablet.
  • Papel: en el caso de JumpStart Pro, se puede indicar el papel del dispositivo: funcionamiento autónomo (tanto sensor de salida como de llegada), sensor para salto de salida (Maestro) o sensor para salto de llegada (Esclavo). En la versión lite JumpStart, esta opción aparece en gris y el papel del dispositivo corresponde siempre al funcionamiento independiente.
  • Depuración

    Menú solo accesible en versiones ß.

    Crear Equipos

    EquiposJumpstart mantiene una base de datos muy sencilla de equipos, que constan de perros y guías. La base de datos de equipos en la futura App JumpStart Remote será mucho más completa, pero para esta aplicación sensor, los nombres de perro y guía son todo lo que se necesita. La App no puede activarse sin haber creado al menos un equipo. Por lo tanto, si estás aún en la pantalla de ajustes pulsa el botón atrás para volver a la pantalla principal y después, pulsa el botón de menú. En el menú selecciona "Equipos" para ir a la pantalla correspondiente, que contiene una tabla de los equipos existentes. La primera columna es el número del equipo, el segundo el nombre del perro y la derecha el nombre del guía. Si la tabla está vacía ("no data" se muestra), pulsa el botón menú y selecciona "Nuevo Equipo". Aparecerá una ventanita de diálogo solicitando los nombres de perro y guía. Si deseas eliminar/editar un equipo existente, selecciónalo en la tabla y mantén el dedo sobre ello. Un pequeño menú aparecerá, permitiendo eliminar/editar la entrada.
    La base de datos puede guardarse y leerse en/de un fichero.CSV (un formato estándar editable en por ejemplo MS Excel).

    Colocar el Dispositivo sobre el Obstáculo

    ColocaciónCuando tengas por lo menos un equipo con que trabajar, estás listo para colocar el dispositivo en el obstáculo. Cuando colocas tu smartphone en un salto, ten en cuenta las siguientes consideraciones importantes:
    Usando el sensor de proximidad de Android, JumpStart sabe cuando está colocado contra un poste, y entonces desactiva los botones de hardware frontales para que no se toquen por accidente.

    Presionar el Botón Lateral

    Ahora estamos listos para proceder. Pulsa el botón lateral (botón de volumen), teniendo cuidado de no cubrir el objetivo con la mano. En general, JumpStart turnará a través de todos los equipos de la base de datos. El botón 'Subir Volumen' corresponde a 'Siguiente Equipo', y el botón 'Bajar Volumen' a 'Equipo Anterior'. En caso de que el sensor ya estuviera en marcha, pulsar el botón 'Bajar Volumen' vuelve a iniciar el mismo equipo actual. Al pulsar el botón lateral el sensor se pone en marcha, iniciando el siguiente curso de eventos:
    1. Se escucha un breve pitido, confirmando el pulsar del botón 
    2. La App efectúa la calibración automática (si así configurada). Esto puede tardar hasta 30 segundos. Durante la calibración se escucha un tic-tac contínuo.
    3. Si la calibración sale bien, se escucha un sonido de confirmación alegre; en el caso contrario uno negativo indicando que la App recurre a la calibración por defecto.
    4. El motor TTS engine anuncia el siguiente equipo, llamando el nombre del perro y "¡en tu marca! ¿Listo?". Se inicia la cuenta atrás (ver 'Tiempo hasta pitido de salida' bajo Configuración). La cuenta atrás se muestra en la pantalla, pero solo es visible en el caso de usar una cámara frontal.
    5. Se oye un silbato de árbitro, indicando que el equipo actual puede comenzar su carrera.
    6. Cuando la App detecte el salto de salida, se oye una fuerte bocina deportiva.
    7. El cronómetro corre (otra vez, solo visible en caso de cámara frontal) y el sensor duerme durante un tiempo especificado (ver 'Carrera mínima').
    8. Alcanzado el anterior tiempo mínimo, el sensor se despierta otra vez e intenta detectar el salto de llegada.
    9. Cuando la App detecte el salto de llegada, la bocina suena otra vez.
    10. Se muestra el tiempo resultado en la pantalla (visible o no), y es pronunciado por el motor TTS, precedido del nombre del perro. Los resultados se almacenan en la base de datos.
    11. El dispositivo está listo para otro pulsar del botón.

    Mostrar la Base de Datos de Resultados

    ResultadosCuando ya estés harto de correr, puedes quitar el dispositivo del obstáculo y consultar la base de datos de resultados. Para ello, pulsa el botón de menú en selecciona "Resultados" para ir a la pantalla correspondiente, que contiene una tabla de tiempos de carrera. La primera columna contiene la fecha y la hora en que se inició la carrera, la segunda, el nombre del perro, y la última, el tiempo de carrera. Cualquier entrada individual puede eliminarse manteniendo el dedo sobre ella y seleccionando "Suprimir". Es posible exportar la base de datos de resultados a un fichero .CSV (valores separados por comas, legible por Excel por ejemplo) estándar a través del botón de menú o botón de desbordamiento de la barra de acción.
    Por el momento, la base de datos de resultados, como la base de datos de equipos, es muy simple, y se esperan más funcionalidades en futuras versiones, así como en la aplicación de control remoto. Estoy abierto a vuestras sugerencias.

    Flyball

    Durante las pruebas ß, recibí numerosas reacciones positivas de la comunidad de Flyball. En estos momentos la App se puede utilizar perfectamente para cronometrar carreras de Flyball de perros individuales. También puede ser utilizado para obtener el tiempo total de un equipo de 4 perros, ajustando el tiempo total de una 'Carrera mínima'. Para un equipo de 4 perros sin embargo, no es posible obtener los 4 tiempos individuales por separado, puesto que el sensor no sería capaz de distinguir entre el salto de llegada de un perro y el salto de salida del siguiente. Quién sabe, tal vez en una versión futura, el algoritmo podría ser sofisticado para distinguir la dirección de un salto. Hasta entonces, estoy abierto a las sugerencias de la comunidad Flyball o sobre cualquier otro, uso alternativo imaginable de la App.

    Hacerse ß-tester

    Get It On Google PlayHasta ahora, la App ha estado disponible para un número limitado de beta-testers. A partir de ahora, una versión estable de producción estará disponible gratuitamente en la Google Play Store para todos los usuarios de Android. Sin embargo, si aún quieres participar en próximas pruebas beta de JumpStart, necesitarás una cuenta de Google+ (que es probable si eres dueño de un dispositivo Android) y enviarme un e-mail desde esa cuenta a support@tomdroid.com. Por favor, menciona al menos tu nombre, tu ubicación, el modelo del dispositivo Android y la versión de Android  (Ajustes -> Acerca del teléfono -> Versión del Firmware). Te agregaré a la Comunidad Google+ JumpStart App Users, donde puedes optar por participar ("opt-in") y descargar la App a tu dispositivo desde Google Play Store: https://play.google.com/apps/testing/com.tomdroid.jumpstart (este enlace opt-in solo funciona para miembros de la Comunidad).
    Agradezco todos vuestros comentarios, sugerencias para nuevas características, errores e informes de fallos a través de la página de la Comunidad Google+, donde también publicaré mis respuestas a las preguntas. También, no dudes en enviarme fotos o videos de tu montaje o uso particular, para que los podemos compartir con la comunidad de usuarios.
    Finalmente, para mantenerte informado sobre todas las novedades de la App, síguenos en Facebook.

    Tom.
    Diciembre 2013.