Robot App

May 8, 2026 · View on GitHub

English | 简体中文 | Deutsch | Français | Español | 한국어

AVISOS

  1. Seguridad: Asegúrate siempre de operar en un entorno seguro. Ten en cuenta que tu teléfono podría dañarse en una colisión. Se requiere un cuidado especial al usar el control automatizado (por ejemplo, seguimiento de personas o política de conducción). Asegúrate de tener siempre un controlador de juegos conectado y estar familiarizado con la asignación de teclas para poder detener el vehículo en cualquier momento. ¡Usa bajo tu propio riesgo!
  2. Aplicación en desarrollo: La aplicación está en desarrollo y puede fallar o mostrar un comportamiento inesperado dependiendo del modelo de tu teléfono y la versión del sistema operativo. Asegúrate de probar todas las funcionalidades sin las ruedas conectadas. ¡Usa bajo tu propio riesgo!

Pantallas de la Aplicación

Menú Principal

La aplicación comienza con una pantalla de menú que muestra todas las pantallas disponibles. La pantalla de configuración se puede abrir con un clic en el ícono en la esquina superior derecha. Al hacer clic en los otros íconos, el usuario puede acceder a varias pantallas cuyas funcionalidades se explican a continuación.

Menú Principal Menú de Configuración Menú de Configuración Menú de Configuración

Menú de Configuración

Conexión USB

Toca el ícono USB para abrir las opciones USB. El menú desplegable se usa para configurar la velocidad en baudios. El valor predeterminado es 115200 y no deberías necesitar cambiarlo a menos que modifiques el firmware de Arduino. La aplicación intentará conectarse automáticamente, pero en caso de que encuentres problemas, puedes usar este interruptor para desconectar/conectar.

Conectando dispositivo Botón de desconexión

Permisos

Aquí puedes verificar los permisos de la aplicación y ajustarlos si es necesario.

Transmisión de Video

Puedes elegir entre WebRTC y RTSP para transmitir video a un dispositivo externo. La aplicación controladora del teléfono y el servidor node-js necesitan que esto esté configurado en WebRTC. El controlador de Python espera que la transmisión esté configurada en RTSP.

Conexión Bluetooth

Asegúrate de que tu dispositivo Android tenga soporte BLE (Bluetooth Low Energy). Si tu versión de Android es mayor o igual a 7.0, también necesitas activar el servicio de ubicación y permitir el permiso de ubicación en la configuración para buscar dispositivos BLE cercanos. Para habilitar BLE, cambia el modo de conectividad de USB a Bluetooth en el menú de configuración. Obtendrás un ícono de Bluetooth en la parte superior de la pantalla de inicio. Toca el ícono de Bluetooth para iniciar el escaneo BLE; toma 4 segundos escanear y obtener una lista de todos los dispositivos OpenBot BLE cercanos. Conéctate con tu OpenBot tocando el botón Conectar. Después de una conexión exitosa, el botón Conectar cambiará a Desconectar. Ahora puedes volver a la pantalla de inicio.

Dispositivos BLE Conectando dispositivo Botón de desconexión

Exploración Libre

Exploración Libre ofrece un control simple del robot con actualizaciones en tiempo real e información sobre la batería, velocidad y distancia de las superficies.

Exploración Libre

  • Batería: El ícono de la batería muestra los niveles de batería en tiempo real del robot conectado.
  • Estado de Conducción: Hay 3 estados de conducción mostrados en la vista:
    • D -> Conducción, cuando el robot está avanzando
    • N -> Neutro, cuando el robot está estacionario
    • R -> Reversa, cuando el robot está retrocediendo El volante gira proporcionalmente al ángulo de dirección.
  • Velocidad: El velocímetro muestra la velocidad del robot.
  • Sonar: La distancia libre frente al robot en cm.
  • Control: Controlador, Modo de Conducción y Velocidad se usan para controlar la configuración del robot como se describe en la sección de control.

Recolección de Datos

Interfaz simple para la recolección de conjuntos de datos.

