feat: route recording + autonomous replay (#71) #75
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-perception/route-record-replay"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Implements Phase 3 "ride once, replay forever" route system for SaltyBot. During a UWB follow-me session, the robot records its GPS path. Next ride: it replicates the route autonomously.
saltybot_routespackage — 3 nodes:route_recorder_node/gps/fix(SIM7600X PR #65),/odom(STM32),/imu/data(D435i heading),/uwb/target(follow-me context PR #66)/data/routes/<name>.jsonlon NVMe)/route/start_recording,/route/stop_recording,/route/save,/route/discardroute_replayer_node.jsonlroute file; converts GPS lat/lon → map-frame ENU (flat-earth, same approach as outdoor_nav)navigate_through_poses/route/load,/route/start_replay,/route/pause,/route/stop/route/pause_cmdtopic (Bool) or serviceroute_manager_node/route/list→ JSON array:[{name, distance_m, duration_s, recorded_at, waypoint_count}, ...]/route/info→ full metadata JSON (no waypoints array — can be large)/route/delete→ removes named route fileSupporting files:
route_system.launch.py— starts all three nodes with sharedsave_dir+route_nameargsroute_params.yaml— operational notes + file format documentation inlineTest plan
docker compose up -d saltybot-routes(after adding service to docker-compose)/data/routes/test_loop.jsonlon NVMeros2 service call /route/list std_srvs/srv/Trigger '{}'— see route in listros2 service call /route/pause std_srvs/srv/Trigger '{}'ros2 service call /route/stop std_srvs/srv/Trigger '{}'ros2 service call /route/delete std_srvs/srv/Trigger '{}'— verify file removedCloses #71.
🤖 Generated with Claude Code