Laboratorio Virtual de Robótica RobotGYM V2

Carlos Eleazar Peterson García y Miguel José Noboa Hurtado

Pontificia Universidad católica Madre y Maestra, PUCMM

Introducción:

La robótica ha experimentado un crecimiento constante tanto en el ámbito industrial como en el académico, impulsada por la necesidad de automatizar procesos, el desarrollo de nuevas tecnologías y el creciente interés por sistemas inteligentes. A medida que esta disciplina se consolida como un área clave en la ingeniería y la innovación, se vuelve crucial contar con entornos de aprendizaje accesibles, que permitan a los estudiantes experimentar, resolver y construir conocimiento desde la práctica. La educación en robótica no solo requiere herramientas físicas, sino también plataformas flexibles que faciliten el aprendizaje progresivo [1], [3].

En respuesta a esta necesidad educativa, surge el presente proyecto, desarrollado por los estudiantes Miguel José Noboa Hurtado y Carlos Eleazar Peterson García, de la carrera de Ingeniería en Ciencias de la Computación de la Pontificia Universidad Católica Madre y Maestra (PUCMM). Bajo la supervisión de la Escuela de Computación y Telecomunicaciones y tiene como propósito principal el diseño y la mejora de un laboratorio virtual de robótica que permita a los estudiantes practicar y experimentar con conceptos esenciales de esta área, sin las barreras logísticas que a menudo impiden el acceso a equipos físicos especializados.

La motivación principal de esta iniciativa radica en los desafíos presentes en la enseñanza de robótica a nivel universitario, tales como: acceso limitado a hardware, alta demanda de recursos tecnológicos, y la necesidad de enfoques más inclusivos e interactivos. Los entornos de aprendizaje tradicionales en robótica presentan limitaciones que dificultan su implementación, especialmente en instituciones donde los recursos son escasos o deben compartirse entre múltiples grupos [2]. Ante esto, un laboratorio virtual se convierte en una herramienta poderosa para democratizar el acceso al conocimiento técnico de la robótica.

Además, la propuesta de RobotGYM V2 se alinea con tendencias globales en la transformación educativa, en las que el aprendizaje virtual, la inteligencia artificial y la simulación se integran cada vez más como componentes esenciales de la formación profesional. Existe una demanda creciente por infraestructura digital que complemente la enseñanza práctica, permitiendo a los estudiantes aprender en cualquier lugar y en cualquier momento, adaptando el ritmo de aprendizaje a sus propias necesidades [3].

El mercado y por tanto las necesidades del mercado de la robótica han aumentado a gran escala con el transcurso de los años. Se ha visto un crecimiento global desde los 59 mil millones de dólares en el 2019 a 71 mil millones en el 2023. Market Research Future estima un crecimiento exponencial en los próximos años [4]. Este crecimiento aplica para los robots industriales, colaborativos, médicos y otros. Globalmente se ve un crecimiento constante de la robótica lo cual aumenta la necesidad de personal capacitado e interesados en aprender sobre la robótica.

El interés de los estudiantes de amplio rango de edades en el área de robótica crece de forma continua a lo largo de los años. Existen varios estudios mostrando que la integración de las áreas prácticas de la robótica facilita y fomenta el crecimiento técnico e intelectual de los estudiantes en las áreas de programación e ingeniería. [5] [6] Si bien la universidad dispone de los recursos fundamentales para la enseñanza de la robótica, actualmente no cuenta con un sistema estructurado y accesible que facilite una formación introductoria en esta área. Aunque existe un club de robótica impulsado por estudiantes con interés particular en el tema, los materiales y herramientas destinados a nivelar conocimientos básicos son limitados, y la curva de complejidad para incorporarse resulta considerable. En este contexto, el presente proyecto busca responder a esta necesidad, ofreciendo una plataforma que brinde recursos accesibles para introducir a los estudiantes en el campo de la robótica.

Desarrollo y metodología:

