SDV-Map-Viewer

SDV-Map-Viewer es una aplicación Web de una sola página (Single Web Aplication) diseñada para el control y visualización de múltiples robots móviles (SDV) dentro del laboratorio LabFabEx.

Robots SDVUNx

Los robots móviles SDVUN se encuentran en el Laboratorio Fábrica Experimental de la Universidad Nacional de Colombia. Son pequeños vehículos autónomos con capacidad de detectar y evadir obstáculos a medida que se desplazan dentro del laboratorio. Cada uno cuenta con un Lidar, esto es, un laser infrarojo que escanea el entorno y calcula la distancia a la que se encuentra un obstáculo. Los valores que genera el Lidar son procesados por el Navigation Stack, un conjunto de aplicaciones que corren en la plataforma ROS, para así obtener una pose aproximada del robot dentro de un mapa del laboratorio precargado. A continuación se muestra una colección de fotos de estos robots.

Formas de operar los robots

La operación de los robots SDVUN se puede llevar a cabo por medio de alguna de las siguientes alternativas:

Para determinar las ventajas de una alternativa frente a la otra, se evaluan distintas características: algunas de ellas surgen por la necesidad de teleoperar los robots desde sitios distantes al laboratorio (dadas las restricciones de acceso, producto de la pandemia). En la siguiente lista se muestran los aspectos a evaluar:

A continuación se muestra una comparación de estas alternativas:

Carac. Terminal RViz PRIA
Operación remota NO NO SI
Feedback NO SI NO
Multi plataforma SI NO SI
Rutas NO SI NO

Ninguna de las alternativas cumple con todos los aspectos valorados. Es por ello que se inició el desarrollo de la aplicación SDV-Map-Viewer.

Aplicación Web: sdv-map-viewer

La aplicación web propuesta busca cumplir con los siguientes objetivos:

Se propone una aplicación Web de una sola página (Single Web Aplication), dado que esta puede cumplir con los objetivos buscados y además:

Para el desarrollo de la aplicación se escoge la plataforma Angular, la cual usa el lenguaje Typescript y permite crear Aplicaciones Web de una sola página, con características como la modularidad y la reusabilidad de código. Angular tiene un respaldo sólido por parte de sus desarrolladores y usuarios: esto garantiza que el software sea duradero, actualizable y escalable.

Aspecto visual de la aplicación SDV-Map-Viewer.

La aplicación consta de un mapa del laboratorio y un conjunto de íconos que representan a cada robot SDVUNx con un color distintivo. En la figura inferior se observan los distintos íconos para un solo robot, con el siguiente significado:

  1. Pose actual: la dirección de la punta de la flecha indica la orientación del robot.
  2. Objetivo: al hacer click sobre el mapa, se muestra este elemento. Su orientación puede ser modificada rotando el mouse al hacer click sobre el mapa.
  3. Objetivo actual: si el robot ya se encuentra en movimiento, este elemento indica el objetivo al que se está dirigiendo el robot.
  4. Path: la ruta actual que el robot está siguiendo.
  5. Etiqueta: para diferenciar los robots, se usa una etiqueta con el nombre del robot.

Íconos usados en la aplicación.

La aplicación puede ser configurada a gusto del usuario: en la parte superior dereche se encuentra un botón para desplegar un panel. En dicho panel están las siguientes opciones:

Interfaz de la aplicación con el menú lateral desplegado.

sdv-nav-service (backend)

El servicio de obtención de informacíon de los robots y envío de datos al cliente es llamado sdv-nav-service. Este es desarrollado en la plataforma NodeJS, usando tambien Typescript como lenguaje de programación. Este servicio se encarga se obtener la información de estado y datos de interés desde cada robot móvil, usando un puente entre Typescript y ROS. La conexión es automática, por lo que el operario de los robots solo debe encargarse de energizar y posicionar los SDVUNx.

sdv-nav-service entrega los datos de interés a los clientes que se conectan usando sdv-map-viewer usando un WebSocket para una transferencia de datos rápida y eficiente. Esta conexión puede reestablecerse automáticamente, lo que evita al usuario tener que recargar la página en caso de fallas en la conexión.

En la siguiente imagen se observa el esquema de comunicaciónes entre la aplicación Web sdv-map-viewer y el backend sdv-nav-service. Nótese que el servidor se encuentra en la misma red local de los robots SDVUNx, mientras el cliente puede estar en cualquier punto de internet.

Esquema de comunicación entre el cliente y el servidor.

Video de ejemplo

En el siguiente video se muestra una prueba con tres robots móviles SDV dentro del LabFabEx. Con la interfáz es posible controlar, visualizar la posición y detener los 3 robots de forma independiente y simultanea.