Add 2020 T-slot quick-swap sensor rail for SaltyLab/Rover/Tank variants: - sensor_rail.scad: 2020 T-slot profile, T-nut, thumbscrew, end cap, index pins, stem/post/tank clamp adapters - sensor_rail_brackets.scad: universal T-nut base + RPLIDAR A1M8, D435i, IMX219, UWB anchor, cable clip brackets (tool-free M3 thumbscrew retention) - sensor_rail_BOM.md: purchased hardware, print settings, export commands Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
116 lines
5.7 KiB
Markdown
116 lines
5.7 KiB
Markdown
# Sensor Rail BOM — Issue #138
|
||
**Agent:** sl-mechanical | **Date:** 2026-03-01
|
||
|
||
Universal 2020 T-slot sensor mount rail system.
|
||
Compatible with SaltyLab (stem), SaltyRover (square posts), SaltyTank (uprights).
|
||
|
||
---
|
||
|
||
## Purchased Hardware
|
||
|
||
| # | Description | Spec | Qty (per robot) | Notes |
|
||
|---|-------------|------|-----------------|-------|
|
||
| H1 | 2020 T-slot aluminium extrusion | 20×20 mm, 200 mm length | 1–2 | OpenBuilds V-Slot or MISUMI HFS5-2020. Order pre-cut or cut with mitre saw. |
|
||
| H2 | M5×10 BHCS | Stainless | 4 | Rail-to-adapter attachment (M5 T-nuts in rail) |
|
||
| H3 | M5 T-nut (drop-in) | For 2020 slot | 4 | Off-the-shelf; used for adapter attachment |
|
||
| H4 | M3×16 SHCS | Stainless | N | One per sensor bracket (thumbscrew + clamping) |
|
||
| H5 | M3 hex nut | DIN 934, stainless | N | One per bracket T-nut (press-fit in pocket) |
|
||
| H6 | M3×6 BHCS | Stainless | 2N | Bracket arm-to-base plate (2 per bracket) |
|
||
| H7 | M4×30 SHCS | Stainless | 2 | Stem adapter clamping bolts |
|
||
| H8 | M4 hex nut | DIN 934, stainless | 2 | Stem adapter nut pockets |
|
||
| H9 | M4×12 BHCS | Stainless | 4 | Post adapter clamping |
|
||
| H10 | M4×12 BHCS | Stainless | 4 | Tank clamp frame attachment |
|
||
| H11 | M3×8 SHCS | Stainless | 4 | RPLIDAR platform bolts |
|
||
| H12 | 1/4-20 UNC hex nut | Zinc or SS | 1 | D435i tripod nut (captured in bracket) |
|
||
| H13 | M2×6 SHCS | Stainless | 4 | IMX219 PCB mounting |
|
||
| H14 | M3×8 SHCS | Stainless | 4 | UWB PCB mounting |
|
||
| H15 | M5×6 set screw | Cup point, SS | 2 | Optional rail end cap retention |
|
||
|
||
*N = number of brackets installed; typical per robot: 3–5.*
|
||
|
||
---
|
||
|
||
## Printed Parts (PETG unless noted)
|
||
|
||
| Part | File | Qty | Print settings | Mass est. |
|
||
|------|------|-----|----------------|-----------|
|
||
| T-nut base | sensor_rail_brackets.scad `base_stl` | N brackets | 5 perims, 60% infill | ~6 g |
|
||
| RPLIDAR bracket | sensor_rail_brackets.scad `rplidar_stl` | 1 | 4 perims, 40% infill | ~18 g |
|
||
| D435i bracket | sensor_rail_brackets.scad `d435i_stl` | 1 | 4 perims, 40% infill | ~14 g |
|
||
| IMX219 bracket | sensor_rail_brackets.scad `imx219_stl` | 1–4 | 4 perims, 40% infill | ~8 g |
|
||
| UWB bracket | sensor_rail_brackets.scad `uwb_stl` | 1–4 | 4 perims, 40% infill | ~10 g |
|
||
| Cable clip | sensor_rail_brackets.scad `cable_clip_stl` | 6–10 | 3 perims, 20% infill | ~2 g |
|
||
| Rail end cap | sensor_rail.scad `end_cap_stl` | 2 | 5 perims, 40% infill | ~3 g |
|
||
| Index pin set (×4) | sensor_rail.scad `index_pin_stl` | 1 set | 4 perims, 40% infill | ~4 g |
|
||
| Thumbscrew wheel | sensor_rail.scad (thumbscrew_wheel) | N | 4 perims, 30% infill | ~1.5 g |
|
||
| Stem adapter half | sensor_rail.scad `stem_adapter_stl` | 2 | 5 perims, 60% infill | ~22 g |
|
||
| Post adapter | sensor_rail.scad `post_adapter_stl` | 1–2 | 5 perims, 60% infill | ~28 g |
|
||
| Tank clamp | sensor_rail.scad `tank_clamp_stl` | 1–2 | 5 perims, 60% infill | ~20 g |
|
||
|
||
---
|
||
|
||
## Rail Length Reference
|
||
|
||
| Robot variant | Recommended rail length | Notes |
|
||
|---------------|------------------------|-------|
|
||
| SaltyLab | 200 mm | On Ø25 mm stem; 1 rail |
|
||
| SaltyRover | 200 mm | On rear sensor mast posts |
|
||
| SaltyTank | 150–200 mm | On tank side uprights or top bar |
|
||
|
||
---
|
||
|
||
## Mass Summary (typical install: 1 rail + 3 brackets + 8 clips)
|
||
|
||
| Item | Mass |
|
||
|------|------|
|
||
| 200 mm 2020 Al extrusion | ~110 g |
|
||
| 3× bracket assemblies (base + arm) | ~60 g |
|
||
| 8× cable clips | ~16 g |
|
||
| 1× adapter (stem) | ~44 g |
|
||
| Hardware (bolts/nuts) | ~25 g |
|
||
| **Total** | **~255 g** |
|
||
|
||
---
|
||
|
||
## Export Commands
|
||
|
||
```bash
|
||
# Rail profile DXF (spec for extrusion supplier)
|
||
openscad sensor_rail.scad -D 'RENDER="rail_2d"' -o sensor_rail_profile.dxf
|
||
|
||
# Printable rail section (prototype)
|
||
openscad sensor_rail.scad -D 'RENDER="rail_section_stl"' -o sensor_rail_200.stl
|
||
|
||
# Adapters
|
||
openscad sensor_rail.scad -D 'RENDER="stem_adapter_stl"' -o sensor_rail_stem_adapter.stl
|
||
openscad sensor_rail.scad -D 'RENDER="post_adapter_stl"' -o sensor_rail_post_adapter.stl
|
||
openscad sensor_rail.scad -D 'RENDER="tank_clamp_stl"' -o sensor_rail_tank_clamp.stl
|
||
openscad sensor_rail.scad -D 'RENDER="end_cap_stl"' -o sensor_rail_end_cap.stl
|
||
openscad sensor_rail.scad -D 'RENDER="index_pin_stl"' -o sensor_rail_index_pins.stl
|
||
|
||
# Brackets
|
||
openscad sensor_rail_brackets.scad -D 'RENDER="base_stl"' -o srb_tnut_base.stl
|
||
openscad sensor_rail_brackets.scad -D 'RENDER="rplidar_stl"' -o srb_rplidar.stl
|
||
openscad sensor_rail_brackets.scad -D 'RENDER="d435i_stl"' -o srb_d435i.stl
|
||
openscad sensor_rail_brackets.scad -D 'RENDER="imx219_stl"' -o srb_imx219.stl
|
||
openscad sensor_rail_brackets.scad -D 'RENDER="uwb_stl"' -o srb_uwb.stl
|
||
openscad sensor_rail_brackets.scad -D 'RENDER="cable_clip_stl"' -o srb_cable_clip.stl
|
||
```
|
||
|
||
---
|
||
|
||
## Assembly Notes
|
||
|
||
1. **Rail purchase**: Order OpenBuilds V-Slot 2020 or MISUMI HFS5-2020 in desired length.
|
||
Specify M5 tapped centre bore at both ends. Index holes optional (can drill manually at 25 mm pitch).
|
||
2. **T-nut bases**: Press M3 hex nut into pocket before inserting into rail.
|
||
Insert T-nut tongue into T-groove from end of rail before fitting end caps.
|
||
3. **Thumbscrew retention**: Thread M3×16 SHCS through thumbwheel, then through bracket arm, into T-nut.
|
||
Tighten hand-tight (¼ turn from snug). No tools required.
|
||
4. **Indexed positioning**: Insert Ø4.9 mm index pin through rail M5 cross-hole and bracket index pocket for repeatable 25 mm grid positioning.
|
||
5. **Adapter installation**:
|
||
- *Stem*: clamp 2 halves around Ø25 mm stem with M4×30 bolts; torque 1.5 N·m.
|
||
- *Post*: slide C-clamp around 20×20 post; tighten M4×12 bolts; torque 1.2 N·m.
|
||
- *Tank*: slide clamp onto 6 mm frame plate edge; tighten M4×12 bolts.
|
||
6. **Cable clips**: Push cable into C-channel from front. Snap into T-groove. No fasteners needed.
|