Build a Mini Sumo Robot: Grip, Wedge and Edge Sense
A mini sumo robot that searches for its opponent, pushes it out of the ring, and stops itself at the white border instead of driving off the edge.
What you are building
Two robots, one ring, no sensors pointed at anything except each other and the floor. The one still inside at the end wins.
It is the simplest goal on this site and it is not the easy project it looks like, because sumo is the one robot where the mechanics decide the outcome and the code only has to not throw it away. Every other build here rewards better algorithms. This one rewards a sharper wedge.
That inversion is worth experiencing once. It is also why the build order below spends its first day on arithmetic and its last on behaviour, which is the opposite of how most people start.
The three numbers that decide it
Push force is 5.9 N, and your motors could do 25 N. A 500 g robot on silicone tyres is traction limited by a factor of four. The drivetrain is not the constraint and never will be, so build to the weight limit, put every gram over the driven wheels, and spend the motor budget on gearing rather than power.
A wedge that lifts 40% of the opponent gives you 2.3× their push. The weight it takes off them lands on you, so the ratio is (1+f)/(1−f) and it climbs steeply. No other single change comes close.
You can run at about 0.8 m/s. Not because the motors run out, but because 25 mm of border plus 25 ms of latency is all the stopping room there is. Most first robots are geared for twice that and lose to the edge, not the opponent.
Those three sentences are the whole design. Everything below is how to reach them.
Bill of materials
Mini sumo has a formal class: 10 × 10 cm footprint at the start, 500 g maximum, on a 77 cm ring with a 2.5 cm white border. The rules shape the build list.
| Part | Qty | Approx. cost | Notes |
|---|---|---|---|
| Arduino Uno or Nano | 1 | $5 | A Nano fits the 10 cm footprint far more comfortably |
| IR reflectance sensors | 2–4 | $5 | Edge detection. One at each front corner minimum |
| VL53L0X | 2–3 | $10–15 | Opponent detection. Narrow beam beats sonar in a ring |
| N20 encoder motors | 2 | $16 | High torque ratio — 1:100 or slower. Speed is not the goal |
| TB6612FNG | 1 | $3 | |
| Chassis with a steel wedge | 1 | $10–25 | The wedge is the weapon; the steel is also the ballast |
| Battery pack | 1 | $10 | Also useful mass — put it over the drive wheels |
| Silicone or high-grip tyres | 2 | $5 | The single highest-value upgrade in the list |
Total: roughly $65–90.
Two notes that decide matches rather than merely working.
Weight goes over the drive wheels, right up to the limit. Pushing force is friction, and friction is the coefficient times the normal load. Every gram not on a driven tyre is wasted, which is why sumo robots run to exactly 500 g and put nearly all of it on two wheels.
Tyres matter more than motors. A robot that has reached its traction limit gains nothing from more torque — the wheels simply spin. Going from hard plastic (µ ≈ 0.4) to silicone (µ ≈ 1.2 or better) roughly triples the available pushing force for five dollars, which no motor upgrade can match.
Build order
1 — Decide the mass and the tyres first. They set your push force before a single line of code exists. Aim at the 500 g limit, with the mass low and over the drive wheels; use silicone or soft urethane tyres, not what the chassis kit shipped with. µ 1.2 against µ 0.7 is 72% more push and it costs the price of a set of wheels.
2 — Gear for torque and check the stall current. Sumo lives at the torque end of the motor curve, around 0.8 m/s at the wheel rather than the 1.5 a chassis kit assumes. Then work out what two motors draw at stall — 3 A or so — and budget the pack for that rather than for the cruising current. A whole round is a sustained stall.
3 — Make it stop at the border, alone in the ring. This is the milestone. Mount reflectance sensors at both front corners, as far forward as they can still see the white line, calibrated for the actual ring rather than your desk. Drive at full speed at the border, fifty times, from every angle. Until this is boringly reliable there is no point adding an opponent — a robot that drives itself out loses without ever being pushed.
4 — Read the edge sensors every pass of the loop. Four fifths of your reaction distance is waiting for the next loop iteration, and a single blocking range read is 20 ms of blindness at exactly the wrong moment. Non-blocking timing is the cheapest speed increase available.
5 — Add opponent sensing. A VL53L0X forward, and optionally two more angled outward at 45°. The narrow beam matters: an ultrasonic sensor in a ring mostly finds the ring.
6 — Write the behaviour as explicit states. Search, charge, push, retreat, with the edge reflex pre-empting all of them. This is a textbook case for a finite-state machine, because the edge check must run in every state and there must be no path through the code where it does not.
7 — Build the wedge last, and iterate on it forever. It is the highest-leverage part and the easiest to change.
The behaviour, in one paragraph
Start with a mandatory delay — most rule sets require five seconds. Then search: rotate in place, or drive a small arc, until the forward sensor reports something inside about 40 cm. Charge straight at it at full power. Push until either the range opens up (they moved) or you detect the border. Retreat on any edge detection: full reverse first, stop, then turn back toward the ring centre. Retreat outranks everything, from any state, at any time.
The subtle part is that pushing and being stuck look identical from the front sensor. If you have encoders, zero wheel speed at full command means a stall, and that is your cue to back off and re-approach from a different angle rather than grinding until the battery gives out.
Hardware notes that matter
The wedge tip decides matches. Thin steel or aluminium sheet, ground to an edge, held a fraction of a millimetre off the floor by something rigid. On a flexible mount it rides up over the opponent instead of under, which reverses the sign of the entire weight-transfer calculation.
Keep the front low. The opponent’s wedge applies an upward force at your leading edge, and how much that tips you depends on how high your centre of mass sits above it. Tall robots get flipped by robots that could not out-push them.
No castor if you can avoid it. Weight on a free-rolling wheel makes no traction. Two drive wheels and a low-friction skid — a PTFE button or a rounded screw head — puts nearly all your mass to work.
Guard the wiring. This is the only robot on the site that is deliberately rammed. Anything on the outside gets hit; anything on a connector comes loose.
Metal gearboxes. Plastic gear trains strip in a robot whose normal operating condition is stall, and a stripped gearbox mid-round is indistinguishable from a dead battery.
What good looks like
| Measurement | Typical build | Competitive |
|---|---|---|
| Mass | 400–500 g | 499 g — the limit, exactly |
| Fraction of mass on driven wheels | 70% | 90%+ |
| Tyre friction coefficient | 0.6–0.8 (rubber) | 1.2–1.5 (silicone) |
| Pushing force | 2.5–4 N | 6–7 N |
| Edge-detection reaction time | 60–100 ms | Under 30 ms |
| Stopping distance from full speed | 8–15 cm | Under 5 cm |
| Opponent detection range | 30–40 cm | 60–80 cm |
Edge reaction time is the number that wins or loses matches, and it is a bigger effect than pushing force. The ring’s white border is 2.5 cm wide. A robot travelling at 0.5 m/s crosses that border in 50 ms — so a 100 ms reaction means the robot is already out before it has finished deciding to stop.
That budget breaks down as sensor read time, loop period, and braking distance. All three are attackable: poll the edge sensors far more often than everything else, keep the control loop tight, and brake rather than coast — shorting the motor through the H-bridge stops the robot dramatically faster than removing power does.
The traction ceiling is worth stating as arithmetic. With 500 g on two driven wheels and silicone tyres at µ = 1.4:
maximum pushing force = 0.5 kg x 9.81 x 1.4 = 6.9 N
Beyond that the wheels spin regardless of motor torque — which is why a sumo robot is a traction problem wearing a motor problem’s clothing.
When it goes wrong
| Symptom | Usually |
|---|---|
| Drives out of the ring on its own | Too fast for the border budget, or the edge sensors are polled too slowly |
| Wheels spin, robot goes nowhere | Traction limited, as designed — add mass or change tyres |
| Loses to a similar robot | Their wedge got under yours; ground clearance, not power |
| Resets mid-push | Stall current sagging the rail — budget for stall |
| Sees the border that is not there | Ambient IR or a reflective ring; shroud the sensors and re-calibrate |
| Chases the ring wall instead of the opponent | Beam too wide — this is what time-of-flight fixes |
| Falls out backwards | No rear edge sensors |
| Stops at the line, then drives off anyway | Turned away while still moving; stop fully first |
Six of those eight are mechanical or sensing faults, which is the same distribution the micromouse shows and for the same reason: the algorithm is the small part.
If you want the sensing and stopping geometry without the mechanical arms race, the obstacle avoidance simulator runs the same stopping-distance arithmetic with a forward sensor, and the obstacle-avoiding robot is the gentler build that shares most of this hardware. For the drivetrain theory underneath all of it, the motor control path starts at sizing and ends at odometry.
Project roadmap
The build path
Follow the tech tree from parts to a robot that follows a taped line. Each node unlocks when its prerequisites are done, and your progress saves on this device.
0 / 18 done
Components
- ControllerArduino UnoThe forgiving 8-bit board most people meet robotics through.
- SensorIR Reflectance Sensor ArrayA row of infrared eyes that tells a robot where the line is.
- SensorVL53L0X ToF SensorLaser time-of-flight ranging—a tight, millimetre beam where sonar is too coarse.
- ActuatorN20 Encoder GearmotorA metal-gearbox micro motor with an encoder on the back, so the robot knows how far it has actually gone.
- DriverTB6612FNG Motor DriverA MOSFET H-bridge that keeps the volts you actually paid for.
- Chassis2WD Robot ChassisThe deck two motors, a free caster, and your electronics all bolt onto.
- PowerRobot Battery & Power PackThe difference between a robot that runs and one that keeps resetting.
Tutorials in this path
- Intermediate · 25 minHow Hard a Robot Can Push: Traction and WeightTwo ceilings set push force, and on a small robot the floor is almost always the lower one.
- Intermediate · 25 minStopping at an Edge: Latency and Braking DistanceHow far a robot travels past the line it just saw, and the speed that makes it fit.
- Beginner · 17 min readFinite-State Machines for Robot BehaviorReplace tangled robot conditionals with explicit states, events, transitions, timeouts, and recovery.
- Beginner · 20 minRead an IR Reflectance Sensor Array for Line FollowingTurn a row of IR sensors into a single, smooth line position you can steer on.
- Intermediate · 35 minHow to Choose a DC Gearmotor: Torque, RPM and StallWork out the torque and RPM your robot actually needs, then read a datasheet against real numbers.
Frequently asked questions
What is mini sumo?
A robot combat class where two autonomous robots try to push each other out of a circular ring, with no weapons and no contact damage. Mini sumo caps the robot at 500 grams and a 10 by 10 centimetre footprint, with unlimited height, and the ring is a 77 centimetre black disc with a 25 millimetre white border painted around the edge. A round ends when one robot's body touches the floor outside the ring, which happens far more often by driving off the edge than by being pushed off it.
Why is there a weight limit if heavier robots push harder?
Because that is exactly the point. Push force on a small robot is friction limited — it is the coefficient of friction times the weight on the driven wheels, and that number is only about a quarter of what the motors could deliver. Capping mass caps push, which stops the class becoming a contest of who bought the biggest motors. It also means every entrant should be built to the limit, because within the rules mass is the resource and giving away 100 grams gives away 20 percent of your push.
Do I need encoders on the motors?
Not for a first robot. Sumo has no odometry requirement — nothing needs to know where it is on the ring, only whether it is about to leave it. Encoders become useful later for detecting that you are stalled against an opponent rather than driving freely, which is a genuinely different state and one your behaviour code would like to know about. Start without them and add them when the state machine needs the information.
Ultrasonic or time-of-flight for finding the opponent?
Time-of-flight, in a ring. An ultrasonic beam spreads about 15 degrees and reflects off the floor and any nearby surface, so a searching robot finds walls, tables and its own ring border. A VL53L0X has a narrow cone and reads in about 20 milliseconds without acoustic interference. The classic alternative is a pair of short-range analog IR sensors angled outward, which are cheap and fast but see dark opponents much later than pale ones.
How fast should the robot actually drive?
Slower than you want. With 25 milliseconds of sense-to-brake latency and silicone tyres, a robot with its edge sensor 40 millimetres forward of the axle can run at about 0.98 metres per second before it can no longer stop inside the border — and since a hard reversal slides the wheels onto the lower kinetic coefficient, roughly 0.8 metres per second is the honest figure. Most first robots are built for a metre and a half per second and lose every round to the edge rather than the opponent.
Why does my robot lose to an identical-looking one?
Almost always the front edge. Two robots of equal mass and equal grip push equally until one gets under the other, and lifting 40 percent of the opponent's weight makes your push 2.3 times theirs — because the weight you lift is both added to your traction and taken from theirs. That is a bigger effect than any motor, tyre or battery change available to you, and it is decided by a fraction of a millimetre of ground clearance at the wedge tip.