Hardware Platform
- Base: iRobot Create 2 (Roomba)
- Structural frame: 3/4" Schedule 40 PVC pipe
- Custom parts: 3D‑printed base bracket and upper “blue” electronics enclosure
- Sensors and compute (upper assembly): Raspberry Pi 5 + active cooler, camera, MPU6050 IMU, top‑mounted LiDAR, 3S LiPo, 5 V regulator, wiring harnesses
Why iRobot Create 2 (Roomba) as the base
I chose the Create 2 because:
- It is a proven, rugged differential‑drive platform with integrated motor drivers, encoders, bump sensors, cliff sensors, and a charge dock interface.
- The Open Interface (OI) provides documented serial control for motion and telemetry, which simplifies bring‑up and reduces the number of custom PCBs I need to maintain.
- The chassis carries batteries low in the body, giving a naturally low center of mass that helps with the tall mast structure.
- Replacement parts and batteries are widely available; consumables (wheels, brushes) are inexpensive.
In short, it gives me reliable locomotion and power infrastructure so I can focus engineering time on perception and interaction.
Structural Framework: 3/4" Schedule 40 PVC
I built the superstructure as a four‑post mast using standard 3/4" Schedule 40 PVC with printed sockets at the base and a printed upper enclosure that captures the posts.
PVC framework rationale
- Cost‑effectiveness: PVC pipe and fittings cost a fraction of aluminum extrusion and require no specialty tooling. I can build and iterate for a few dollars per meter.
- Structural rigidity: For a ~1–1.2 m mast, four 3/4" PVC uprights provide adequate bending stiffness when posts are constrained at both ends; adding a single mid‑height brace eliminates noticeable sway.
- Lightweight: Low mass keeps the center of gravity near the Roomba deck, improving tip resistance during sudden stops or dock approaches.
- Modularity: I cut posts to length and swap elbows/tees to reconfigure sensor height in minutes. Printed collars give me mounting points exactly where I need them.
- Easy iteration: I can drill, ream, and solvent‑bond or simply screw into PVC without worrying about galvanic corrosion or thread wear in thin‑wall aluminum.
Practical tip: I lightly ream the pipe OD and size printed sockets with +0.3 to +0.5 mm clearance, then use two self‑tapping screws per joint. This holds under vibration and still allows disassembly.
Base Bracket (3D‑printed)
The base bracket is a circular plate that sits on the Roomba’s top deck and presents four vertical sockets for the PVC posts.
Design choices:
- I align the sockets on a square bolt circle to match the upper enclosure’s posts; this prevents torsion and keeps the mast square.
- The bracket uses the Create 2’s existing screw bosses for anchoring (no drilling in the shell). I embed heat‑set inserts in the print so I can torque fasteners without crushing plastic.
- Filleted ribs radiate from each socket into the center ring to distribute mast loads and survive side hits.
Material and print settings:
- PETG or ABS at 30–40% gyroid infill, four perimeters, 0.24–0.28 mm layer height. PETG gives enough ductility to absorb bumps without cracking.
Upper Assembly (“Blue Enclosure”)
The upper enclosure is a printed housing that integrates compute, power, and sensors while acting as the frame’s top plate. It also provides an easy surface for future sensors and user interfaces.
What I integrated
- Raspberry Pi 5 (8 GB) with the official active cooler
- 5 V buck regulator (≥ 5 A) from the 3S LiPo rail
- IMX219 camera module (front‑facing), recessed window
- MPU6050 IMU (mounted near the enclosure’s CG to reduce rotational noise)
- Top‑mounted LiDAR (clear 360° FOV, minimal occlusion from the mast)
- 3‑cell LiPo battery with inline fuse and master switch
- Cable glands and internal harnesses
Thermal management
- I treated the Pi 5 cooler as a forced‑air inlet and provided exhaust vents on the opposite wall. Short, straight flow paths are more effective than decorative perforations.
- Mounting bosses standoff the Pi to keep airflow under the board and let the radiator breathe.
- During sustained computer vision tasks, case temps stayed below ~72 °C with the fan at default curve.
Cable management and signal routing
- I routed all power and signal lines inside the PVC uprights. Two strategies worked best:
- Slotted posts: A 6 mm slot near each end allows the cable to enter/exit without visible loops.
- Printed clip rings: Snap‑on rings with zip‑tie slots prevent cable rattle.
- Power architecture:
- 3S LiPo → 5 V buck (Pi 5 + camera + small peripherals)
- LiDAR on a dedicated 5 V rail with its own inline fuse to prevent brown‑outs on Pi load spikes
- Roomba Interface:
- I use a USB‑to‑TTL serial adapter (3.3 V logic) to the Create 2 Open Interface, routed through the mast. A small isolation board and a common ground tie keep noise out of the IMU.
- UART wiring is strain‑relieved inside the enclosure; the connector is service‑looped for easy removal.
Serviceability
- The lid comes off with four machine screws. All boards mount to threaded brass inserts; nothing self‑tapped into plastic.
- The battery is strapped to a removable tray with a finger‑pull, so I can swap packs without touching the rest of the wiring.
Component Selection Rationale
- Raspberry Pi 5: Enough CPU for real‑time perception pipelines; strong community support; camera and LiDAR libraries are mature on Ubuntu.
- IMX219 camera: Small, easy to mount flush in the enclosure, validated at 30 fps with the libcamera stack.
- MPU6050: Commodity IMU with acceptable drift for mobile base stabilization and motion gating; easy to filter at 200 Hz on the Pi.
- Top‑mounted LiDAR: Clear line of sight above people and furniture; the mast keeps occlusions outside of the primary scan plane.
- 3S LiPo + buck: Keeps high current off the Roomba’s internal 5 V; isolates compute from base brown‑outs and gives me a clean power budget.
Mechanical Integration Details
- Fasteners: Almost everything is M3 or M4 to simplify spares. Steel washers are used where printed parts interface with PVC to prevent local crushing.
- Tolerances: I leave 0.2–0.3 mm clearance for printed‑to‑printed fits and 0.4–0.5 mm for printed‑to‑PVC sockets; this range consistently assembles without post‑processing on a 0.4 mm nozzle.
- Vibration: A single cross‑brace mid‑mast reduces LiDAR ringing and camera shake noticeably. If I add heavier sensors later, I’ll upgrade to a truss‑style brace that bolts to captured nuts in the posts.
Why PVC Instead of Aluminum Extrusion
| Criterion | PVC (3/4" Sch 40) | 2020/2040 Aluminum Extrusion |
|---|---|---|
| Cost | Very low | Moderate to high |
| Stiffness/weight for this height | Adequate with bracing | Higher |
| Tooling | Hand saw, drill, small screws | Chop saw, tapping, brackets |
| Modularity | Cut‑to‑length, printed adapters | Excellent with slot hardware |
| Iteration speed | Very fast | Moderate |
| Aesthetics | Utility‑grade | Professional |
For a research robot that changes every week, the speed and cost advantages of PVC outweigh the stiffness and finish benefits of extrusion. When the design freezes, I can translate the printed sockets to aluminum adapters if needed.
Assembly Summary
- Print base bracket, post sockets, and upper enclosure components with embedded heat‑set inserts.
- Cut four PVC posts to length; drill cable entry/exit slots.
- Mount the base bracket to the Create 2 using existing bosses; verify level.
- Route the harnesses through posts, then seat posts into the base bracket and temporarily pin with screws.
- Install the upper enclosure, capture the posts, and secure all joints.
- Fit the Pi 5, regulator, IMU, camera, LiDAR, and battery; complete wiring with fuses and the master switch.
- Bring up power rails, verify voltages, and perform sensor smoke tests before closing the lid.
Integration Challenges and Solutions
- EMI into IMU at motor start: I added a small LC filter and routed the IMU cable away from the main battery run; problem disappeared.
- LiDAR cable strain: A printed strain‑relief block under the top lid ensures the connector cannot back out with mast flex.
- Tip stability during docking: Adding a small cross‑brace reduced mast oscillations that could trigger the Roomba’s safety bumpers.
Design Goals vs. Outcomes
- Cost: Achieved. PVC + printed parts kept the mechanical BOM inexpensive.
- Functionality: Achieved. Clear FOV for the camera and LiDAR, with clean sensor cabling.
- Modularity: Achieved. I can reconfigure height and add shelves in under an hour.
- Ease of assembly/maintenance: Achieved. All fasteners are accessible; boards mount to inserts; battery swaps are fast.
Bill of Materials (mechanical/electro‑mechanical, major items)
- iRobot Create 2 (base)
- 3/4" Schedule 40 PVC pipe + self‑tapping screws
- 3D‑printed base bracket, post sockets, upper enclosure, strain‑reliefs
- Raspberry Pi 5 + official active cooler
- 5 V high‑current buck regulator (≥ 5 A)
- IMX219 camera module + acrylic window
- MPU6050 IMU breakout
- 2D LiDAR (top mount)
- 3S LiPo battery, inline fuse, master switch
- USB‑to‑TTL serial adapter (3.3 V) for Roomba OI
- Cable glands, wire, ferrules, heat‑shrink
Vipin M
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.