Our RC Car driving autonomously with Pure Pursuit Control
Motion Model with Dynamically Weighted Gaussian Noise
Cone Following with PID Control and Computer Vision

Course Description

“Robotics: Science and Systems” includes both interactive frontal lectures and project-oriented labs. The lectures provide a comprehensive overview of mobile robotics and autonomous vehicles, covering topics in control and estimation theory, computational perception, computer vision, motion planning, and machine learning. The labs exercise these aspects through the design and implementation of algorithms and software to make the mini race car platforms fully autonomous. The labs are based on ROS, the Robot Operating System — a must-know for roboticists — which will be taught in the course. This year the race car scuderia will include cars equipped with the Puck VLP-16 Velodyne Lidar, as well as other state-of-the-art sensors and embedded computers. The race cars will be provided to the students, who will focus on algorithmic aspects.

My Role

I learned about the entire software stack for autonomous vehicles, I focused on implementing lower-level algorithms for state estimation and controls for our team. I built the motion model for our Monte-Carlo Particle Filter, and I improved the generation of noise to disperse the particles by implementing weighted probabilities based on how much motion was occurring in the longitudinal lateral directions, which significantly helped in decreasing error in our vehicle state estimates. In addition, I developed a novel and enhanced version of a pure pursuit controller, in which an adaptive search radius around our racecar was used depending on how large the curvature of the perceived path in front of it was. This resulted in much better stability and intelligence of the original pure pursuit controller that I learned about in class.