At SONIA, a competitive autonomous underwater vehicle team, I led the software team in a complete architectural overhaul of our submarine's control system. SONIA has a 17-year history in the international ROBOSUB competition, where autonomous submarines navigate complex underwater courses and interact with various objects.
Technical Challenge
The team was operating a stable but aging Java-based control system that had become difficult to extend and maintain. With a small team of 12 students, we needed an architecture that would:
- Support rapid development of new features
- Provide better environmental awareness through sensor fusion
- Enable easier onboarding of new team members
- Maintain operational capability throughout the transition
Architecture Design
I designed a three-layer ROS-based architecture that separated concerns while maintaining clear data flow:
- Provider Layer: At the foundation, the Provider Layer handled all device interactions, transforming raw sensor data from our DVL, IMU, sonar, and cameras into standardized ROS messages.
- Processing Layer: The middle Processing Layer became the heart of our system's intelligence. Here, we built a semantic mapping system that merged inputs from all our sensors, creating a comprehensive understanding of the submarine's environment. A sophisticated navigation node fused position data through Extended Kalman filtering.
- Decision Layer: The Decision Layer crowned the architecture, managing autonomous mission execution through behavior trees. This layer maintained compatibility with our legacy mission scripts, allowing us to gradually transition mission behaviors while keeping the submarine competition-ready.
Implementation Strategy
To manage risk while delivering value, I developed an incremental migration approach. We began by rewriting individual sensor drivers, validating each against the legacy system.
The semantic mapping system was developed as a parallel process, running alongside our existing navigation code. This approach proved invaluable – we could demonstrate the new system's capabilities without risking competition performance.
Leadership Impact
Leading this transformation required more than technical expertise. I managed a team of five software developers while maintaining my full-time student status, coordinating closely with our mechanical and electrical teams for system integration. We established new coding standards and documentation practices, creating a foundation for long-term maintainability.
The mentoring aspect proved particularly rewarding. I worked with new team members to build their understanding of ROS development and autonomous systems, creating documentation and training materials that would serve future teams.
Results
The new architecture transformed our submarine's autonomous capabilities with measurable improvements across all systems.
Our semantic mapping system now fused multi-sensor data into a coherent world model, tracking objects in 3D space even when temporarily out of view. Our custom Extended Kalman filter, combining DVL, IMU, and depth sensor data, achieved better positional accuracy – critical for precise navigation during competition runs.
Real-time parameter tuning enabled quick adaptation to varying pool conditions. Development velocity increased dramatically: mission scripts now took days rather than weeks to develop, and system issues could be diagnosed through visualization tools rather than requiring multiple pool sessions.
The platform became the foundation for subsequent generations of SONIA's software stack.