Build pathIntermediateA weekend or two

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.

Build a Mini Sumo Robot: Grip, Wedge and Edge Sense technical schematicCLEARANCE FIELD

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

100%
Build

Make it stay in the ring

Build

Goal

Win a push

Goal

Components

Tutorials in this path

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.