Project Overview
This project involved designing, building, and programming an autonomous robot for a competitive block-pushing challenge, requiring integration of mechanical design, sensors, and strategic programming.
Competition Rules
- Each robot competes in a 1v1 match on a rectangular surface divided into blue and yellow halves
- Plastic cubes are distributed across the board at the start of each match
- Robots start at the back edge of their respective halves
- The goal is to push blocks to the opponent's side of the board
- The robot with fewer blocks on its side after 30 seconds wins
To succeed in this competition, we needed to develop an optimal battle strategy and then build a robot capable of executing it reliably. Our approach integrated sensors for environmental awareness, custom electronics for motor control, and strategic programming to optimize the robot's behavior.
Technical Implementation
Electronics & Sensors
- Color Sensor: Integrated to detect the robot's position and identify region boundaries
- H-bridge Circuits: Constructed dual H-bridges for independent wheel control with PWM capability
- Arduino: Used as the main microcontroller for processing sensor inputs and controlling motors
- Power Management: Designed efficient power distribution to maximize runtime during competitions
Mechanical Design
- Snowplow Attachment: Custom-fabricated from scrap plastic to increase block-clearing efficiency
- Protective Housing: Laser-cut acrylic enclosure to shield electronic components
- Strategic Mass Distribution: Added weight to improve stability and pushing power
- Wheel Configuration: Optimized for maneuverability and reliable navigation
Software Strategy
The robot was programmed using Arduino and C, with careful attention to low-level optimization through bit manipulation and direct register access. Our algorithmic approach included:
- Boundary Detection: Using the color sensor to identify when the robot crossed between regions
- Movement Patterns: Implementing strategic sweeping motions to efficiently clear blocks
- Time Management: Programming staged behaviors to maximize effectiveness during the 30-second match
- Edge Recovery: Developing reliable routines to recover when approaching arena boundaries
Robot Gallery

Front View
The robot with its custom snowplow attachment designed for block pushing.

Top View
Overhead view showing the Arduino, sensor integration, and main circuit board.

Circuit Detail
Close-up of the H-bridge circuits used for motor control and PWM implementation.

Testing Configuration
The robot during testing phases, demonstrating its mobility and block-pushing capability.
Technical Challenges & Solutions
Challenges
- Color Sensor Reliability: Initial issues with inconsistent surface readings
- Motor Response Time: Delays between sensor input and movement adjustments
- Edge Detection: Difficulty in accurately identifying arena boundaries
- Pushing Force: Balancing weight distribution for optimal block movement
Solutions
- Sensor Calibration: Implemented dynamic calibration routines at startup
- Optimized Code: Used bit manipulation for faster processing
- Algorithm Refinement: Developed more sophisticated boundary detection logic
- Mechanical Redesign: Modified the snowplow shape and angle for better block control
Learning Outcomes
This project provided valuable hands-on experience in integrating mechanical, electrical, and software engineering disciplines. It taught us the importance of iterative design and real-world testing when developing autonomous systems, as well as the critical balance between algorithmic sophistication and robust, reliable operation.