Skip to content

About

Software, configurations, and documentation for deploying the RDML BlueROV2

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

78 Commits

Folders and files

Repository files navigation

RDML BlueROV2 Deployment

This repository hosts the onboard software stack used to deploy the Robotic Decision Making Lab's (RDML) BlueROV2.


Hardware

ROV Platform

  • BlueROV2 (Blue Robotics) -- Heavy Configuration with 150 m tether
  • Navigator Flight Controller (with Raspberry Pi 4, 8 GB)
  • Alpha 5 (Reach Robotics)
  • Modifications: payload bay equipped with additional compute and sensing capabilities

Compute

Device Operating System
Raspberry Pi 4, 16 GB (bluerov_pi) Raspberry Pi OS Lite (Bookworm)
Raspberry Pi 5, 16 GB (autonomy_pi) Ubuntu 26.04 Server
Teensy 4.0 Teensyduino
NVIDIA Jetson Orin Nano Ubuntu 24.04

Additional Sensors

Cameras

Topside


System Architecture

flowchart LR
    subgraph ElectronicsBottle["Electronics Bottle"]
        FC["Navigator Flight Controller\n(ArduSub)"]

        subgraph BlueROVPi["bluerov_pi (Raspberry Pi 4)"]
            BlueOS["BlueOS"]
            MAVROS["mavros_node\n(Docker)"]
        end
    end

    subgraph AutonomyBottle["Autonomy Electronics Bottle"]
        subgraph AutonomyPi["autonomy_pi (Raspberry Pi 5)"]
            Agent["teensy_driver"]
            Bar30["bar30_router"]
            DVL["nucleus_driver"]
            BME["bme680_driver"]
            EKF["robot_localization"]
            RC["ros2_control\n(control stack)"]
            Coord["controller_coordinator"]
        end

        subgraph Teensy["Teensy 4.0"]
            IMU["BNO08x driver"]
        end
    end

    FC -- MAVLink --> BlueOS
    BlueOS -- MAVLink --> MAVROS
    MAVROS -- "/uas1/mavlink_source" --> Bar30
    IMU -- "serial, 921600 baud" --> Agent
    Agent -- "/vehicle/imu01" --> EKF
    DVL -- "/nucleus_driver/twist" --> EKF
    Bar30 -- "/vehicle/depth" --> EKF
    EKF -- "/vehicle/odometry/filtered" --> RC
    Coord -- "controller_manager/switch_controller" --> RC
    RC -- "mavros/rc/override" --> MAVROS
Loading

Networking

Device IP Address
Raspberry Pi 4 (bluerov_pi) 192.168.2.2
Raspberry Pi 5 (autonomy_pi) 192.168.2.3
NVIDIA Jetson Orin Nano 192.168.2.4
Nortek Nucleus 1000 192.168.2.201
Barlus Underwater Camera (New) 192.168.2.20
Barlus Underwater Camera (Old) 192.168.2.11

Wiring & GPIO

Teensy 4.0

Signal Pin / value
I2C SDA 18
I2C SCL 19
BNO08x INT 2
BNO08x RST 3
I2C addr 0x4A
UART → autonomy_pi Serial1, 921600 baud → Pi UART0 (/dev/ttyAMA0)
USB debug Serial, 9600 baud

Autonomy Pi GPIO

Device GPIO
arm1 24
arm2 25
sonar 26
dvl 27
PLD (power-loss detect, pld_monitor) 6 — no debounce, 1 low sample = shutdown

Firmware and Software

BlueOS Configuration

  • ArduSub: vX.X.X
  • BlueOS's MAVLink router is configured with an additional UDP endpoint (UDP Client), in the MAVLink Endpoints page, targeting 127.0.0.1:14755. This mirrors the flight controller's MAVLink stream to the mavros_node container (network_mode: host), which listens on that port per its fcu_url in mavros.yaml.

ROS 2 Configuration

  • ROS 2 Lyrical
  • MAVROS is loaded by default on the bluerov_pi via service
  • The core autonomy stack, including transforms, state estimation, and control are loaded by default on the autonomy_pi via service

Getting Started

Each device is provisioned by its own install script, which sets up the ROS 2 workspace, system dependencies, and systemd services:

The Teensy firmware is built and flashed with PlatformIO:

cd modules/teensy
pio run -t upload

Citation

This repository has been used in the following papers:

@article{palmer2026stochastic,
  title         = {{Stochastic Physics-Informed Neural Networks on Lie Groups for Learning Underwater Vehicle Dynamics}},
  author        = {Palmer, Evan F. and Hatton, Ross L. and Hollinger, Geoffrey A.},
  journal       = {arXiv preprint arXiv:2608.08356},
  year          = {2026},
  eprint        = {https://doi.org/10.48550/arXiv.2608.08356},
  archivePrefix = {arXiv},
  primaryClass  = {cs.RO},
}

License

This project is licensed under the MIT License. Any documentation included from an external source retains its original licensing.

About

Software, configurations, and documentation for deploying the RDML BlueROV2

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages