Skip to content

The BlueOS ROS 2 Extension bridges ROS 2 with BlueOS, enabling streamlined control, sensor integration, and real-time data visualization for ArduPilot-based vehicles such as the BlueBoat and BlueROV2.

Notifications You must be signed in to change notification settings

itskalvik/blueos-ros2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The BlueOS ROS2 Extension bridges the BlueOS and ROS2 ecosystems, enabling advanced robotic applications and research on ArduPilot-based vehicles such as the BlueBoat and BlueROV2.

This extension provides drivers and tools for controlling vehicles and visualizing onboard sensor data. It simplifies the process of setting up a ROS 2 environment for marine robotics by offering pre-configured packages for sonar, cameras, and vehicle control—ready to use out of the box.

In addition, it includes a web-based terminal for convenient access to the ROS 2 environment and integrates seamlessly with Foxglove for browser-based data visualization.

🚀 Features

This extension includes the following ROS 2 Jazzy packages:

  • mavros_control

    A Python-based control interface built on MAVROS

    • Supports GPS waypoint navigation (BlueBoat) and RC control (BlueROV2)
    • Includes methods for arming/disarming, takeoff/landing, setting home location, and waypoint following
    • Easily subclass or use as-is to skip writing repetitive boilerplate code
  • gscam2

    A ROS 2 driver for GStreamer-based video streams, with support for intra-process communication to maximize performance.

  • bluerobotics_sonar

    Drivers for Blue Robotics Ping1D altimeter and Ping360 scanning sonar.

    • Nodes for direct hardware interfacing and real-time data visualization
  • sonoptix_sonar

    Drivers and data processing tools for the Sonoptix Echo sonar.

    • Nodes for direct hardware interfacing and real-time data visualization
  • ros-foxglove-bridge

    A WebSocket bridge to stream ROS 2 data into the Foxglove web interface.

    • Fully compatible with the BlueOS Foxglove plugin

📋 Prerequisites

🧰 Installation

You can install the ROS 2 Extension directly from the BlueOS App Store

⚙️ Usage

  • Automatic Launch: The extension launches automatically when BlueOS boots.

  • Web Terminal: Access the extension’s terminal via the left-hand panel in the BlueOS UI.

  • Persistent Storage: The extension links the following directories

    • Host path: /usr/blueos/extensions/ros2/
    • Container path: /root/persistent_ws/

    Use this to store files like custom ROS 2 workspaces or configuration files that need to survive reboots.

🛠️ Build and Run Locally

To build the extension for multiple architectures (arm64, amd64) using Docker:

1. Set Up Multi-Architecture Builder

docker buildx create --name multi-arch \
  --platform "linux/arm64,linux/amd64" \
  --driver "docker-container"
docker buildx use multi-arch

2. Clone the Repository and Build the Container

git clone --recurse-submodules https://github.com/itskalvik/blueos-ros2
cd blueos-ros2
docker compose build

3. Run the Container

docker compose up -d

The extension will be accessible at: http://localhost:4717/

🤓 Manual Installation in BlueOS

  • Connect to BlueOS in your browser:
  • Navigate to the Extensions tab, then switch to the INSTALLED tab.
  • Click the + button (bottom-right), and fill in the fields:
    • Extension Identifier: ItsKalvik.ROS2
    • Extension Name: ROS2
    • Docker image: YOURDOCKERHUBUSER/YOURDOCKERHUBREPO
    • Docker tag: latest
    • Original Settings:
      {
        "NetworkMode": "host",
        "HostConfig": {
          "Binds": [
            "/dev:/dev:rw",
            "/usr/blueos/extensions/ros2/:/root/persistent_ws/:rw"
          ],
          "Privileged": true,
          "NetworkMode": "host",
          "CpuQuota": 200000,
          "CpuPeriod": 100000,
          "Memory": 1097152000
        },
        "Env": []
      }
  • Click CREATE to complete the installation.

About

The BlueOS ROS 2 Extension bridges ROS 2 with BlueOS, enabling streamlined control, sensor integration, and real-time data visualization for ArduPilot-based vehicles such as the BlueBoat and BlueROV2.

Topics

Resources

Stars

Watchers

Forks

Languages

  • HTML 68.2%
  • Shell 16.8%
  • Dockerfile 15.0%