This project is an advanced robotics application using the ELEGOO Smart Robot Car Kit V4.0 with an ESP32-CAM module to simulate an autonomous transport system within a production facility. The robot follows mapped black-line paths on the ground to transport between multiple production lines and a packaging line. The system also includes a manually simulated signal light, which the ESP32-CAM detects to determine the robot’s next destination.
The ELEGOO kit provides several pre-built features, some of which are used in this project:
- Line Tracking Mode: The robot follows black lines on the ground.
- Infrared Control Mode: Reserved as a backup for manual override.
- Color Recognition via ESP32-CAM: Detects signal lights to decide the production location.
- Route Selection & Navigation: Uses a state machine to manage transport tasks.
- Simulated Physical Loading Platform: Represents goods transportation between stations.
The project consists of two primary modules:
- Arduino Uno (controls sensors, motors, and navigation logic)
- ESP32-CAM (captures and processes images to detect color signals)
- Standby Mode: The robot waits at the packaging station.
- Loading Signal: The ESP32-CAM reads the light signal and the Arduino determines the route.
- Transit to Production Line: The robot follows the black-line path to the assigned production station.
- Loading Simulation: The robot waits for a simulated loading time.
- Return and Standby: The robot moves back to the packaging station and resets.
- ELEGOO Smart Robot Car Kit V4.0 (including line tracking sensors and motor drivers)
- ESP32-CAM Module (for image processing)
- Manually Simulated Signal Light (smartphone screen)
- PlatformIO under VSCode (for both Arduino Uno & ESP32-CAM programming)
- Git for Version Control
- Git
git clone https://github.com/Deuce-Cao/ColorSignaledRoboticCarNavigation.git
- Install PlatformIO extension.
- Modify platformio.ini to match the COM ports in your environment.
- Upload
pio run -e uno -t upload pio run -e esp32cam -t upload
The code uploaded to the UNO and ESP32 boards are under src/, using .cpp instead of .ino since we are using PlatformIO IDE instead of Arduino IDE.
ColorSignaledRoboticCarNavigation/
├── README.md
├── docs/
│ └── Advanced Robotics Proposal.docx
├── lib/
│ ├── ESP-Color-main.zip
│ ├── IRremote.zip
│ ├── NewPing.zip
│ └── pitches.zip
├── src/
│ ├── arduino/
│ │ ├── main.cpp
│ │ ├── main.hex
│ │ ├── ApplicationFunctionSet_xxx0.cpp
│ │ ├── ApplicationFunctionSet_xxx0.h
│ │ ├── ArduinoJson-v6.11.1.h
│ │ ├── DeviceDriverSet_xxx0.cpp
│ │ ├── DeviceDriverSet_xxx0.h
│ │ ├── I2Cdev.cpp
│ │ ├── I2Cdev.h
│ │ ├── IRremote.cpp
│ │ ├── IRremote.h
│ │ ├── IRremoteInt.h
│ │ ├── MPU6050_getdata.cpp
│ │ ├── MPU6050_getdata.h
│ │ ├── MPU6050.cpp
│ │ └── MPU6050.h
│ └── esp32cam/
│ ├── main.cpp
│ ├── camera_module.h
│ ├── color_detector.cpp
│ └── color_detector.h
└── test/
├── compare.py
├── compareRaw.py
└── getpic.py
- Failures in the components of the robot car, such as motors, sensors, and cameras, can affect the normal operation of the car.
- Problems with wiring when assembling the car, loose or incorrect wiring when connecting peripherals can cause failures.
- The motor will overheat when working, affecting the operation of the car.
- Errors in the code that controls the operation of the car and implements various functions.
- In low-light conditions, the camera has difficulty capturing.
- Signal interference problem when the car is running.
- Hongqing Cao
- Leila Dabbaghzadeh
- Pengbo Ma
- Zhengrong Yu
This project is part of the SEP 780 - Advanced Robotics and Automation course under the guidance of Dr. Richard Ma.
https://github.com/elegooofficial/ELEGOO-Smart-Robot-Car-Kit-V4.0
https://github.com/luisllamasbinaburo/ESP-Color
https://randomnerdtutorials.com/esp32-cam-ov2640-camera-settings/