https://github.com/rodrigobarbaedu/color-ball-robot-tracker
Este proyecto implementa un robot autónomo utilizando Raspberry Pi, Elegoo Smart Robot Car V4, Python y OpenCV para evitar obstáculos, reconocer y seguir pelotas de colores.
https://github.com/rodrigobarbaedu/color-ball-robot-tracker
arduino arduino-uno c cpp elegoo-robot-car esp32s3-camera-tft opencv python raspberry-pi
Last synced: 5 months ago
JSON representation
Este proyecto implementa un robot autónomo utilizando Raspberry Pi, Elegoo Smart Robot Car V4, Python y OpenCV para evitar obstáculos, reconocer y seguir pelotas de colores.
- Host: GitHub
- URL: https://github.com/rodrigobarbaedu/color-ball-robot-tracker
- Owner: rodrigobarbaedu
- Created: 2024-11-12T09:19:45.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-28T19:19:07.000Z (over 1 year ago)
- Last Synced: 2025-04-06T09:52:04.761Z (about 1 year ago)
- Topics: arduino, arduino-uno, c, cpp, elegoo-robot-car, esp32s3-camera-tft, opencv, python, raspberry-pi
- Language: C++
- Homepage:
- Size: 36.7 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🤖 Robot Autónomo con Reconocimiento de Obstáculos y Reconocimiento de Pelotas de Colores
Este proyecto tiene como objetivo desarrollar un **robot autónomo** utilizando una **Raspberry Pi** junto con el kit de **Elegoo Smart Robot Car V4.0**. El robot es capaz de detectar pelotas de colores en su entorno utilizando **visión por computadora** y seguirlas de manera autónoma, evitando obstáculos en su camino. El sistema utiliza una cámara del Smart Robot Car para capturar imágenes en tiempo real y procesarlas con **OpenCV** para identificar las pelotas de colores. Una vez detectadas, el robot calcula la distancia y el ángulo hacia la pelota y ajusta su trayectoria para seguirla. Además, el robot es capaz de detectar obstáculos cercanos y detenerse para evitar colisiones. El proyecto combina conceptos de robótica móvil, visión por computadora y control autónomo para crear un robot inteligente y autónomo.
---
## Características principales:
- **Visión por Computadora:** Utiliza **OpenCV** para capturar imágenes de la cámara y procesarlas en tiempo real para identificar bolitas de colores específicos.
- **Autonomía en Movimiento:** El robot se mueve hacia la bolita de color detectada, adaptando su trayectoria para alcanzarla utilizando cálculos de distancia y ángulo basados en los datos obtenidos de la cámara.
- **Control del Robot:** El movimiento y la orientación del robot son controlados a través de comandos enviados a la placa base del Elegoo Smart Robot Car V4.0, con un control preciso de la velocidad y el ángulo de giro.
- **Hardware:** Utiliza una **Raspberry Pi** como cerebro del sistema, donde el Smart Robot toma fotogramas de la cámara, las envia a la Raspberry Pi para el procesamiento y toma decisiones de movimiento, estas decisiones son enviadas al Smart Robot para procesar el movimiento.
- **Detección de Obstáculos:** El robot es capaz de detectar obstáculos cercanos utilizando un sensor de ultrasonido y detenerse para evitar colisiones, reanudando su movimiento una vez que el obstáculo ha sido superado.
---
## Componentes utilizados:
- **Raspberry Pi:** Placa de desarrollo que actúa como el controlador principal del robot, ejecutando los scripts en Python y gestionando las operaciones de visión por computadora.
- **Elegoo Smart Robot Car V4.0:** Kit de robot con motores de Elegoo, ruedas y sensores de proximidad, utilizado para el movimiento y la navegación del robot.
- **Python & OpenCV:** Lenguaje de programación y biblioteca de visión por computadora para procesar las imágenes, detectar pelotas de colores y calcular la posición relativa del robot con respecto a la bolita, además de controlar el movimiento del robot.
- **Cámara:** Cámara ESP32-S3 para capturar imágenes en tiempo real y procesarlas para la detección de bolitas de colores.
---
## Funcionalidades del robot:
1. **Detección de Pelotas de Colores:** El robot es capaz de detectar pelotas de colores específicos en su entorno utilizando visión por computadora y OpenCV.
2. **Seguimiento de Pelotas:** Una vez que se detecta una pelota de color, el robot calcula la distancia y el ángulo hacia la pelota y ajusta su trayectoria para seguirla.
3. **Evitación de Obstáculos:** El robot es capaz de detectar obstáculos cercanos utilizando un sensor de ultrasonido y detenerse para evitar colisiones.
4. **Control de Movimiento:** El robot puede moverse hacia adelante, hacia atrás, girar a la izquierda y girar a la derecha, controlando la velocidad y el ángulo de giro.
---
## Objetivos de aprendizaje:
- **Robótica Móvil:** Aprender los conceptos básicos de la robótica móvil y cómo construir un robot autónomo utilizando una Raspberry Pi y un kit de robot.
- **Visión por Computadora:** Entender cómo utilizar OpenCV para procesar imágenes en tiempo real y detectar objetos de interés en un entorno.
- **Control Autónomo:** Implementar un sistema de control autónomo que permita al robot tomar decisiones de movimiento basadas en la información capturada por la cámara y los sensores.
---
## Requisitos previos:
- **Hardware:**
- Raspberry Pi (Modelo 3B+ o superior recomendado).
- Elegoo Smart Robot Car V4.0.
- **Software:**
- Python 3.x. (Se recomienda la versión 3.7 o superior).
- OpenCV.
- Bibliotecas necesarias para la Raspberry Pi y el Elegoo Smart Robot Car.
- Sistema operativo Raspbian instalado en la Raspberry Pi.
- IDE o editor de código para programar en Python (por ejemplo, Thonny, VS Code, etc.).
- Docker para creación de contenedores.
---
## Instalación:
1. Clona este repositorio:
```bash
git clone https://github.com/rodrigobarbaedu/color-ball-robot-tracker.git
cd color-ball-robot-tracker/Application/docker
```
2. (Requerimiento: Docker) Construye la imagen del contenedor:
```bash
docker build --no-cache -t app-1 app-2
```
3. Ejecuta los contenedores:
```bash
docker-compose up -d app-1 app-2
```
4. Accede a la dirección IP de la Raspberry Pi en un navegador web:
```bash
http://:5050
```
5. ¡Listo! Ahora puedes ver la interfaz web del robot.