Título: Sistema de teleoperación para un robot con detección de objetos mediante Visión Artificial y API con Cliente Web
Autor: Aparicio Gonzalez, Javier
Resumen: [ES] El presente proyecto, como objetivo principal, se centra en el desarrollo de un sistema de teleoperación para un robot de cuatro ruedas con tracción diferencial, para ello el proyecto también abarca el desarrollo de una API que se comunique con un cliente web. Además de este objetivo principal, se ha instalado una cámara al robot capaz de transmitir la imagen RGB como la imagen resultante de la inferencia de un modelo para la detección de obstáculos
La API, instalada en el propio robot, se ha implementado utilizando el framework de Python conocido como FastAPI. Este software incorpora la cámara de visión y un servidor para permitir la comunicación y teleoperación en tiempo real entre ambos entornos. Gracias a Uvicorn, un servidor ASGI (Asynchronous Server Gateway Interface), la API puede gestionar la comunicación con este cliente web.
El dashboard, montado en un cliente web, manda las ordenes de teleoperación, además de recibir las imágenes de la cámara del robot. Para ello, se ha desarrollado una aplicación web utilizando el framework Next.js de React.js que consume la API. De este modo, se puede interactuar de forma gráfica con la API desarrollada, ya que este dashboard o UI cuenta con varias rutas y componentes muy visuales.
Por último, el sistema de inteligencia artificial ubicado en el host del robot consiste en un código programado en Python que ejecuta inferencias continuamente mediante esta API. La arquitectura de la red neuronal es una YOLOv5, con un modelo previamente entrenado a partir de un dataset ya organizado. El resultado de esta inferencia es la imagen actual del robot con todos los objetos identificados como obstáculos, señalados mediante un bounding box y etiquetados indicando el tipo de obstáculo.[EN] The present project, as main objective, is focused on the development of a teleoperation system for a four-wheeled robot with differential traction, for this purpose the project also includes the development of an API that communicates with a web client. In addition to this main objective, a camera has been installed on the robot capable of transmitting the RGB image as the image resulting from the inference of a model for obstacle detection.
The API, installed on the robot itself, has been implemented using the Python framework known as FastAPI. This software incorporates the vision camera and a server to enable real-time communication and teleoperation between the two environments. Thanks to Uvicorn, an ASGI (Asynchronous Server Gateway Interface) server, the API can manage the communication with this web client.
The dashboard, mounted on a web client, sends the teleoperation commands, in addition to receiving the images from the robot s camera. For this, a web application has been developed using the Next.js framework of React.js that consumes the API. In this way, it is possible to interact graphically with the developed API, since this dashboard or UI has several paths and very visual components. Finally, the artificial intelligence system located in the robot s host consists of a code programmed in Python that continuously executes inferences through this API.
The neural network architecture is a YOLOv5, with a model previously trained from an already organized dataset. The result of this inference is the current image of the robot with all the objects identified as obstacles, marked by a bounding box and labeled indicating the type of obstacle.