La creación de esta plataforma se encuentra dividida en dos partes, la página web o el “frontend” y el sistema de control de robots o el “backend”. ROS (Robot Operating System) es un sistema de código abierto con gran aceptación y uso en las áreas educativas, científicas, de investigación e industria general. [7] El modelo de robots utilizado es el RSLK-MAX de Texas Instruments, un robot diseñado para el ambiente educativo. [8] Sobre todo, la universidad cuenta con una amplia cantidad de robots. Por otro lado la viabilidad de este proyecto fue estudiada por el Ingeniero Anthony Beato con el desarrollo del prototipo del robot gym [9] y existe un incentivo de utilizar los recursos existentes.

Para que los robots se comuniquen con ROS estos tienen que estar conectados en la misma red. Aunque es de gran beneficio utilizar los RSLK-MAX ya existentes de la universidad, estos no cumplen con este requerimiento. Utilizando el sistema de conexión del robot gym original de Anthony Beato, podemos interconectar una raspberry pi que funcione como puente de comunicación entre la red ROS y el robot en cuestión.

El robot tiene un conector tipo micro USB, usando un cable USB tipo A a micro USB podemos conectar el robot con una raspberry pi. Esta conexión habilita el uso de comunicación serial bidireccional. Las raspberry pis, siendo computadoras de bajo consumo pueden estar conectadas a la red de ROS y recibir llamadas de movimiento y mandar información por la red. Usando la conexión serial la raspberry pi puede mandar el mensaje al RSLK y el RSLK puede mandar información de sus sensores a la pi.

Cada Raspberry Pi ejecuta un nodo de ROS que controla su respectivo robot. En ROS, un nodo es una unidad funcional que permite la comunicación dentro del sistema. Dentro del nodo de cada Raspberry Pi se crean dos tópicos, llamados «cmd_vel» y «status».

Los tópicos en ROS funcionan como canales de comunicación entre nodos. El tópico «cmd_vel» actúa como suscriptor: recibe comandos de movimiento que indican al robot cómo debe desplazarse. Por otro lado, el tópico «status» funciona como publicador: transmite información sobre el estado de los sensores del robot, enviando datos cada vez que estos detectan un cambio.

Todos los robots están conectados a la misma red WiFi, lo que significa que comparten una única red ROS. Dentro de esta red se encuentra el controlador principal: una computadora encargada de enviar y recibir solicitudes dirigidas a los robots, así como de comunicarse con la página web. ROS proporciona un sistema de comunicación robusto y eficiente para aplicaciones robóticas; sin embargo, carece de mecanismos de seguridad fundamentales como autenticación, cifrado de datos y control de acceso, lo que lo hace vulnerable en entornos no controlados o expuestos a redes externas.

Una de las funcionalidades de ROS es la posibilidad de visualizar los tópicos activos en la red. Si una persona externa lograra acceder a esta red, podría identificar los tópicos disponibles y enviar comandos de movimiento a todos los robots, generando conflictos para los usuarios legítimos de la aplicación. Aunque el control de acceso a la red puede manejarse de forma básica mediante la configuración del router por ejemplo, restringiendo conexiones a las IPs de los robots y del controlador principal, la principal preocupación radica en la posibilidad de subir rutinas ROS desde la página web. Estas rutinas se ejecutan localmente en la computadora principal, dentro del entorno de ROS.

Para evitar que usuarios no autorizados envíen comandos a los robots, se implementa un mensaje personalizado en los tópicos cmd_vel, utilizado para validar y controlar las instrucciones de movimiento.

El tipo de mensaje estándar utilizado en ROS para el control de movimiento de robots es el mensaje Twist, el cual contiene campos para representar velocidades lineales en los ejes x, y, z y velocidades angulares en esos mismos ejes. Con el fin de abordar las limitaciones de seguridad en la comunicación, se desarrolló una versión personalizada de este mensaje denominada SecureTwist, que extiende la estructura original de Twist incorporando un campo adicional para una clave secreta. Esta clave actúa como un mecanismo de autenticación, asegurando que únicamente los mensajes con una clave válida puedan ser aceptados y ejecutados por los robots.

De esta manera, la comunicación entre el controlador principal y los robots deja de utilizar el mensaje Twist convencional y pasa a realizarse mediante SecureTwist, fortaleciendo así la integridad y autenticidad de los comandos transmitidos.

