Robot Vacuum
I'm building a robot vacuum
~Lucy why don't you just buy a roomba, or better yet a Dreame X50 Ultra?~
Great question!
- I want it to be cute
- I want it to be small and get into the spaces these robots don't reach
- I've never built a robot and I think it'll be fun and I'm curious to see if Claude + hugging face will be able to guide me through the process effectively

Project Plan
Robot Vacuum Project (v3)Concept
Compact robot vacuum (8" x 8", ~4.5" tall target, up to 6" max) that cleans annoying areas to vacuum (under furniture, behind the sofa, etc). Not a full Roomba replacement, a complement to manual vacuuming.
Key features: Apartment mapping (LiDAR SLAM), edge/wall-following mode, corner cleaning with dual suction inlets, small enough to fit under low furniture.
Design Decisions
Chassis & Dimensions
- 8" x 8" square chassis (revised up from original 6" x 6"). Slightly rounded corners (~1/4" radius) to reduce snagging.
- Target height: ~4.5" including semi-recessed LiDAR on top. Max 6" if needed.
- Fully enclosed — all wiring, boards, and components hidden inside.
- No 3D printer — laser-cut acrylic chassis (SendCutSend).
Aesthetic & Color
- Black and white color scheme — white acrylic top/bottom plates, black acrylic face band.
- Two round dot LED eyes on the black face band with GPIO-controlled RGB states.
Solid blue = mapping / exploring
Solid green = cleaning
Yellow = heading back to start
Red = stuck / needs help
Pulsing blue = thinking / planning path
Blinking red = bin full
Alternating red/yellow = error / not working
Dim/off = sleeping / idle
LiDAR Mounting
- Semi-recessed through the top plate — LiDAR drops partway through a ~3" cutout in the white top plate. Only ~0.75" protrudes above the surface, with a clean collar ring.
Vacuum System
- Dual front corner suction inlets paired with side brushes.
- Split airflow (passive Y-duct) — single vacuum motor in the center, ducting splits to both corners.
- Vacuum motor: Neato BCB1012UH-A (12V, 3.45A, ~35.3 CFM, ~1 kPa). Flat and proven.
- Upgrade path: WS7040 12V centrifugal blower (~5.5 kPa) if needed.
- Side brushes on both front corners.
Dust Bin
- Rear slide-out tray (~3" x 2" x 1.5", ~150mL).
- Airflow path: floor → two inlets → Y-duct → dust bin → fan → exhaust.
Drive System
- Differential drive — 2 powered wheels + 1 passive caster ball.
Training Approach
- Hybrid architecture: classical + learned. SLAM and path planning handle "where to go." A learned policy trained via behavioral cloning handles "how to move smoothly" — wall-following, corner turns, tight spaces, stuck recovery.
- Data collection via teleoperation. I'll drive the robot manually with an Xbox controller, recording sensor observations and motor commands into Hugging Face's LeRobotDataset format.
- Action chunking over single-step prediction. The model outputs a smooth sequence of future actions (~200-300ms) rather than one action at a time, which is critical for fluid wall-following and corner turns.
- Train on laptop, deploy to the Pi. The model trains on my laptop using LeRobot's training framework, then a lightweight version runs inference locally on the Raspberry Pi Zero 2 W.
- Small, focused training data. ~40 demonstrations across 5 skills (wall-following, corner turns, tight space navigation, edge approach, stuck recovery). Minutes of data, not hours.