Skip to content

Autonomous Rover

The navigation system for the autonomous rover is designed to compute and follow a GPS-based route from the rover's current location to a user-defined destination. It integrates third-party routing APIs for initial path planning and performs in-house logic to manage GPS inaccuracies and route validation. The system is modular, enabling future replacement with a fully self-hosted OpenStreetMap (OSM)-based engine.

Overview

๐Ÿ”น Initial Localization

At time t=0, the rover continuously fetches its current geographic coordinates using a standard GPS module. This forms the base reference point for route computation.

๐Ÿ”น User Interaction and Destination Input

The system exposes a local server endpoint where a user can input the desired destination. Upon receiving the request, the destination is geocoded into coordinates and paired with the roverโ€™s current position to define a navigation query.

๐Ÿ”น Third-Party Routing Integration

the img is not the right depiction of what we are doing

The paired coordinates are transmitted to a third-party navigation provider (currently testing with Google Maps and its competitors). The service returns a sequenced list of intermediate waypoints (coordinates) representing the recommended path.

๐Ÿ”น Route Preprocessing and Turn Detection

Post-receipt, the returned coordinate sequence undergoes lightweight preprocessing. Every set of three consecutive points is analyzed to detect significant heading changes indicating a turn. Identified turning points are cached locally for decision-making during motion.

๐Ÿ”น Checkpoint Handling and Error Mitigation

checkpoints idea taken from games logic

Given that the onboard GPS module is not RTK-enabled and has a positional error margin of a few meters, the system employs geofenced coordinate ranges instead of exact positions. These act as checkpoints for route validation and deviation handling.

๐Ÿ”น Visual Verification at Turns

As the rover approaches a predefined coordinate range with a turn, it activates the YOLOv8-based road segmentation model to visually verify road geometry and make precise turn decisions. (See Driving Mechanism section for full integration details.)