2020WinterTeam1

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

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

Schematic

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

Team1-WI2020Schematic.png

Hardware

  • Lasercut parts
  • 3D Printed Parts
    • Camera Mount and Protection Case

Our team designed camera mount that can easily adjust height and angle. During our use, the camera mount perfectly satisfied our need to finding best camera position for track training and later people detection.

Camera Mount Assembly.PNG

We also tailor-made a protection case for the camera unit. It fits perfectly and can protect the whole unit as well as the lenses. The drawing is attached below.

Camera Case Drawing.PNG
    • Camera Mount and Protection Case

The RTK GPS unit that we purchased is very expensive and powerful and we want to avoid any damage to it so that future teams can use it. You can download can print the case here:GPS Case and GPS Base

GPS Case Assembly.PNG
  • Drivetrain and Chassis
  • GPS RTK

Software

RTK GPS

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.

Team1-WI2020PathFollowing.png

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.

Milestones

Indoor Autonomous Driving

Outdoor Autonomous Driving

People Avoidance

Path Following vis GPS