Estas llaves son generadas por la página web cuando algún usuario intenta crear una sesión o intenta controlar un robot de manera legítima en la aplicación. La página web manda estas claves a la computadora principal. Cuando la computadora recibe estas claves esto les deja saber a los robots individuales. Al recibir esta llamada, estos solicitan una copia de las llaves que les pertenecen. Es bueno notar que las llaves son individuales para cada robot, por tanto cada robot solo recibirá las llaves que le pertenecen.

Si de alguna manera un usuario intenta mandar un mensaje no legítimo o sin permiso. La única manera que este mensaje será procesado sería si tiene la clave del robot donde está mandando el mensaje. De lo contrario el sistema manda un mensaje de advertencia y no procesa la llamada. Este peligro existe y fue resuelto ya que los usuarios podrán subir sus propias rutinas, las cuales podrán correr código ROS común. Esta implementación nos da seguridad que las rutinas de los usuarios solo podrán afectar a los tópicos donde solo tengan acceso.

Esto plantea un problema en la comunicación entre la computadora principal, que opera dentro de la red local de ROS, y la página web. No se puede garantizar que ambos componentes —la página web y el controlador principal— se encuentren en la misma red, lo que introduce posibles vulnerabilidades, especialmente en cuanto a la autenticidad e integridad de los datos transmitidos. Para abordar esta situación, se utiliza gRPC como protocolo de comunicación entre la web y la computadora principal. Gracias a su alta velocidad, baja latencia y facilidad de integración con distintos lenguajes de programación, gRPC resulta una solución ideal para este proyecto [10]. Mientras que los robots se comunican entre sí mediante ROS, la web y la computadora principal intercambian datos a través de gRPC.

Esta arquitectura también resuelve el problema de la distribución segura de llaves a los robots. En un entorno puramente ROS, no existe un mecanismo confiable para enviar llaves de forma segura; sin embargo, al combinar ROS con gRPC, este proceso se vuelve más seguro y eficiente. El flujo funciona de la siguiente manera: cuando la computadora principal detecta un cambio en el conjunto de llaves o recibe nuevas, envía un mensaje mediante ROS notificando a los robots que ha habido una actualización. Al recibir esta notificación, cada robot realiza una solicitud por gRPC para obtener sus nuevas llaves personales, lo que garantiza la seguridad, privacidad y autenticidad tanto de los robots como del sistema en general.

En este laboratorio virtual de robótica, la transmisión de video en tiempo real es esencial para permitir la supervisión y el control remoto de los robots. Para lograr este objetivo, hemos implementado WebRTC (Web Real-Time Communication), una tecnología diseñada para la comunicación audiovisual entre navegadores. Una de las principales razones para utilizar WebRTC es su capacidad de ofrecer baja latencia inferior a 200 milisegundos, lo que permite una experiencia fluida. A diferencia de otras soluciones tradicionales como RTMP (Real-Time Messaging Protocol), que suelen presentar latencias de entre 2 y 5 segundos, o HLS (HTTP Live Streaming), que puede superar los 10 segundos[11].

Además de su eficiencia en el tiempo de respuesta, WebRTC es una alternativa recomendable por su compatibilidad nativa con la mayoría de los navegadores modernos y por no requerir la instalación de software adicional, lo que facilita el acceso desde distintos dispositivos. Esta tecnología también ofrece mecanismos de seguridad integrados, como el cifrado de extremo a extremo, lo cual resulta fundamental en entornos educativos y científicos donde se manejan datos sensibles.

Diagrama de Bloques:

La página web está diseñada para ofrecer una experiencia interactiva y simplificada a estudiantes, docentes y administradores. Cuenta con una página principal que proporciona noticias e informaciones generales sobre el laboratorio, los experimentos y los robots. Además, dispone de una sección dedicada al laboratorio, donde los usuarios pueden acceder a sus experimentos. Estos experimentos permiten controlar robots en tiempo real, así como grabar videos, capturar imágenes y realizar observaciones detalladas de los movimientos del robot. Por otro lado, el sistema incluye un módulo de administración exclusivo para superadministradores, desde el cual se gestionan los experimentos, usuarios y configuraciones generales de la plataforma.

