Prev-Talk | Next-Talk | All-Talks | Talks-Sorted | MOOS-DAWG'26
Talk-24: StackUxV: A generic software framework for coordinating fleets of UxVs
Supun Randeni, Michael Sacarny, Michael Benjamin and Henrik Schmidt
Department of Mechanical Engineering, MIT Cambridge, USA
In this talk, we will briefly introduce the following software projects and explain how they interface with MOOS-IvP, LAMSS Virtual Ocean, and Goby3 to accelerate the development of new platforms and enable a systematically interconnected fleet of vehicles:
1. HydroMAN: An underwater navigation engine enhanced with a self-learning vehicle dynamic model
2. VECTORS: A modular virtual-ocean testbed for vehicle design and navigation-centric simulation, developed to complement LAMSS Virtual Ocean paradigm.
3. StackUxV Core: A generic, configuration-driven software stack that enables rapid development of vehicles without rewriting core code.
4. StackUxV-drivers: A repository containing a set of MOOS drivers for StackUxV.
5. StackUxV-bluewater: A repository containing translator and interface applications that links StackUxV with LAMSS, Goby3, DCCL and NETSIM for passive/active acoustic sensing and deep-water navigation applications.
6. StackUxV-cray: A StackUxV extension that contains applications specific to Pliant Energy Systems’s C-Ray platform.
7. CLOAK: A communication-limited distributed decision-making framework for multi-vehicle AUV operations.
8. missions-StackUxV: The middleware-agnostic software configuration and launch utility of StackUxV.
WHAT IS STACKUXV?
Building on experience from our earlier versions, StackUxV was designed to enable the concept of a generic software framework for uncrewed vehicles. The goal of this design is to accelerate the development of new UxV platforms by providing a reusable and adaptable software foundation that complements the vehicle hardware. To integrate StackUxV onto your own platform, you would only need to write a small layer of additional code, using provided templates. This platform-specific code is primarily used to interface with hardware and features that are unique to your platform. The remaining core software components can then largely be reused by simply configuring them to match your platform’s system and mission requirements.
Does this mean that StackUxV contains all software components required for a UxV? No, StackUxV is not intended to work entirely on its own. While it provides many unique features, it also outsources certain core functionalities to other fully configurable and established marine robotics software projects. StackUxV acts as an architecture that brings together these software projects to coordinate UxVs that operate under it.
WHY STACKUXV?
Why use StackUxV? Why complicate your vehicle’s software system by trying to make it part of a larger, more inclusive framework (the alternative being developing an independent system for your independent vehicles)? The obvious answer on the face of it is code reuse. With StackUxV, we do not need to create a separate software stack for every new platform type we develop. This significantly reduces development and maintenance/training cost.
However, code reuse is not the primary reason why StackUxV was developed. The more critical reason is to handle the UxV coordination. Most approaches to this challenge are centered around communication and relative navigation among vehicles in a swarm. While inter-vehicle communication and relative-navigation are extremely important for this, it is also extremely unreliable, specially in the undersea environment. I do not believe that multiple independent systems connected through inter-vehicle communication and relative-navigation is not the best way to enable a de-centralized swarm of UxVs.
I believe such a system should be built around the idea that each vehicle having a deep embedded understanding of its teammates. Communication and relative navigation are still extremely valuable, but they become less critical if the vehicles already understand how their teammates are structured, what they can do, and how they are expected to behave in various scenarios. StackUxV and CLOAK was designed specifically to enable this deep integration among UxVs operating under the same framework.
WHAT IS MISSIONS-STACKUXV?
missions-StackUxV is the software configuration and launch utility of StackUxV. It assembles the required configuration files and executes the software for a specific vehicle, or for a fleet of vehicles. It primarily contains software configuration parameters and files customized for various fleets, platform architectures, platforms, and missions.
Users can select the fleet, platform architecture, platform, and mission, and then launch the software either as a software/hardware-in-the-loop simulation or as a runtime operation. Based on the user’s selections, missions-StackUxV automatically assembles and executes the relevant software modules.
What makes missions-StackUxV unique is its generic nature. Users can add new fleets, platform architectures, platforms, and missions in an easy and conflict-free manner. This is done by simply adding configuration files (i.e. *.plug, *.cfg.in, *.ros2.yaml and *.sh files) into a new directory dedicated for the user’s system; no code changes are necessary. All fleets, platform architectures, platforms, and missions can then be flexibly mixed and matched based on the user’s requirements. Upon launch, when the final configuration file is assembled, the inter-vehicle collaboration sub-systems and their protocols are automatically built-in (only applicable if a fleet is selected).
missions-StackUxV is also middleware-agnostic. Launching MOOS, ROS2, and Goby applications is already built in. It also allows users to launch custom scripts that include any additional custom software they may have.
Categories:
- Interoperability
- LAMSS Virtual Ocean
- HydroMAN
- VECTORS
- CLOAK
- Goby3