- 2D occupancy grid (100x100 cells @ 10cm resolution, configurable) - LIDAR integration: subscribes to /scan and /odom for real-time obstacle detection - Ray-casting: marks hit points as obstacles, intermediate points as free space - Cell states: unknown/free/obstacle/hazard with confidence tracking (0.0–1.0) - Hazard classification: 3+ detections = permanent hazard (stays in memory) - Temporal decay: 95%/day for hazards (30-day half-life), 85%/day for obstacles (~21-day) - Decay interval: applied hourly, cells revert to free when confidence < 20% - Persistence: auto-saves to /home/seb/saltybot-data/obstacle_map.yaml every 5 minutes - YAML format: grid metadata + cell array with state/confidence/detection_count/timestamp - OccupancyGrid publisher: /saltybot/obstacle_map for Nav2 integration at 5 Hz - Thread-safe: all grid operations protected with locks for concurrent callbacks - Statistics: hazard/obstacle/free cell counts and coverage percentage - Dashboard overlay ready: color-coded cells (red=hazard, orange=obstacle, gray=free) - Configurable via obstacle_memory.yaml: grid size/resolution, range limits, decay rates Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Description
SaltyLab self-balancing bot firmware (STM32F722)
Languages
Python
67.1%
C
11.4%
JavaScript
9.2%
OpenSCAD
7.8%
HTML
1.5%
Other
2.9%