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

Team Members

Photo of Team7, from left: Zachary, Andrew, Samuel, and Yue
From left to right: Zachary, Andrew, Samuel, and Yue

Andrew Schade (Math—CS)

Samuel Scott (MAE)

Yue Zhuo (ECE)

Zachary Hooker(MAE)

Team Members

Andrew Schade

Major:  Math and Computer Science

Samuel Scott

Major: Mechanical Engineering

Yue Zhuo

Major: Electrical Engineering

Zachary Hooker

Major: Mechanical Engineering (spec. Controls and Robotics)


We would like to give a special thank you to our advisors for providing us with the tools for success:

Professor: Jack Silberman          

Lead TA: Dominic Nightingale           

TA: Ivan Ferrier

Also a special thank you to UCSD ECE Makerspace for their helpful guidance.

Project Overview

For our Final Project, we aimed to design and build of an autonomous vehicle operating under lane guidance with a second auxiliary panning Oak D camera powered by a servo and Adafruit enabling panoramic views. To achieve this goal, we implemented code that enables the robot's auxiliary panning camera to track animals using Computer Vision utilizing P.I.D. control codes to keep it in sight, and then play the noise of the sighted animal.

Team 7 RoboCar - AKA "The Bomb" -Side
Team 7 RoboCar - AKA "The Bomb" -Front

If allotted more time for this project, we would have added the ability for the auxiliary camera to tilt, as well as the ability for the entire robot to drive towards and follow the tracked object(animal in this case). We intended to utilize a YOLO ( You Only Look Once) v.5 algorithm for animal detection using the Oak D camera.

Hardware & Robot Design

Here is a short video of our Robocar utilizing the Panning Camera : "https://youtube.com/shorts/KosKn3mE--w"

All of our protective casings were designed and 3D printed using Fusion 360 and Solidworks. Our baseplate template was laser cut and is made from yellow "3/16" thick acrylic. The material used for all of our 3D printed parts are PLA and ABS. We used the TAZ Lulzbot for 3D printing Please see the following components we created for this project: VESC Case, Lidar Case, Speaker, Case, Camera Case, Servo Case and base plate mount.

VESC mount

VESC Case drawing.png

VESC case.png

Lidar mount

Lidar Case drawing.png

Lidar case.png

Speaker mount

Speaker Case drawing.png

Speaker case.png

Front camera mount

Front Camera Case drawing.png

Front camera case.png

Servo mount

Servo Case drawing.png

Servo case.png

Swivel camera mount

Swivel Camera Case drawing.png

Swivel camera case.png

The Bomb Wiring Schematic




Docker Images


Open CV

UCSD Robocar2 ROS - Autonomous Laps

Here is a short video of our Robocar completing Autonomous Laps using ROS2 code : "https://youtu.be/LFoWoTk_cZo"

Lane Detection Software

DonkeyCar Autonomous Laps

Here is a short video of our Robocar completing Autonomous Laps in DonkeyCar environment : "https://youtu.be/ShYABfXelQs"

Challenges faced

  • Software Updates

-Since the Oak D camera was a new addition to the class curriculum and had not been completely configured to communicate properly with our designated software packages, we were often getting the updated software just before the deadlines were expected to be met which in turn led to many late nights reconfiguring and attempting to debug fresh code. We ultimately switched to a webcam for navigation purposes, presenting a slightly difficult problem in navigating a 2D printed track to practice and complete training on due to the heavy glare from any source of light.

  • Faulty VESC

-Since the newer VESC we were provided was having issues with power distribution to the servos as well as the Oak D camera, we ended up swapping out the VESC for an older version that worked well.

  • Faulty Jetson NANO

-The Jetson we were initially provided was having Wi-Fi connection issues as well as an irregular powering off problem occurring as soon as we ran any programs requiring video feed. As soon as we swapped out the Jetson for a different one, the power issue was solved and we were able to continue experimenting.

  • Compatibility issues between supplied VESC and servo motors

-the main cause of this issue stemmed from inadequate servos being supplied too much voltage and current when steering was to aggressively modified, or was at the extremes. After diagnosing, we installed a new servo with more capabilities in handling torque, as well as decreased the max and min of the steering bounds and the sensitivity to turn less rapidly. This seemed to correct the issue and enabled us to complete our ROS2 autonomous laps.

  • Fractured baseplate

-Upon inspection, our baseplate experiences cracking close to the mounting points to the chassis of the car, and particularly on the outside edge where there was a sharp (90deg) change in direction of the surface. In future designs on should ensure that these corners are filleted with smooth round curves instead of sharp corners to help with the dissipation of stress at these areas of stress concentrations.