Recolección de Datos

  • Servidor: Si tienes la aplicación web para el entrenamiento de políticas en funcionamiento, puedes seleccionarla aquí para cargar datos automáticamente.
  • Resolución de Vista Previa: Se usa para cambiar entre resoluciones de vista previa de la cámara. Hay 3 configuraciones:
    • FULL_HD (1920x1080p)
    • HD (1280x720p)
    • SD (640x360)
  • Resolución del Modelo: Se usa para cambiar entre resoluciones de imágenes guardadas para entrenar diferentes modelos.
  • Guardar/Descartar los Datos Recogidos: el proceso de recolección de datos se puede controlar desde la pantalla o de forma remota, por ejemplo, desde un controlador Bluetooth. Al usar un controlador Bluetooth, puedes:
    • Presionar el botón A para iniciar el proceso de recolección de datos
    • Presionar el botón A nuevamente para detener la recolección de datos y guardar los datos recogidos en un archivo .zip
    • Alternativamente, presionar el botón R1 para detener la recolección de datos sin guardar los datos recogidos (por ejemplo, debido a una colisión inesperada con el entorno)
    • Recuerda usar el fragmento de asignación de controladores para asegurarte de estar usando los botones correctos.

Asignación de Controladores

Interfaz simple para verificar la asignación de botones y joysticks de un controlador BT conectado.

Asignación de Controladores

Información del Robot

Interfaz simple para obtener información del robot y probar la funcionalidad básica. El Tipo de Robot configurado en el firmware se muestra como texto y animación. Las marcas de verificación en las secciones Sensores, Odómetro de Ruedas y LEDs muestran qué características son compatibles con el robot conectado. La sección Lecturas proporciona las mediciones de sensores más importantes. En la sección Enviar Comandos, los usuarios pueden enviar comandos básicos de motor presionando los botones correspondientes y controlar los LEDs delanteros y traseros con un deslizador.

Información del Robot

Piloto Automático

Interfaz simple para ejecutar modelos de piloto automático.

Piloto Automático

  • Servidor: Si tienes la aplicación web para el entrenamiento de políticas en funcionamiento, puedes seleccionarla aquí y enviar modelos de piloto automático entrenados al robot.
  • Modelo: Elige un modelo entrenado para usar en el modo de piloto automático.
  • Dispositivo: Usa CPU, GPU o NNAPI para la inferencia (más detalles aquí).
  • Hilos: Número de hilos a usar (solo hace una diferencia cuando se selecciona CPU como dispositivo).
  • Control: Controlador, Modo de Conducción y Velocidad se usan para controlar la configuración del robot como se describe en la sección de control.

Seguimiento de Objetos

Interfaz simple para el seguimiento de objetos de 80 clases diferentes. Una breve descripción de los diferentes modelos de IA para el seguimiento de objetos y los puntos de referencia de rendimiento se pueden encontrar en Gestión de Modelos.

Texto alternativo Texto alternativo

  • Velocidad Dinámica: reduce la velocidad del robot en "Modo Automático" si se acerca al objeto rastreado. La velocidad se escala en función del área del cuadro delimitador (funciona mejor en orientación horizontal).
  • Modelo: Elige un detector de objetos basado en el rendimiento de tu teléfono (ver más abajo para resultados de referencia).
  • Objeto: Elige el objeto que deseas rastrear. Los modelos pueden detectar las 80 clases de objetos COCO.
  • Confianza: Umbral de confianza para determinar si se aceptan las detecciones. Aumenta si obtienes detecciones falsas, disminuye si el objeto de interés no se detecta.
  • Dispositivo: Usa CPU, GPU o NNAPI para la inferencia (más detalles aquí).
  • Hilos: Número de hilos a usar (solo hace una diferencia cuando se selecciona CPU como dispositivo).
  • Control: Controlador, Modo de Conducción y Velocidad se usan para controlar la configuración del robot como se describe en la sección de control.

