Implements Phase 2d outdoor autonomous navigation for SaltyBot. GPS source: SIM7600X /gps/fix from PR #65 (saltybot_cellular). saltybot_outdoor package: - osm_router_node: Overpass API + A* haversine graph + Douglas-Peucker simplification, /outdoor/route (Path) + /outdoor/waypoints (PoseArray) - gps_waypoint_follower_node: GPS->Nav2 navigate_through_poses bridge, quality-adaptive tolerances (2m cellular / 0.30m RTK) - geofence_node: ray-casting polygon safety, emergency stop on violation - outdoor_nav.launch.py: dual-EKF + navsat_transform + all nodes - outdoor_nav_params.yaml: 1.5m/s, no static_layer, 2m GPS tolerance - ekf_outdoor.yaml: robot_localization dual-EKF + navsat_transform - geofence_vertices.yaml: template with usage instructions docker-compose.yml: fix malformed saltybot-surround block; add saltybot-outdoor service (depends on saltybot-nav2, OSM NVMe cache) SLAM-SETUP-PLAN.md: Phase 2d done RTK upgrade: SIM7600X (+-2.5m) -> ZED-F9P (+-2cm), set use_rtk:=true Co-Authored-By: Claude Sonnet 4.6 <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%