Difference between revisions of "Project gps"

From MAE/ECE 148 - Introduction to Autonomous Vehicles
Jump to navigation Jump to search
Line 53: Line 53:
==== Main ====
==== Main ====
'''gps_manage.py'''
'''gps_manage.py'''
GPS analog to the Donkey Car manage.py. Add parts to the DK vehicle and calls Vehicle.py.
GPS analog to the Donkey Car manage.py. Add parts to the DK vehicle and calls Vehicle.py.



Revision as of 19:58, 24 March 2018

Team Members

  • Matthew Gilli, Electrical Engineering B.S.
  • Sidney Hsu, Mechanical Engineering M.S.
  • Jason Mayeda, Mechanical Engineering B.S.
  • Roy Sun, Mechanical Engineering B.S.

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..

Project Overview

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:

  1. Initialize a list of waypoints.
  2. Recieve GPS data from GP-20U7 reciever.
  3. Determine current position and bearing of the car with respect to the waypoint.
  4. Calculate throttle and steering commands to direct the car to the waypoint.
  5. Repeat steps 2-4 until the waypoint is reached.
  6. Once the car reaches a waypoint, drive in circle for X amount of time.
  7. 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.


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.

Planner

  • 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

Hardware Implementation

To implement our navigation tasks, we used the inexpensive GP-20U7 GPS receiver. Here you can find more information on the receiver including cost, sample projects, and a data sheet.

To connect the GPS unit to the Pi, follow these pinout instructions:

GP-20U7 --> Pi

VCC --> 3V

GND --> GND

TX --> RX

Software Implementation

Summary

Main

gps_manage.py

GPS analog to the Donkey Car manage.py. Add parts to the DK vehicle and calls Vehicle.py.

DonkeyCar Parts

gps.py

planner.py

Mathematical Equations

gps.py

planner.py

Results

CarTrajectory.jpg