Click the image above to watch our robot in action!
Roam-E is an autonomous robot car designed for the World Robot Olympiad (WRO) competition. The vehicle combines advanced computer vision, sensors, and intelligent control algorithms to navigate autonomously while detecting and responding to traffic signals and obstacles.
| Top View | Right Side View |
|---|---|
![]() |
![]() |
| Front View | Back View | Left View | Bottom View |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- Jetson Nano: Handles computer vision processing, image analysis, and AI-based decision making
- Arduino Uno: Controls physical components (motors, servos, sensors) and acts as communication bridge
- Raspberry Pi Camera Module 3: Enhanced with 0.45x wide-angle lens for broader field of view
- HC-SR04 Ultrasonic Distance Sensors: Three sensors (left, right, center) for obstacle detection
- 10-DOF IMU Sensor (MPU9255 + BMP280): Provides precise motion and orientation measurements (0-1080Β°)
- MG-996 360Β° Servo Motor: Front wheel steering with high torque and precision
- 25GA370 300RPM Metal Gear DC Motor: Rear wheel drive (upgraded from JGA25-370 for better performance)
- BTS7960 Motor Drive Module: Motor control and power management
- Primary Power: 1800mAh LiPo Battery (11.8V Γ 1.8A = 21.24W)
- Voltage Boosting: LM2577 DC-DC Step-up Converter (13V output for DC motor)
- Voltage Regulation: LM2596 Step-down Converter (5.1V for Jetson Nano, servo, Arduino)
- Power Distribution: Efficient power routing to all components
- Distance Measurement: HC-SR04 sensors with 250cm maximum range
- Vision Processing: 272Γ204 resolution at 90fps capture rate
- Motion Tracking: 10-DOF IMU with accelerometer, gyroscope, and magnetometer
- Angle Detection: 0-1080Β° range with automatic stop at 1050Β°
- Base: 4WD Smart Car Robot Chassis
- Wheels: 65mm diameter, 54mm width for enhanced maneuverability
- Weight Optimization: Thin wheels reduce overall weight and improve efficiency
- Front Steering: MG-996 servo centered at 40Β° (0Β° = left turn, 110Β° = right turn)
- Rear Drive: 25GA370 motor with BTS7960 driver for forward/reverse motion
- Speed Control: PWM-based speed regulation with directional control
- Three-layer chassis design (metal base + dual acrylic layers)
- Integrated sensor mounting points
- Cable management system with ties and heat shrink tubing
- Anti-collision protection
The robot uses advanced image processing for autonomous navigation:
- Color Detection: HSV-based detection for red/green traffic signals, orange/blue obstacles
- Wall Detection: Black line following using morphological operations
- Blob Analysis: Contour detection with area-based filtering (>100px threshold)
# Simplified decision flow
1. Capture frame from dual CSI cameras
2. Split image into color masks (red, green, orange, blue, black)
3. Detect walls using left/right ROI analysis
4. Calculate PID-based wall following
5. Detect traffic signals (red = left turn, green = right turn)
6. Combine wall-following + traffic signal decisions
7. Send motor commands via serial communication- PID Controller: Kp=3000, Ki=0, Kd=0 for wall following
- Turn Mapping: [-1000, 1000] β [0, 110] servo range
- Real-time Processing: Continuous frame analysis at ~10fps
- Web Monitoring: Flask-based debug server on port 5000
- Live Visualization: Real-time frame display with detection overlays
- Parameter Monitoring: Turn values, detection areas, and decision metrics
File: Source Code/Challenge Round/test_v8.py
Key Classes:
CameraHandler: Dual CSI camera managementImageProcessor: HSV color detection and blob analysisWallAnalyzer: PID-based wall followingTurnCalculator: Traffic signal decision makingCarController: Serial communication with ArduinoDebugServer: Web-based monitoring interface
File: Source Code/Open Round/qualifier.ino
Features:
- Ultrasonic sensor-based navigation
- PID control for wall following
- Automatic lap counting (12 laps)
- Direction detection and path optimization
final_round.ino: IMU-based navigation with angle trackingfinal_round_wa.ino: Wall-avoidance with U-turn capability
- Assemble Chassis: Follow the 4WD chassis assembly instructions
- Mount Components:
- Jetson Nano and Arduino on middle layer
- LiPo battery in center compartment
- Sensors on front/sides of chassis
- Wiring: Connect according to the circuit diagram
- Calibration: Set servo center position and sensor offsets
# For Jetson Nano
sudo apt update
sudo apt install python3-pip python3-opencv
pip3 install jetcam flask pyserial numpy
# For Arduino
# Install Arduino IDE and required libraries:
# - Servo.h
# - NewPing.h
# - MPU6050_light.h
# - PID_v1.hChallenge Round (Computer Vision):
cd "Source Code/Challenge Round"
python3 test_v8.py
# Access debug interface at http://[jetson-ip]:5000Open Round (Sensor-based):
# Upload qualifier.ino to Arduino
# Press button to start autonomous navigation- Camera Settings: 272Γ204 resolution, 90fps
- Serial Communication: 9600 baud rate
- Servo Range: 0-110Β° (40Β° center)
- Motor Speed: 60-120 PWM range
- IMU Stop Angle: 1050Β° (approximately 3 full rotations)
- Objective: Navigate around track using ultrasonic sensors
- Strategy: PID-based wall following with automatic direction detection
- Completion: 12 laps with timing optimization
- Objective: Navigate while responding to traffic signals
- Strategy: Computer vision-based obstacle detection and traffic signal recognition
- Features: Real-time decision making, web-based debugging
| Specification | Value |
|---|---|
| Max Speed | Variable (60-120 PWM) |
| Turn Radius | Adjustable (0-110Β° servo range) |
| Detection Range | 250cm (ultrasonic) |
| Camera FOV | Enhanced with 0.45x wide-angle lens |
| Processing Rate | ~10fps image analysis |
| Battery Life | ~30-45 minutes continuous operation |
| Weight | Optimized with thin wheels and efficient design |
Team Name: Team Paragon
Team Leader: Abdullah Al Mahmud
Competition: World Robot Olympiad (WRO) 2023
Category: Future Engineers
- Camera Not Detected: Check CSI cable connections and camera permissions
- Serial Communication Failed: Verify baud rate and port settings
- Motor Not Responding: Check power connections and motor driver wiring
- Servo Jittery: Calibrate center position and check power supply stability
- IMU Drift: Recalibrate offsets and check mounting stability
- Web Interface: Real-time visualization of detection and decisions
- Serial Monitor: Arduino debugging and sensor readings
- LED Indicators: Status feedback for system states
Roam-E/
βββ Arduino/ # Arduino sketches
β βββ final_round/ # IMU-based navigation
β βββ final_round_wa/ # Wall avoidance variant
β βββ qualifier/ # Open round code
βββ Source Code/
β βββ Challenge Round/ # Python computer vision
β βββ Open Round/ # Arduino sensor-based
βββ Mobility Management/ # Hardware documentation
βββ Obstacle Management/ # AI algorithm documentation
βββ Power & Sense Management/ # Circuit diagrams and power specs
βββ Team & Vehicle Photos/ # Project images
- PID Control: Wall following and distance maintenance
- HSV Color Detection: Traffic signal recognition
- Blob Analysis: Object detection and tracking
- Serial Protocol: Arduino-Jetson communication
- State Machine: Competition mode management
- Enhanced AI: Deep learning for better object recognition
- Sensor Fusion: Combine ultrasonic and vision data
- Path Planning: Advanced route optimization algorithms
- Energy Efficiency: Power consumption optimization
For technical support or questions about the project, please refer to the documentation in each component folder or contact the development team.
Happy Building! π€β¨







