saltylab-firmware/chassis/bumper_BOM.md
sl-mechanical beb0af7ce6 feat: bumper + frame crash protection for SaltyBot
Protects expensive sensors when robot tips over during testing.

Files added:
  chassis/bumper_frame.scad   — roll cage (25 mm stem collar + 4 inclined
                                posts + crown ring + TPU snap pad). Posts at
                                45/135/225/315° between cameras. Crown at
                                Z=148 mm above cage collar, 18 mm above RPLIDAR
                                top. RPLIDAR FOV unobstructed.
  chassis/base_bumper.scad    — clip-on bumper ring for 270×240 mm base plate.
                                50 mm tall, 15 mm standoff, rounded corners.
                                4× corner + 4× side clip brackets. TPU snap
                                edge caps. FC status LEDs remain visible.
  chassis/stem_protector.scad — split TPU sleeve for 25 mm stem. Snap-fit
                                closure (no hardware). Install 3–4 sleeves
                                along stem at ~200 mm intervals.
  chassis/bumper_BOM.md       — full BOM, print settings, install heights,
                                mass estimate (~500 g total, balanced).

All parts print without supports. Fully removable (clip/snap/clamp).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 23:30:06 -05:00

170 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SaltyBot Bumper & Crash Protection — BOM + Assembly Notes
**Rev A — 2026-03-01 — sl-mechanical**
---
## System Overview
Three independent protection layers:
| Layer | File | Protects |
|-------|------|----------|
| Sensor head roll cage | `bumper_frame.scad` | RPLIDAR, RealSense, 4× IMX219 |
| Base plate bumper ring | `base_bumper.scad` | FC, motors, wiring, wheels |
| Stem impact sleeves | `stem_protector.scad` | 25 mm stem tube along length |
---
## Design Constraints Met
| Constraint | How addressed |
|-----------|---------------|
| RPLIDAR 360° FOV | Roll cage posts at 45°/135°/225°/315° (between cameras). At RPLIDAR scan-plane height (~105 mm from cage collar), posts are ~78 mm from stem CL — well outside RPLIDAR body (35 mm radius). Crown ring sits at Z=148 mm, above RPLIDAR top. |
| Camera views | Posts avoid all four camera directions (0°/90°/180°/270°). |
| FC status LEDs | Base bumper clips below plate edge — does not cover plate top face or sides. LEDs remain visible. |
| Removable | All parts clip or clamp; no permanent fasteners into robot structure. |
| No supports | All parts print flat-face-down (collar halves, posts, crown ring, brackets, sleeves). |
| Lightweight | PLA frame + TPU pads only where needed; crown ring is hollow, brackets are thin-wall. |
---
## Part A — Sensor Head Roll Cage (`bumper_frame.scad`)
### Printed parts
| # | RENDER | Qty | Material | Settings | Notes |
|---|--------|-----|----------|----------|-------|
| 1 | `collar_front` | 1 | PETG | 5 perims, 40% infill | Flat-face-down |
| 2 | `collar_rear` | 1 | PETG | 5 perims, 40% infill | Flat-face-down; mirror of front |
| 3 | `post` | 4 | PETG or PLA | 4 perims, 25% infill | Lay flat on narrow face |
| 4 | `crown` | 1 | PETG or PLA | 4 perims, 30% infill | Flat (natural print orientation) |
| 5 | `tpu_pad` | 1 | TPU 95A | 3 perims, 20% infill, 25 mm/s | Snap-on crown impact ring |
### Fasteners
| # | Spec | Qty | Use |
|---|------|-----|-----|
| 6 | M4×25 SHCS | 2 | Cage collar clamping bolts |
| 7 | M4 hex nut | 2 | Captured in collar rear half |
| 8 | M4×10 set screw | 1 | Height/rotation lock (front collar) |
| 9 | M4×20 SHCS | 8 | Post-to-collar (2 per post, through boss) |
| 10 | M4×16 SHCS | 8 | Post-to-crown (2 per post, through crown top) |
| 11 | M4 hex nut | 8 | Under collar for post bolts |
| 12 | M4 flat washer | 16 | All M4 bolt heads |
### Cage installation — height reference
```
Z from cage collar base:
Z = 0 mm — cage collar bottom (clamp to stem here)
Z = 24 mm — cage collar top
Z = 54 mm — sensor-head collar bottom (≈30 mm above cage collar)
Z = 90 mm — sensor-head collar top + platform
Z = 100 mm — RPLIDAR base (above anti-vibration ring)
Z = 130 mm — RPLIDAR top
Z = 148 mm — cage crown ring (12 mm clear of RPLIDAR)
```
> **Install the cage collar ~30 mm BELOW the sensor-head collar on the same 25 mm stem.**
> Slide collar down stem, position posts, attach crown ring, then tighten collar clamp bolts.
---
## Part B — Base Plate Bumper (`base_bumper.scad`)
### Printed parts
| # | RENDER | Qty | Material | Notes |
|---|--------|-----|----------|-------|
| 13 | `corner` | 4 | PETG | Print upright (Z = tall dimension); 4 perims, 40% infill |
| 14 | `side` | 4 | PETG | Same orientation; 4 perims, 40% infill |
| 15 | `tpu_cap` | ~14 | TPU 95A | 40 mm segments; install end-to-end along all rails |
### Rails (straight sections between clips)
Rails can be 3D-printed from SCAD profile or procured:
| # | Description | Qty | Size | Alternative |
|---|-------------|-----|------|-------------|
| 16 | Front rail | 1 | 8×50×270 mm PLA/PETG extrusion | 25×8 mm aluminium flat bar |
| 17 | Rear rail | 1 | 8×50×270 mm | same |
| 18 | Left side rail | 1 | 8×50×240 mm | same |
| 19 | Right side rail | 1 | 8×50×240 mm | same |
> **DXF export:** `RENDER="rail_2d"` gives the 8×50 mm cross-section. Extrude to required length in CAM software.
### Fasteners
| # | Spec | Qty | Use |
|---|------|-----|-----|
| 20 | M4×16 SHCS | 16 | Rail to corner bracket (2 heights × 2 rails per corner = 4 per corner × 4) |
| 21 | M4×16 SHCS | 8 | Rail to side bracket (2 per side bracket × 4) |
| 22 | M3×8 set screw | 16 | Bracket lock to plate edge (2 per clip × 8 clips) |
| 23 | M4 hex nut | 24 | All M4 rail bolts |
### Installation — clip orientation
```
TOP VIEW of base plate corner:
plate edge (Y direction)
───────────┤
│◄── corner_bracket arm sits here, M3 set screw bites plate edge
plate │
───────────┘
plate edge (X direction)
```
The clip slot engages the BOTTOM face of the plate. Slide bracket onto corner from below; tighten M3 set screws finger-tight → hand-tight.
---
## Part C — Stem Protector (`stem_protector.scad`)
### Printed parts
| # | RENDER | Qty | Material | Notes |
|---|--------|-----|----------|-------|
| 24 | `front` | 34 | TPU 95A | Flat-face-down; qty = no. of stem zones to protect |
| 25 | `rear` | 34 | TPU 95A | Mirror; snap together around stem |
### Recommended placement (25 mm stem, ~1000 mm total stem)
| Position | Z from base plate | Purpose |
|----------|-----------------|---------|
| Sleeve 1 | 50130 mm | Lowest zone — hit first in a side-fall |
| Sleeve 2 | 300380 mm | Mid stem (near battery carousel) |
| Sleeve 3 | 600680 mm | Upper stem |
| Sleeve 4 | 850930 mm | Below sensor head collar |
### No fasteners required
Sleeves snap closed around stem. For extra security on smooth aluminium stem: wrap one loop of 25 mm Velcro strap over each sleeve before snapping closed.
---
## Tools Required for Assembly
- M2.5 / M3 / M4 hex drivers
- Torque wrench: M4 cage-collar bolts 2 N·m, M3 set screws 0.8 N·m
- Thread locker (Loctite 243 blue) on cage crown M4 bolts
---
## Mass Estimate
| Part | Material | Est. mass |
|------|----------|-----------|
| Roll cage collar (×2 halves) | PETG | ~60 g |
| Roll cage posts (×4) | PETG | ~80 g |
| Crown ring | PETG | ~45 g |
| TPU crown pad | TPU | ~15 g |
| Base bumper (×4 corners + ×4 sides) | PETG | ~160 g |
| Base bumper TPU caps | TPU | ~40 g |
| Stem sleeves (×8 halves) | TPU | ~60 g |
| Fasteners | SS | ~40 g |
| **Total** | | **~500 g** |
> **Balance note:** All protection hardware is symmetric about the robot's fore-aft axis. Roll cage is symmetric about all axes. Net CG shift is negligible (<5 mm vertical, <2 mm lateral).