Controle de posicionamento de robôs por visão computacional
Resumo
Este projeto consiste em controlar o posicionamento de um robô em uma determinada área conhecida, aplicando-se visão computacional para detectar e posicionar o robô. Através de uma câmera convencional conectada ao computador via porta USB, obtém-se a posição do robô por meio da utilização da biblioteca do OpenCV e da linguagem de programação Python. A câmera está fixada acima da área de atuação do robô; a partir da calibração da câmera pelo método do tabuleiro de xadrez, obtém-se parâmetros como: a matriz intrínseca da câmera, o coeficiente de distorção e duas matrizes de rotação e translação, que têm a finalidade de corrigir as distorções radial e tangencial em imagens. É possível reduzir os erros provenientes das imagens capturadas por meio da segmentação de imagens baseada na cor, que consiste em um processo que divide a imagem em regiões que a compõem; atribui-se um padrão de cores RGB específico para identificar o robô, na área conhecida. O robô presente neste estudo está construído com os seguintes componentes: um ESP32, uma ponte H L298N, um suporte para pilhas do tipo AA com plug P4, dois motores DC 3-6V com caixa de redução e eixo duplo, um chassi feito em impressora 3D, duas rodas de borracha e uma roda com rodízio giratório. O robô recebe comandos do computador via comunicação sem fio, através do protocolo de comunicação Esp-Now, transmite o comando para outro ESP32 que está no robô, responsável em executar o comando recebido. Ao integrar a visão computacional e a comunicação sem fio obtém-se a navegação do robô. Como resultado, ao utilizar segmentação de cor para identificar o robô, deve-se ter um ambiente com boa iluminação; a utilização do protocolo ESP-NOW fornece liberdade de movimento ao robô e uma comunicação direta entre computador e robô; observa-se que o processamento digital de imagens necessita de computador com mínimo de recursos de hardware, neste caso, uma placa de vídeo para um melhor desempenho no processamento digital de imagens; sendo assim, deve-se limitar a velocidade do robô para evitar que o programa venha a parar a execução, durante o processamento de imagens.
Palavras-chave: comunicação sem fio; visão computacional; robô; computador; OpenCV; ESP-NOW; calibração de câmera; wi-fi.
Abstract
This project consists in controlling a robot’s positioning in a certain known area, by applying computer vision to detect and position the robot. Through a conventional camera connected to the computer via a USB port, the position of the robot is obtained by using the OpenCV library and the Python programming language. The camera is fixed above the robot's operation area; from the camera calibration by the checkerboard method parameters such as: the camera's intrinsic matrix, the distortion coefficient, and two rotation and translation matrices are obtained, which have the purpose of correcting radial and tangential distortions in images. It is possible to reduce the errors coming from the captured images by means of color-based image segmentation, which consists of a process that divides the image into regions that compose it; a specific RGB color pattern is assigned to identify the robot, in the known area. The robot in this study is built with the following components: an ESP32, an L298N H-bridge, an AA battery holder with a P4 plug, two DC 3-6V motors with gearbox and double axle, a chassis made in a 3D printer, two rubber wheels, and a caster wheel. The robot receives commands from the computer via wireless communication, through the Esp-Now communication protocol, and transmits the command to another ESP32 on the robot, responsible for executing the received command. By integrating computer vision and wireless communication, the navigation of the robot is obtained. As a result, when using color segmentation to identify the robot, one must have an environment with good lighting; the use of the ESP-NOW protocol provides freedom of movement to the robot and direct communication between the computer and robot; it is observed that the digital image processing needs a computer with minimum hardware resources, in this case, a video board for better performance in the digital image processing; therefore, one must limit the robot speed to prevent the program from stopping the execution during the image processing.
Keywords: wireless communication; computer vision; robot; computer; OpenCV; ESP-NOW; camera calibration; wi-fi.
Resumen
Este proyecto consiste en controlar el posicionamiento de un robot en un área conocida determinada, con la aplicación de visión computarizada para detectar y posicionar el robot. A través de una cámara convencional conectada al computador por puerto USB, se obtiene la posición del robot por medio de la utilización de la biblioteca del OpenCV y del lenguaje de programación Python. La cámara está fijada sobre el área de acción del robot; a partir de la calibración de la cámara por el método del tablero de ajedrez, se obtienen parámetros como: la matriz intrínseca de la cámara, el coeficiente de distorsión y dos matrices de rotación y traslación, que tienen la finalidad de corregir la distorsión radial y tangencial en imágenes. Es posible reducir los errores provenientes de las imágenes captadas, por medio de la segmentación de imágenes basada en el color, que consiste en un proceso que divide la imagen en las regiones que la componen; se define un patrón de colores RGB específico para identificar el robot, en el área conocida. El robot utilizado en este estudio está construido con los siguientes componentes: un ESP32, un puente H L298N, un soporte para pilas AA con conector tipo P4, dos motores DC 3-6V con caja de cambios de doble eje, un chasis hecho en impresora 3D, dos ruedas de goma y una rueda de vástago giratorio. El robot recibe comandos del computador por comunicación inalámbrica, a través del protocolo de comunicación Esp-Now, transmite el comando para otro ESP32 ubicado en el robot, responsable por ejecutar el comando recibido. Cuando se integra la visión computarizada y la comunicación sin cable, se logra la navegación del robot. Como resultado, cuando se haga la segmentación del color para identificar el robot, se debe contar con un ambiente con buena iluminación; la utilización del protocolo ESP-NOW ofrece libertad de movimiento al robot y una comunicación directa entre computador y robot; se observa que el procesamiento digital de imágenes necesita de un computador con un mínimo de recursos de hardware, en ese caso una placa de video para un mejor desempeño en el procesamiento digital de imágenes; por otro lado, se debe limitar la velocidad del robot para evitar que el programa llegue a interrumpir la ejecución durante el procesamiento de imágenes.
Palabras-clave: comunicación inalámbrica; visión computarizada; robot; computador; OpenCV; ESP-NOW; calibración de cámara; wifi.
Downloads
Referências
BARELLI, F. Introdução à visão computacional: Uma abordagem prática com Python e OpenCV. São Paulo: Editora Casa do Código, 2018.
CRAIG, JOHN J. Robótica. São Paulo: Pearson Education do Brasil, 2012.
ESPRESSIF. Esp-Now User Guide Version 1.0 (2016). Documentação de uso do protocolo. Disponível em: https://www.espressif.com/en/products/software/esp-now/resources. Acesso em: 08 ago. 2021.
GONZALEZ, R. C.; WOODS, R. E. Processamento digital de imagens. São Paulo: Pearson Education do Brasil, 2010.
HOWSE, J.; JOSHI, P.; BEYELER, M. OpenCV: Computer Vision Projects with Python. Birmingham: Packt Publishing, 2016.
OpenCV - Open Source Computer Vision, “Camera Calibration”. 2021a. Disponível em: https://docs.opencv.org/master/dc/dbb/tutorial_py_calibration.html. Acesso em: 07 ago. 2021.
OpenCV - Open Source Computer Vision, “Pose Estimation”. 2021b. Disponível em: https://docs.opencv.org/master/d7/d53/ tutorial_py_pose.html. Acesso em: 08 ago. 2021.
OpenCV - Open Source Computer Vision, “Camera Calibration and 3D Reconstruction”. 2021c. Disponível em: https://docs.opencv.org/3.4.15/d9/d0c/group__calib3d.html. Acesso em: 13 nov. 2021.
RUSSEL, S.; NORVIG, P. Inteligência artificial. Rio de Janeiro: Elsevier Editora, 2013.
SZELISKI, R. Computer vision: algorithms and applications. Washington: Springer-Verlag London, 2011.
Downloads
Publicado
Como Citar
Edição
Seção
Licença
Declaração de Direito Autoral
Os direitos autorais dos artigos publicados são do(s) autor(es) e do periódico, com os direitos de primeira publicação para o Caderno.
Em virtude de aparecerem nesta revista de acesso público, os artigos são de uso gratuito, com atribuições próprias, com aplicações educacionais e não comerciais, de acordo com o creative commons.
Os nomes e endereços informados neste periódico serão utilizados exclusivamente para os serviços prestados por esta publicação, não sendo disponibilizados para outras finalidades ou a terceiros.