For my graduate robotics course, I worked on Team Apollo's entry in the Autonomous Vehicle Competition, programming and modifying an AWS DeepRacer to autonomously navigate an indoor track. Using a Raspberry Pi camera and OpenCV, we implemented line following, stop sign recognition, speed limit detection, and a real-time telemetry interface. The vehicle achieved consistent lap times averaging just over two minutes, successfully completing multiple competition challenges.

Challenge Requirements

  • Camera Navigation
    Using only the onboard RGB camera, the vehicle detects visual cues in the environment to determine when to execute turns and navigate the course.

  • Obey Stop Signs
    Detects stop signs on the track, bringing the vehicle to a complete stop, pausing briefly, then continuing.

  • Obey School Zone Speed Limits
    Detects speed limit signs, reducing speed by half through the school zone and accelerating back to full speed after passing it.

  • Telemetry Visualizer
    Displays an interface showing real-time vehicle telemetry, including speed, steering angle, and other sensor data.

Unmodified AWS Deepracer Car

Telemetry Dashboard Showcasing Various Sensor Information, Including Line Detection and Color Recognition.

As part of Team Apollo, I was responsible for developing our ROS2 architecture using a publisher/subscriber model, allowing sensor and camera readings to control the vehicle's motor function.

I also contributed to a line-following algorithm by tuning HSV color ranges and contour detection, and implementing a full PID controller for stable steering.

This extended into tuning detection thresholds for stop signs and speed limit signs, with each sign identified through color segmentation. Red slowed or stopped the vehicle, and green restored full speed. Lighting conditions, contour variability, and PID tuning posed significant challenges, but through iterative testing we achieved over 80% reliability on feature detection.

Software Contributions

Videos Of Challenge Feature Testing

RC Car making a turn and correcting itself back to the tape strip

RC Car Obeying School Zone Speed Limit Signs

RC Car Obeying a Stop Sign

In addition to software contributions, I worked on physical assembly and testing of the DeepRacer platform, debugging several hardware issues that came up during the semester. I helped reprint structural components after a crash, identified a fan clearance issue causing thermal shutdowns, and adapted the Raspberry Pi's mounting with custom 3D-printed spacers.

On the electronics side, I supported battery diagnostics when a lockout occurred near the end of the project, sourcing and validating new power systems to keep testing on track.

Hardware Contributions

RC Car Chassis with DC and Stepper Motors