Skip to content

MOLA Routing System (MOLARS)

The MOLA Routing System (MOLARS) is a software system for intelligent control of the MOLA autonomous underwater vehicle (AUV). MOLARS is written in C++ and uses LCM for inter-process communication.

About MOLA

MOLA AUV (Multimodality Observing Low-cost Agile Autonomous Underwater Vehicle) is an underwater vehicle developed at MBARI. Learn more about the platform in the MBARI press release.

System Overview

MOLARS provides a comprehensive framework for autonomous navigation and mission execution for underwater vehicles. It offers:

  • Modular Architecture: Independent components that can be run as separate processes
  • Multi-Level Control: From low-level control to high-level mission planning
  • Extensible API: Both REST and Python interfaces to interact with the system
  • Robust Navigation: Behavior tree-based execution of navigation tasks

System Architecture

The MOLARS system is summarized in the following diagram:

MOLARS System Diagram MOLARS System Diagram

Components

MOLARS consists of several key components that work together to provide a complete autonomous navigation solution:

Control Server

The control server is responsible for managing the 6-DoF state controller. It provides an interface for issuing 6-DoF control commands to the AUV, as well as for querying the current state of the AUV. As such, the control server depends on the controller and the state estimator.

The navigation server is responsible for managing the navigation stack. It coordinates planning, path following, and obstacle avoidance in order to achieve robust and reliable autonomous navigation. The navigation server depends on the planning server*, control server, and obstacle detector*.

Each navigation command issued to the navigation server runs a Behavior Tree to execute the navigation task.

Mission Server

The mission server is the highest-level component of MOLARS. It is responsible for parsing and executing missions by managing the state of all other components. Primarily, the mission server depends on the navigation server.

API

MOLARS provides a FastAPI REST API for interacting with the system via HTTP. The API is written in Python and allows for remote control and monitoring of the system.

Mission Script API

MOLARS provides a Python API for creating and executing missions. This API is used by the mission server to execute missions, and can also be used directly for interactive control and testing.


* These components are not yet implemented.

Copyright © 2025 Monterey Bay Aquarium Research Institute