All Projects
Robotics / Manufacturing2024-2025

12 lb Combat Robot

Mechanical lead on a newly founded combat robotics subteam, designing a four wheel drivetrain, TPU armor, and a high speed vertical spinner for a 12 lb robot competing in the National Havoc Robot League.

12 lb Combat Robot

Twelve pounds, and everything has to fit inside it.

NHRL's 12 lb class puts a hard ceiling on the whole robot: drivetrain, weapon, battery, electronics, and armor all share one weight budget. The dominant weapon in the league is the vertical spinner, a steel disc carrying enough energy at speed to throw a robot of this size into the air, so armor is not optional and neither is a drivetrain that can still drive after taking a hit.

The architecture I settled on is a four wheel drive chassis with a vertical spinner at the front and a wrapped armor shell around the sides, sized so the wheels stay clear of the armor even when it deflects.

Full robot CAD: spinner at the front, four wheel drivetrain, armor wrapping the sides
Full robot CAD: spinner at the front, four wheel drivetrain, armor wrapping the sides

Four driven wheels, built in house.

The drivetrain runs all four wheels through belt reductions from motors mounted inboard, where the chassis protects them. I printed the pulleys rather than buying them so ratios could be changed between test sessions without waiting on parts, and the wheels are printed hubs with silicone tread cast directly onto them, which gives grip on the arena floor and a compliant layer that survives impacts better than a rigid wheel.

Everything about the layout is arranged around keeping the drive parts inside the frame rails and the fragile parts away from the front.

Drivetrain CAD with the chassis plates hidden
Drivetrain CAD with the chassis plates hidden
Printed pulleys, iterated between test runs
Printed pulleys, iterated between test runs
Printed wheel hubs and casting jigs coming off the plate
Printed wheel hubs and casting jigs coming off the plate
Silicone tread cast onto the hubs
Silicone tread cast onto the hubs

A vertical spinner sized to the weight left over.

The weapon is a vertical spinner: a mass concentrated at a large radius, spun to high rpm, delivering its energy in a single upward strike. Design starts as a sketch driving the outer profile, tooth positions, and the bolt circle that ties the disc to its hub, then becomes an assembly with the bearing stack and drive pulley around a central shaft.

Because the weapon and its mount carry the highest loads on the robot, I machined its parts rather than printing them, and the fits between the shaft, bearings, and hub had to be checked on the machine rather than trusted from the drawing.

Weapon profile sketch with the bolt circle and tooth geometry dimensioned
Weapon profile sketch with the bolt circle and tooth geometry dimensioned
Weapon assembly: disc, bearing stack, and drive pulley on the central shaft
Weapon assembly: disc, bearing stack, and drive pulley on the central shaft
Checking the machined fit on the weapon assembly

Simulating a 5,000 N hit.

The armor's job is clear: absorb strikes without deforming into the drivetrain. Clearance between the armor and the wheels is tight, so deflection, not fracture, is the governing failure mode.

The load case follows from how the robot actually gets hit. The front face carries an angled section at 70° that protrudes and makes first contact, so the traction vector is applied normal to that face at 5,000 N, estimated from a steel spinner at competition rpm. The mounting walls are bolted to the chassis, modeled as fixed. Bolt holes and fillets were removed from the simulated geometry, which is conservative: fillets only add strength, so a part that passes without them passes with them.

The armor piece as modeled, with the 70° angled strike face and mounting wall
The armor piece as modeled, with the 70° angled strike face and mounting wall
Boundary conditions: fixed mounting walls in green, 5,000 N traction normal to the angled face in pink
Boundary conditions: fixed mounting walls in green, 5,000 N traction normal to the angled face in pink

TPU passes. Aluminum passes by a lot more.

TPU was the first candidate for two reasons: it behaves like both plastic and rubber, with high elongation at break and load bearing capacity that holds across the temperature range a spinning steel disc creates on impact, and it prints, so iterating a design costs hours instead of days. A mesh convergence study across coarse, medium, and fine meshes showed both peak displacement and peak von Mises stress still climbing at the finest mesh, so the finest was used throughout.

Under load the front of the TPU armor deforms substantially, but the mounting wall facing the chassis barely moves, only the bottom edge shifts, and within the clearance available. By the maximum distortion energy criterion the part does not fail, and factor of safety across most of the body sits above 10.

Swapping to 7075 aluminum gives similar deformation with factor of safety above 50 for most of the piece, more than five times the margin. Since aluminum is denser and the robot is weight limited, I halved the wall thickness and reran it: the factor of safety stayed at 50. The strength was there to spend, which is exactly the kind of headroom worth finding before parts get made.

TPU went on the robot anyway. Passing at a factor of safety above 10 is enough for this load case, and the aluminum margin was headroom we had no use for once weight and cost entered the picture. TPU also absorbs a hit instead of transmitting it into the chassis, and a printed shell can be reprinted overnight between matches, where a machined aluminum one cannot. The aluminum study stands as the answer to what the design would need if the weapon threat scaled up.

von Mises stress in TPU against a yield strength of 79.3 MPa
von Mises stress in TPU against a yield strength of 79.3 MPa
Displacement: the strike face deflects, the mounting wall holds
Displacement: the strike face deflects, the mounting wall holds
TPU factor of safety, red below 10
TPU factor of safety, red below 10
7075 aluminum at half wall thickness, still above a factor of safety of 50
7075 aluminum at half wall thickness, still above a factor of safety of 50

Machining the structural parts.

I machined the frame plates, weapon mounts, and hubs in house on CNC mills and lathes, which is where the tolerances that matter on this robot get decided: bearing bores, shaft fits, and the hole patterns that have to line up across three stacked plates. I did the bulk of that work myself and managed the rest across the team so parts came off the machines to the same standard.

The printed parts (armor, pulleys, wheel hubs, motor mounts) filled in everything that could trade strength for weight and iteration speed.

Side plate on the mill
Side plate on the mill
Chassis coming together around the weapon mount
Chassis coming together around the weapon mount

Power and control inside the frame.

Battery, speed controllers, receiver, and wiring all live inside the frame rails, packed around the drive motors so nothing sits in the path of an incoming weapon. Routing had to leave the battery accessible between matches without exposing connectors at the surface.

Electronics bay: battery, ESCs, and drive motors inside the rails
Electronics bay: battery, ESCs, and drive motors inside the rails
Controller and electronics check

Driving it.

Assembled and under power, with the weapon and drivetrain running together for the first time.

Assembled robot before the armor went on
Assembled robot before the armor went on
Test run

What came back from the arena.

Competition is the only test that matters and the only one you cannot simulate. The robot came back with real damage: bent weapon forks, scarred armor, and hardware to replace between matches, all of it useful information about where the design was actually weakest rather than where the simulation said it would be.

Running a subteam through its first competition season was as much of the work as the machining, and the more rewarding half. Ten people converged on one robot inside a fixed weight budget and a fixed calendar, and got it to the field ready to fight. Clear ownership of every subsystem is the lesson I carried into the next build.

Post-competition damage
Post-competition damage
The team working between matches
The team working between matches