The International Autonomous Robot Racing Competition is held at the University of Waterloo and puts small autonomous vehicles (about 1/10 scale) through a drag and circuit race through a track defined by brightly colored tape. The robot had an Intel NUC on it running the race AI and was connected to an arduino and a camera. The arduino was connected to an encoder on the drive shaft running a PID controller I helped tune. I trained an SVM on previous competition data but we were unhappy with the classification performance and so opted for a simpler vision approach. The NUC was running ROS C++ code and using OpenCV on the output from the camera. I migrated the existing computer vision nodes to be nodelets, which dropped the load on the processor.
I was software lead of the team and went with it to Canada where I tuned a lot of the color masks the vision code used. The robot won third place at event. Click here for software and here for firmware.