Parte de los requerimientos del proyecto es el mantenimiento y calidad del software. Docker es una parte esencial del software. Este crea contenedores, ambientes controlados, donde corren las diferentes aplicaciones. La aplicación para los nodos de los robots individuales en cada raspberry pi corre en un contenedor de docker. Al igual que la aplicación en la computadora principal y la página web, todos estarán corriendo en contenedores de docker. Desplegar las aplicaciones en contenedores crea determinismo, obtener el mismo resultado sin importar factores externos, al momento de correrlas. Si en el futuro se desea intercambiar la raspberry pi por otra, o mover la posición de la computadora principal, no hay que preocuparse de la configuración interna de la aplicación, solo que las computadoras puedan usar docker.

Los contenedores de docker también son utilizados en otra parte del proyecto. Los usuarios de la aplicación pueden subir sus propias rutinas para controlar los robots. Esto implica que los usuarios necesitan un ambiente de desarrollo que imita la funcionalidad de la aplicación desplegada. El proyecto provee 2 maneras de desarrollar rutinas. La primera es mediante un contenedor de docker. Este estará conectado con un folder en la computadora del usuario, el cual puede crear una cantidad ilimitada de rutinas. El usuario puede probar si lo que hizo funcionó al subir o correr el contenedor. La segunda forma es mediante una máquina virtual. Esta también funciona como ambiente de prueba, pero es mucho más visual e interactivo que un contenedor. Esto se obtiene a cambio de rendimiento, donde la máquina virtual está garantizada a correr más lenta que un contenedor de docker. Cuando el usuario termine de crear su rutina este podrá entrar a un experimento dentro de su laboratorio, seleccionar el robot, mandar la rutina y probar como su código funciona en la vida real.

Los robots RSLK necesitan una raspberry pi para ser controlados, y estas necesitan una batería externa para que funcionen. Para que el robot sea móvil se necesita crear una estructura física donde colocar la raspberry pi y su batería. Utilizando los motores del robot y agujeros presentes podemos crear un estante o “hat” para el robot. Debido a que es un robot diferencial, que tiene 2 ruedas para moverse, el balance de este se tiene que tomar en cuenta al momento de agregar más peso encima de él. La raspberry pi y la batería se posicionan entre las ruedas y el rodillo esférico, la bola trasera que ayuda a balancear el robot. Este hat está hecho de paletas y palillos de madera. Son fáciles de remover si es necesario y de bajo costo. Para prevenir que las raspberry y la batería se caigan durante movimiento, estas están soportadas por velcro adhesivo.

(Figura 1) Robot RSLK MAX básico

(Figura 2) Hat para el robot RSLK MAX

(Figura 3) Unificación del hat y el robot

(Figura 4) El hat mas el robot con el peso de la batería y raspberry pi.

Resultados:

El laboratorio virtual Robot Gym permite a los estudiantes ejecutar experimentos robóticos en tiempo real a través de una interfaz web, eliminando la dependencia directa del hardware físico así disminuyendo los requerimientos técnicos para el aprendizaje de robótica. Esta logra una integración estable entre ROS y gRPC, lo que facilita una comunicación segura y eficiente entre los robots físicos y la plataforma web. Además, esta incorpora una tecnología de transmisión de video en tiempo real utilizando WebRTC, con latencias menores a 200 ms, optimizando así la experiencia del usuario durante el control remoto de los robots.

La plataforma es desplegada en su totalidad mediante contenedores Docker, lo que asegura entornos reproducibles y fácilmente escalables. Este enfoque permite una gestión más efectiva de las aplicaciones tanto en Raspberry Pi como en el servidor principal.

Se comprobó que el sistema de autenticación basado en mensajes SecureTwist es efectivo al prevenir accesos no autorizados de los robots. Cada robot responde exclusivamente a comandos asociados con su llave única, lo que asegura un entorno seguro incluso al permitir la carga de rutinas creadas por los usuarios. Esto demuestra la viabilidad técnica del laboratorio virtual, fundado en un base sólida para futuras expansiones.

Conclusiones:

El desarrollo de RobotGYM V2 representa un avance significativo en la modernización de la enseñanza de la robótica en el contexto universitario, proporcionando un entorno virtual que replica de manera eficaz los desafíos del control robótico físico. Esta solución responde a la creciente necesidad de plataformas accesibles, seguras y prácticas para el aprendizaje autónomo en el área de robótica.

