Difference between revisions of "2020WinterTeam1"

From MAE/ECE 148 - Introduction to Autonomous Vehicles
Jump to navigation Jump to search
Line 29: Line 29:

*'''3D Printed Parts''' <br>
*'''3D Printed Parts''' <br>
[[Link title]]
** '''Camera Mount and Protection Case'''
    Our team designed
*'''Drivetrain and Chassis''' <br>
*'''Drivetrain and Chassis''' <br>

Revision as of 18:44, 20 March 2020

Project Team Members

  • Maximilian Apodaca - Computer Engineering
  • Daniel (Wei Te) Ha - Mechanical Engineering
  • Kaifan Yue - Mechanical Engineering
Team 1.png

Project Overview

We set out to build a robot that can find its way to the user in a safe an reliable manor. In particular we were hoping to follow predefined GPS paths and avoid people along the way.

The project started by exploring two separate problems, detecting people and following a GPS path. Luckily for us the GPS path following had a rudimentary solution produced by the NotKiwiBot team. For the person detection we found a helpful tutorial online.

With these two problems solved we went about trying to integrate a new RTK GPS and the vision tracking into NotKiwiBot's code. A first draft of this was easier than expected as we only had to take control of the path planner when we saw a person.

After the first test integration we modified NotKiwiBot's path planner to run at a fixed speed (vs a fixed throttle) and applied some changes to decrease the wobble the car experiences while driving.

Main Components


We have almost a standard schematic with the inclusion of the RTK GPS.



  • Lasercut parts
  • 3D Printed Parts
    • Camera Mount and Protection Case
   Our team designed
  • Drivetrain and Chassis



The RTK GPS works in a similar manor to a regular GPS. We communicate with it via a serial port and pass the standard NMEA messages. However it has additional functionality to handle RTCM data. RTCM is a way to send location correction data to the GPS. We implemented a client to handle (an NTRIP Client) this but did not end up using it.

As a result the code to read from the GPS amounts to opening a serial port with PySerial and parsing the NMEA with PyNema2. This has been documented with all the past GPS teams.

It is important to note that the RTK GPS we are using (C099-f9p) has a built in IMU to give high resolution movement data. That is to say it gives very high resolution movements but without RTK turned on can be up to a meter off in absolute position.

Path Following

The path following we used is very simple and almost identical to NotKiwiBot's implementation. Pick a look-ahead point and try and drive towards it. We do this by trying to match the direction of our car's motion to the direction to the point. This is illustrated in the figure below.


Each time we get close to the look-ahead point, which is within 5 meters in our case, we move the look-ahead point along the path we are trying to follow. This keeps the car targeting a point close enough to make a difference. The code for this can be found in the planner.py file.


Indoor Autonomous Driving

Outdoor Autonomous Driving

People Avoidance

Path Following vis GPS