CUAUV
For 3 years I worked with 50 cross-disciplinary teammates to annually create an autonomous submarine and compete in Robosub. In particular, I have contributed to our submarines’ control optimizer, computer vision systems, and PID tuner with implementations in Python, often utilizing OpenCV libraries.
CUAUV is a Cornell Project Team that annually creates an autonomous underwater vehicle for competition in Robosub. The submarine uses a from-scratch software stack to understand the world around it, control itself, and remain functional in the face of disturbances. The team is made up of 50 members, with 4 subteams: Business, Electrical, Mechanical, and Software.
As a Software member, over 3 years I worked with ~12 teammates on improving our submarine’s software. Initially, my work focused on computer vision and locomotion logic. Over time, my work gradually specialized to improving our control system and associated tools and algorithms.
My work was done in Python, utilizing a Dockerized Linux development environment.
CUAUV development happens on a private repo and can be viewed upon request
Contributions
- Optimized control system, incorporating a closed-loop PID system, a desire-to-thrust optimizer, and updated pwm-to-thrust curves with empirical measurements. Our control system produces a responsive and predictively-behaved submarine.1
- Tuned CV algorithms incorporating SIFT, contour denoising, and associated locomotion logic.
- Auto-PID-tuner rewrite that utilizes Zeigler-Nichols to caculate PID values that produce desired behavior. This rewrite included updated logic and quality of life improvements for the auto-tuner and associated tools.
1: Documentation on control work can be found here. See the implementation section.