La integración de tecnologías como ROS, gRPC y WebRTC permite superar barreras técnicas relacionadas con la conectividad, la latencia y la seguridad, aspectos fundamentales para una experiencia educativa y remota de calidad. La modularidad del sistema facilita su mantenimiento y escalabilidad, lo cual le permite adaptarse a futuros cambios tecnológicos o tipos de robots.

Desde una perspectiva pedagógica, el laboratorio fomenta el desarrollo de las habilidades técnicas mediante la práctica directa y la experimentación, introduciendo nuevos conceptos no conocidos en clases formales o reforzando los ya existentes. Además, el hecho de que los estudiantes puedan subir y correr sus propias rutinas incentiva la creatividad, la autonomía y el pensamiento crítico y lógico.

En conclusión, el Robot Gym v2 no solo aborda una necesidad educativa, sino que establece un precedente para futuras iniciativas de laboratorios virtuales en otras áreas del aprendizaje e ingeniería. Su diseño abierto reproducible y seguro lo posiciona como una herramientas versátil que puede extenderse más allá del aula tradicional, promoviendo una educación de robótica más dinámica, accesible y sencilla, preparada para los retos del futuro.

(Figura 5) Página web, control manual del robot

Referencias:

[1] J. Smith, Introduction to Robotics and Automation, 3rd ed. New York, NY, USA: Springer, 2021.

[2] T. Lam, “Advancing Robotics Education Challenges Opportunities,” Botificial Intelligence Society (HK), 2025. https://www.academia.edu/127642699/Advancing_Robotics_Education_Challenges_Opportunities (accessed Apr. 03, 2025).

[3] M. Vasou, Georgios Kyprianou, Angelos Amanatiadis, and S. A. Chatzichristofis, “Transforming Education with AI and Robotics: Potential, Perceptions, and Infrastructure Needs,” Lecture notes in business information processing, pp. 3–18, Jan. 2025, doi: https://doi.org/10.1007/978-3-031-81322-1_1.

[4] R. Melissa, “Robots Among Us – The Global Robotics Market Growing Rapidly – Statzon Blog,” Statzon.com, Dec. 04, 2024. http://statzon.com/insights/global-robotics-market-growing-rapidly (accessed Jul. 21, 2025).

[5] P. Zamora, A. Lozada, J. Buele, and Fátima Avilés-Castillo, “Robotics in higher education and its impact on digital learning,” Frontiers in Computer Science, vol. 7, Jun. 2025, doi: https://doi.org/10.3389/fcomp.2025.1607766.

[6] F. Ouyang and W. Xu, “The effects of educational robotics in STEM education: a multilevel meta-analysis,” International Journal of STEM Education, vol. 11, no. 1, Feb. 2024, doi: https://doi.org/10.1186/s40594-024-00469-4.

[7] D. Portugal, R. P. Rocha, and J. P. Castilho, “Inquiring the robot operating system community on the state of adoption of the ROS 2 robotics middleware,” International Journal of Intelligent Robotics and Applications, Oct. 2024, doi: https://doi.org/10.1007/s41315-024-00393-4.

[8] “Texas Instruments Robotics System Learning Kit User guide Robot Systems Learning Kit (TI-RSLK) User Guide 2 Texas Instruments Robotics System Learning Kit: The Solderless Maze Edition SEKP166.” Accessed: Apr. 02, 2025. [Online]. Available: https://www.ti.com/lit/ml/sekp166/sekp166.pdf

[9] A. Beato,»ROBOT GYM DE ACCESO REMOTO CON SISTEMAS EMBEBIDOS», Ago 2024.

[10] R. Le, “gRPC vs REST speed comparison,” SHIFT ASIA | Dev Blog, Dec. 04, 2023. https://shiftasia.com/community/grpc-vs-rest-speed-comparation/

[11] Santos-González, I. & Rivero, Alexandra & Molina-Gil, Jezabel & Caballero-Gil, Pino. (2017). Implementation and Analysis of Real-Time Streaming Protocols. Sensors. 17. 10.3390/s17040846.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.