Technical Documentation: Waypoint Management
Architecture




Waypoints are managed as a collection in the Go Backend's SQL database and synchronized with the robot's local storage. The RosProvider maintains the active waypoint list for the UI.
Technical Details
- File Path: lib/screens/waypoint_screen.dart
- Data Model:
Json
{ "id": "uuid", "name": "Charging Station", "map_id": "current_map_uuid", "x": 1.25, "y": -3.40, "theta": 1.57, "metadata": { "icon": "battery", "color": "green" } } - Backend Endpoints:
- GET /api/waypoints?map_id=...
- POST /api/waypoints: Create/Update.
- DELETE /api/waypoints/:id
Integration Logic
- Coordinate System: Waypoint coordinates are stored in the "Map Frame" (Meters), making them persistent even if the robot is rebooted or moved.
- Visualization: Waypoints are rendered as MarkerArray messages on the /waypoint_markers topic, allowing them to be seen in both the Atman UI and standard ROS tools like RViz.
- Navigation Trigger: Selecting a waypoint invokes the rosProvider.navigateToWaypoint() method, which wraps the NavigateToPose action call.