Autonomous Fire Fighting Robot for Czech National RoboRAVE Competition
ProjectX is an Arduino Mega-based autonomous robot designed to compete in the Czech national round of RoboRAVE International Fire Fighting Challenge. The robot uses advanced sensor arrays and stepper motor control to navigate autonomously, detect candles using infrared sensors, and extinguish them using a propeller system without physical contact. Perfect for educational robotics competitions and autonomous navigation challenges.
This repository contains the code and documentation for our autonomous fire fighting robot designed to compete in the Czech national round of RoboRAVE International Fire Fighting Challenge.
- 2 Stepper Motors for differential drive locomotion
- Step resolution: 20 steps per movement (36 degrees rotation)
- 90-degree turn: 600 steps
- Front line sensors: 2 sensors for basic line following
- Left side line sensors: 4 sensors (L1-L4)
- Right side line sensors: 4 sensors (R1-R4)
- Left candle sensors: 4 sensors (L1-L4)
- Middle candle sensors: 4 sensors (M1-M4)
- Right candle sensors: 4 sensors (R1-R4)
- Bumper sensor: For collision detection
- Ultrasonic sensor: For obstacle detection
- Start button: For competition control
- Servo motor: Controls propeller for candle extinguishing
- ON position: 104 degrees
- OFF position: 176 degrees
- Microcontroller: Arduino Mega
- Communication: Serial communication at 9600 baud
- Power: Autonomous operation with onboard power supply
The robot operates autonomously with the following behaviors:
- Line following using multiple line sensors
- Candle detection using infrared sensors
- Obstacle avoidance using ultrasonic and bumper sensors
- Candle extinguishing using propeller system
- Random navigation when no clear path is available
This robot is designed for the Czech national round of RoboRAVE International Fire Fighting Challenge, where it must:
- Navigate autonomously within a defined arena
- Locate and extinguish candles without physical contact
- Avoid obstacles and walls
- Complete the task within time limits
projectX_final1.ino
- Arduino sketch for version 1projectX_final1.cpp
- Implementation file for version 1projectX_final1.h
- Header file for version 1projectX_final2.ino
- Arduino sketch for version 2 (current)projectX_final2.cpp
- Implementation file for version 2 (current)projectX_final2.h
- Header file for version 2 (current)
projectX_final1/
- Directory containing version 1 Arduino sketchprojectX_final2/
- Directory containing version 2 Arduino sketch
README.md
- This file - complete project documentationroborave_readme.md
- Detailed competition rules and specifications
libraries/
- External libraries directoryServo/
- Servo motor control library
.gitignore
- Git ignore rules.DS_Store
- macOS system files (ignored by git)
The objective of this challenge is to design, build, and program an autonomous robot capable of locating and extinguishing four randomly placed candles within a field outlined by a white and black line. The robot must extinguish the candles without making physical contact with them.
This challenge typically includes teams from:
- Middle School
- High School
- "Big Kids" divisions
Our robot adheres to the following requirements and design constraints for the Fire Fighting Challenge:
- Autonomy: The robot operates autonomously
- Cost: The total cost of the robot is $1,500 USD or less
- Extinguishing System Control: The robot's program can control the start and stop of its extinguishing system via a sensor that interacts with either the candle or the circle the candle is placed on
- Safety Guard: If a high-speed propeller is used, the robot has a safety guard in place
- Sensors and Processors: Multiple sensors and processors are allowed
- Volume: The robot's volume does not exceed 65,030 cm³
- Starting Position: The robot begins each heat at a spot along the border chosen by the challenge coordinator
- First Candle Visibility: The first candle is in plain view of the robot at the start of the challenge
- Time Limit: The robot has 3 minutes to extinguish all four candles
- Player Interaction: Only players can operate and manipulate the robot during a heat. If a player touches the robot after the challenge begins, the run ends, and scoring is based on the number of candles extinguished at that point
- Practice Tracks: Official tracks are available for practice when not in use by competitors
- Official Runs: Teams get 10 official scored runs during the challenge scoring period
- Tournament Selection: The total of the 5 highest official scores are used to determine tournament selection
- Field Dimensions: The challenge field is 2.4m × 3.5m
- Border: A border is constructed using white and black duct tape. The white duct tape is 7.5cm wide with a 2.5cm black duct tape line down its center
- Random Placement: Candles and walls are randomly placed for every run
- Lighting Conditions: The challenge may be held in areas with natural light, so the robot is engineered to adapt to changing lighting conditions
- Placement: Candles stand at the center of a white vinyl circle, indicated by a 5cm diameter black circle
- Height: Candle heights vary between 10cm and 45cm
- Circle Dimensions: The circle has a 40cm diameter, with a 2.5cm black line 2.5cm in from its outer edge
Wall Obstructions: Candles can be blocked by walls in varying configurations:
- 1 candle: No wall
- 1 candle: 1 wall
- 1 candle: 2 walls
- 1 candle: 3 walls
- Width: Wall widths vary from 20cm to 35cm
- Height: Walls are 40cm tall
- Bases: Walls are held up by wooden bases that are 3.5cm tall and may span the approximate width of the wall
Note: All challenge dimensions are approximate.
Scoring is based on the number of candles extinguished. A "remaining time bonus" is awarded only if all four candles are extinguished. Otherwise, only points for extinguished candles are awarded.
A 50% penalty off the candle's value is applied if:
- A candle is extinguished by the robot when it is completely outside the circle
- The candle is touched during the process of extinguishing the flame
The "process of extinguishing the lit candle" is defined as: entering into the circle, extinguishing, and leaving the circle. During this time, the robot cannot make contact with the candle.
Previously extinguished candles become obstacles and do not count as a penalty if touched.
Number of Candles Extinguished | First | Second | Third | Fourth | Total Possible Score |
---|---|---|---|---|---|
Half points due to penalty* | 50 | 100 | 150 | 200 | 1000 |
Full Points | 100 | 200 | 300 | 400 | |
Time Bonus | 0-180 (Clock counts down from 180 seconds and stops when the robot extinguishes the fourth candle) |
The top eight teams will compete in a final tournament. Advancing teams are seeded into the tournament bracket based on their aggregate score. The "Runner Up" is used to determine 3rd place based on the outcome of the semi-finals.
This project is licensed under the Non-Commercial Public License (NCPL v1.0)
© 2025 Jakub Ešpandr - Born4FLight, FlyCamCzech
See the LICENSE file for full terms.