Skip to main content

BlueOS

Overview

BlueOS is a modular, powerful and efficient platform for managing vehicles or robots via an onboard computer.Blueos width Interface Highlights

Quick

  1. document
  2. source code
  3. Releases, Changelogs, Documentation
  4. Extension Library
  5. support

Some background information

The original companion software project (launched in 2015) had the initial goal of routing the underwater vehicle's video stream and communications to the surface computer and providing some basic configuration of these functions and the vehicle's firmware. While this simple scope was great for getting the project started, it also meant that new, complex features weren't designed in at the outset, making maintenance and feature development increasingly challenging.

Drawing on lessons learned from practical functionality and software architecture requirements, the design and development of BlueOS fully meets the requirements of our desired in-vehicle computer system, while retaining the potential to evolve into a true automotive operating system. At its core, BlueOS is a modular design, making it portable, stable for updates, and scalable.

We’re excited for the future of BlueOS and can’t wait for you to join us and try it out! 😄

What's in a BlueOS vehicle

BlueOS is designed to integrate seamlessly with the connectivity portion of the hardware and software stack involved in running and operating a vehicle.

Generally speaking, BlueOS (and its extensions) runs on the onboard computer and helps the underlying autopilot (on the flight control board) communicate with the operator (through the control station computer ), while also interfacing with and passing data from sensors that do not provide direct measurements of the vehicle's control state.

Here is an overview of the common components in the BlueOS-related software stack:

heap

Project Principles and

As a core development team, we've been hard at work envisioning the future direction of in-vehicle computers and the capabilities they'll require. Our initial thinking has been refined into the following core concepts, many of which are incorporated into BlueOS today:

  • The interface is simple by default, but powerful when needed - users have the power to change anything they want and customize the complete experience
  • Designed to focus on what's important, improving user access to information and controls through user-friendly UI and UX
  • Make complex tasks simpler and improve usability by reusing design patterns from other apps (based on Material UI guidelines )
  • Advanced error handling and detection, making it clear to users and developers about any problems and how to fix them
  • Simplify development, providing full access to our service API and modular development model
  • Contributions are encouraged, the project is open source!
  • Portable and flexible, you should be able to run it on a Raspberry Pi 3/4 or any SBC with a Linux OS. Contributions are welcome.
  • Powerful functions, low CPU usage, and efficient operation of the entire system
  • Developed on a solid foundation, key components or labor-intensive services are designed with state-of-the-art languages and features to ensure stability

Some of these principles will only become apparent in future releases, but the underlying software architecture and organization have been designed from the ground up to support and enable them.

What's new in BlueOS-1.4

This article summarizes the major changes and new features in BlueOS-1.4. Related features, where applicable, are also included in the Feature Comparison table. For detailed information on each change, see the full release notes.

Safety

  • Added safe mode to avoid accidentally executing unsafe configurations when the vehicle is armed

Extensions

Title

Page

  • Autopilot parameters
    • Added parameter description override feature for custom parameter support
  • MAVLink endpoints
    • Added MAVLink Server as a routing alternative, with full endpoint logging and a detailed debug interface, as well as basic support for Zenoh communications
  • Vehicle Settings
    • Added Servo Limit slider on PWM Output page
    • Added camera stand configuration options
    • Added GPS heading to the compass page (when available)
    • Added information tooltips to display underlying autopilot parameters
  • Video Stream
    • Added support for H265 encoded video streams
    • Improved the robustness and intuitiveness of the camera manager interface
  • BlueOS version
    • Added Docker login options to reduce rate limits and improve private registry support
  • System Information
    • Added hardware board model information

Device/Hardware

Connectivity

  • Added a backup DHCP server to the Ethernet network interface that will automatically start if no other DHCP server is detected on the network

Data

  • Added Sentry reports for user generated feedback

Feature

BlueOS has almost all the features of the old Companion version, plus several highly anticipated new features!

