Duke Robotics Club
Computer Vision Lead · Autonomous Underwater Vehicle Team
I was a computer vision lead for Duke Robotics Club's autonomous underwater vehicle team, where we designed, built, and operated a robot for the RoboSub competition. The robot completed tasks including navigating mazes, shooting torpedos at tagets, and dropping markers at specific locations completely autonomously in 10 minute runs.
As computer vision lead I was responsible for our computer vision stack, including the robotic controls for moving to CV targets. I organized and led sub-teams working on smaller projects and led an introductory ROS course for new team members.
At competition, our robot was a finalist placing 6th out of the 70 international teams.
Crush — Our Newest Robot
Crush was the newest generation robot, designed to be a more capable, compact, and aerodynamic for smooth underwater autonomous behavior. The largest software project for Crush was refactoring the code base to be "robot-agnostic", allowing the same code to run on Oogway and Crush.
Oogway — Our Previous Robot
Oogway has existed long before I was a member of Duke Robotics Club. Most of my work on oogway involved optimizing it's localization, improving consistency, and implementing communication with Crush.
- Computer vision for detection and tracking
- Built perception pipelines for real-time object detection and classification using stereoscopic depth camera data in the DepthAI framework.
- Used synthetic training data generated in Unity to produce labels without requiring massive hand-labeling effort.
- Software development in C++ and Python with ROS1/2
- Helped with a large-scale repository migration from ROS1 to ROS2
- Wrote task logic for asynchronus completition of various goals including obstacle navigation, perception/localization, and depth correction.
- Created abstract functionality for finding / moving to some given detectable object.
- Localization and sensor fusion
- Integrated state estimation with DVL and other sensor inputs in ROS Kalman Filter, tuning covariance and correcting drift.
- Implemented coordinate transforms and pose estimation logic.
- Sonar detection and signal processing
- Processed and filtered sonar data to find walls and obstacles in cluttered underwater environments.
- Foxglove Debugging GUI
- Created front-end dashboards for testing/tuning PID, localization, and general task planning