GPS and Autonomous Vehicles
Global Positioning System (GPS) is formed by a network of satellites that provides geolocation data (time stamps, coordinates) to compatible GPS receivers. GPS data is commonly used along with a suite of other sensors in autonomous systems for navigation and control. The data provides coordinates in a global coordinate frame (latitude, longitude) that can be used to perform simply point-to-point navigation tasks. For more information about GPS fundamentals, see GPS.gov..
Due to complications with previous plug-and-play GPS modules for DonkeyCar autonomous vehicles, we sought to build our own DonkeyCar-compatible GPS module from scratch. The main flow of our project is as follows:
- Initialize a list of waypoints.
- Recieve GPS data from GP-20U7 reciever.
- Determine current position and bearing of the car with respect to the waypoint.
- Calculate throttle and steering commands to direct the car to the waypoint.
- Repeat steps 2-4 until the waypoint is reached.
- Once the car reaches a waypoint, drive in circle for X amount of time.
- Repeat steps 2-6 until all waypoints in the list have been visited.
This project was implemented with two main processes: planning and GPS interface.
- Polls for GPS data through the Pi serial port.
- Parses GPS strings for relevant coordinate and time data.
- Inputs: Bit/s
- Outputs: Car location: GPS coordinates in latitude and longitude.
- Implements control algorithms to calculate actuator commands for the car.
- Keeps track of additional stop conditions.
- Manages waypoint list.
- Inputs: Car location: GPS coordinates in latitude and longitude
- Outputs: Throttle and steering commands