featureBlueOS 1.4BlueOS 1.3BlueOS 1.2BlueOS 1.1BlueOS 1.0companion
Onboard computer→ + Raspberry Pi 5→ + Raspberry Pi CM4→ + Other Linux-based SBC images coming soon+ Supports Raspberry Pi 3B / 3B+ / 4B + You can install from scratch using the installation script on any Linux computer. (Your hardware configuration may need to be modified)Requires a Raspberry Pi 3B
Flight controller→ + 64-bit Navigator→ + Cube Orange + Pixhawk 6X→ + Navigator + Pixhawk 4Pixhawk
Video Stream→ + H265 support→ + RTSP variant→ + MPEG and YUYV encoding + Raspberry Pi camera support+ Easily manage multiple streams + UDP and RTSP output - audio streaming is not supported yet ( #990 )Select single camera streaming over UDP + Support for Raspberry Pi cameras ( except HQ cameras ) + Support for single audio stream over UDP
Wi-Fi Manager→ + External adapter support→ + Vehicle provides local hotspot→ + Connect to and manage multiple networks, just like a Wi-Fi manager on your phone or computerConnect to a single network + supports visible and hidden networks
Ethernet Manager→ +Backup DHCP ServerMultiple static IP and DHCP configurationsSingle DHCP (client or server) or static network
Notification systemNotifications about issues, new releases, and system status.-
File Browser→ + folder for extended data and configuration files→ + Edit files from your browserDownloading and uploading files
Log BrowserDownload and manage logs from your browser + visualize and analyze logs from the built-in viewerSSH/Terminal only
MAVLink Inspector→ + MAVLink2REST "Observer" option for individual message typesView and inspect MAVLink messages in real time from your browserView the latest MAVLink messages via MAVLink2REST
Network testing→ + Real-time usage widget→ + Graph during speed test→ + Check real-time latencyCheck upload and download speeds from the control station computer to the vehicle onboard computer
System Information→ + Plate ModelProvides all necessary information about hardware, operating system, running processes, CPU, memory, disk, network usage and statusBasic usage statistics, list of connected devices
Web terminal→ + Support for non-users pi→ + Using tmux sessionAccessing the Linux Terminal from Your Browser
Autopilot firmware→ + General ArduPilot download; +Select the vehicle to updatestable, beta and devel publish, customize upload, and restore default parameters; ArduSub download only
Autopilot parameters→ + Custom description override→ + Intuitive ArduPilot calibration and configuration + PX4 parameter descriptionView, search, and edit ArduPilot vehicle parameters--
Version Selector→ + Bootstrap Update+ Easily update/downgrade between BlueOS versions , including locally stored versions+ Includes stable, beta, and master versions* + Remains available even if the primary site goes downUpdate Companion only to the latest stable version
MAVLink endpoints→ + MAVLink server routing + logging of all endpoints + detailed debug interface→ + Log messages to a file.tlog→ + Select route serviceCreate and manage UDP, TCP, and serial MAVLink endpoints
NMEA supportSend GPS location to vehicle
Ping Sonar Device→ + Detect Ping360 in Ethernet configuration + Can send Ping sonar range estimates via MAVLink→ + Devices can be hot-swapped - no MAVLink pipeline requiredPing Sonar and Ping360 can be connected to Ping Viewer + Ping Sonar distance estimates can be sent via MAVLink
Serial Bridge→ + Separate target and listener portsCreate and manage bridges between serial and UDP/TCP endpoints
Connected to water→ + UGPS and DVL integrationDVL-A50 and UGPS expansion available via Expansion ManagerDVL-A50 kit availableSupports UGPS and DVL-A50
Extensions→ + Improved interface parametersCustom extensions are available through the Extension ManagerCustom functionality requires forking the codebase

Release

BlueOS provides multiple release types to help you find a balance between getting the latest fixes and improvements and ensuring software stability. The three release types are as follows:

  • Stable: Officially tested and verified
    • Stable version with long-term support
    • Recommended for most users
  • Beta: Rapid rolling release containing new features, bug fixes, and general improvements
    • Released version after internal testing
    • Predict the future
  • Master: Fast-forward to the cutting-edge development version 🔥
    • The latest features may not have been tested yet
    • High volatility, generally not recommended
    • For those who want to live in the future

When BlueOS is connected to the internet, a notification will be displayed if a newer or more stable version of the same version is available. For example, when using a stable version, only new stable versions will trigger a notification. If using a beta version, both newer beta and stable versions will trigger a notification. When running a master version, any newer version than the current version will trigger a new update notification. This helps ensure that any updates are as stable as or more stable than your current version, unless you intentionally change to a less stable version.

Notably, the version selector overall offers several significant improvements in robustness and versatility compared to the previous “latest update only” approach, which will benefit users and developers alike.

Community

Developer

See the development documentation.


Powered by Zola and Bluetheme Documentation under CC BY-NC-SA 4.0 sponsored by Blue Robotics Code under AGPLv3 / BlueOS Custom