Ten en cuenta que este fragmento requiere ARCore y permiso de cámara. Si tu dispositivo no es compatible con ARCore y continúas de todos modos, la aplicación se bloqueará. En esta pantalla puedes especificar un objetivo a través de un vector 2D con respecto a la posición y orientación actual del robot. El vector 2D contiene la distancia al frente y a la izquierda del robot en metros. Ambos valores también pueden ser negativos y corresponder a la parte trasera y derecha del robot en ese caso. Después de especificar el objetivo y presionar Iniciar, el robot ejecutará una política de IA que intentará alcanzar el objetivo mientras evita obstáculos.

Texto alternativo

Gestión de Modelos

Todos los modelos están cuantizados para un mejor rendimiento en dispositivos integrados. Consulta la sección a continuación para una breve descripción de los modelos disponibles y los resultados de referencia. La precisión media promedio (mAP) se calcula en el conjunto de validación del conjunto de datos COCO Detection 2017. Cada modelo se ejecuta durante aproximadamente 1 minuto; el tiempo de inferencia se promedia en los últimos 100 fotogramas y se informa en fotogramas por segundo (fps). Ten en cuenta que los modelos con mayor resolución de entrada pueden ser mejores para objetos más pequeños a pesar de un mAP más bajo.

Gestión de Modelos

Punto de Referencia

Teléfonos

Nombre del ModeloChipsetRAMSO
Samsung S22 UltraExynos 220012GB12
Samsung S20FE 5GSnapdragon 8656GB12
Huawei P30 ProKirin 9808GB10
Google Pixel 6XLGoogle Tensor12GB12
Xiaomi Mi9Snapdragon 8556GB10
Google Pixel 4XLSnapdragon 8556GB13

MobileNetV1-300 (preinstalado) - mAP: 18%

Detector de objetos SSD con MobileNet V1 como backbone y resolución de entrada de 300x300.

teléfono/dispositivo (fps)CPUGPUNNAPI
Samsung S22 Ultra331330
Samsung S20FE 5G345787
Huawei P30 Pro362510
Google Pixel 6XL354253
Xiaomi Mi9224133
Google Pixel 4XL373645

MobileNetV3-320 - mAP: 16%

Detector de objetos SSD con MobileNet V3 como backbone y resolución de entrada de 320x320.

teléfono/dispositivo (fps)CPUGPUNNAPI
Samsung S22 Ultra301730
Samsung S20FE 5G344228
Huawei P30 Pro322723
Google Pixel 6XL334327
Xiaomi Mi9204510
Google Pixel 4XL323821

YoloV4-tiny-224 - mAP: 22%

Versión pequeña de YoloV4 con resolución de entrada de 224x224.

teléfono/dispositivo (fps)CPUGPUNNAPI
Samsung S22 Ultra311231
Samsung S20FE 5G302114
Huawei P30 Pro271722
Google Pixel 6XL292419
Xiaomi Mi916149.3
Google Pixel 4XL221914

YoloV4-tiny-416 - mAP: 29%

Versión pequeña de YoloV4 con resolución de entrada de 416x416.

teléfono/dispositivo (fps)CPUGPUNNAPI
Samsung S22 Ultra139.813
Samsung S20FE 5G129.47.7
Huawei P30 Pro8.47.66.9
Google Pixel 6XL109.67.2
Xiaomi Mi99.07.35.0
Google Pixel 4XL7.27.46.2

YoloV4-224 - mAP: 40%

YoloV4 con resolución de entrada de 224x224.

teléfono/dispositivo (fps)CPUGPUNNAPI
Samsung S22 Ultra3.75.63.5
Samsung S20FE 5G3.17.14.2
Huawei P30 Pro2.46.20.7
Google Pixel 6XL2.7110.9
Xiaomi Mi92.16.41.7
Google Pixel 4XL1.85.03.7

YoloV5s-320 - mAP: 28%

YoloV5 con resolución de entrada de 320x320.

teléfono/dispositivo (fps)CPUGPUNNAPI
Samsung S22 Ultra211021
Xiaomi Mi913150.8
Google Pixel 4XL121718

YoloV5s-640 - mAP: 34%

YoloV5 con resolución de entrada de 640x640.

|teléfono/dispositivo (fps)|