Blunux - Your underwater drone OS below the surface

Monday, April 25, 2022 / Trondheim, Norway

In Blueye, we believe that high-quality products should give you value for many years and that you should get bug fixes and new functionality also for products that you purchased a long time ago. Therefore, we build our software to be easily upgradeable and compatible with all our Blueye drones.

This article will introduce Blunux, why updates are so important, and which features we added in the past years that give value to all our customers, independently when their drone was purchased.

The core of our software stack is Blunux, the Blueye Operating System. It is based on Linux and runs on the drone. It includes the control system and video pipeline and handles all communication, including data logging for your dive reports and video overlays.

Blueye Explains Episode 4: The Blunux operating system

Regular software updates

We understand that an ROV is an important investment and that our users also want to benefit from improvements and new developments in the future. Therefore, we offer regular software updates for our operating system, introducing new features for all Blueye drones, from Pioneer to the X3.

While some features only aim at a specific model, such as integrating new guest port peripherals, most functions we work on are similarly relevant for all our products. By regularly releasing new software updates, you can stay up-to-date with our current development by easily upgrading your drone software, Blunux, from the Blueye App.

When we release a new Blunux version, and you run the Blueye App while connected to the internet, it will notify you that a new version is ready to be downloaded. After the download, connect to your drone and follow the steps suggested on the screen. After just a few minutes, your drone will reboot, and the new software will be installed.

Blunux Update Process
Blunux updates are downloaded and installed onto the drone using the Blueye App.
You can check out our previous releases in the Blunux release history.

At Blueye, we wish to develop quality products that last for years. Every Blueye drone ever shipped has received every Blunux software update for free, ensuring an up-to-date product with bug fixes and new functionality even years after the initial purchase.
- Jonas Follesø, CTO, Blueye Robotics.

Where does the software run?

There are different ways of designing an embedded system like an underwater drone. One way often found in underwater drones is that most calculations are done top-side while the hardware on the drone is just controlling lights and thrusters. This makes it easy to develop the hardware on the drone but also comes with its own limitations. Another strategy is to run a small embedded computer drone-side which moves some of the complexity to the drone but also makes it easy to extend and change the code.

The Blueye drones are equipped with a 4-core embedded computer inside the drone. This embedded computer runs both the control system, the video recording, and for the X3 also drivers for external devices and sensors. We call this software Blunux. Blunux is based on Linux, which gives us a very flexible and extensible operating system on the drone. We actively use it to provide our customers with new functionality.

In the following sections, we will describe some of the features that were added after the initial release of the drone and are available for all our customers.

Blunux Software Architecture Diagram
High level Blunux Software Architecture diagram.

Multiple spectators

The classic way of operating a drone is to use one screen to show the video feed of the drone. However, during inspections and complex operations, it often makes sense to have a second pair of eyes. Therefore, our software stack offers the possibility to connect with multiple spectators. This is easiest done using the Blueye Observer App. Using the observer App, you can connect to the same video stream as the drone operator, or if you have an external camera installed on the Guest Port, you can also show the stream from that camera. Additionally, you can see the telemetry data.

More information about the Blueye Observer can be found in the post HOW THE BLUEYE OBSERVER APP MAKES UNDERWATER OPERATIONS SAFER AND MORE EFFICIENT.

The Blueye Observer App on Mobile phone and computer.

We also have customers who want to stream the video to one or multiple screens on a ship or inspection site. The easiest way to do this is to dedicate a device with the Blueye Observer App and connect it to the pre-existing system using HDMI. This can be done using adapters together with a phone, or for a more permanent installation, a Mac or PC can be used. We have good experience using M1 Macs and running the Observer App natively on those.

Alternatively, you can also stream the data via the internet, as shown in STREAMING LIVE VIDEO FROM UNDERWATER DRONES TO REMOTE VIEWERS.

Illustration of a person remotely watching an inspection from a fish farm.

Dive logs and subtitles

Dive logs and video subtitles containing telemetry data have been part of Blunux since the first day; however, we are constantly adding functionality to those basic functions. In Blunux Version 1.5.33, we added functionality to download log files suited for 3d Photogrammetry.

Using the data stored by Blunux on the drone enables the Blueye App to generate dive reports including data such as user position, depth and telemetry data. The Blueye App accesses the data on the drone and can show the data as graphs in the Dive Details view. From there, it is possible to export a dive report as a PDF, Word document, or CSV file.

Dive report generation from the Blueye App.

More details can be found in GENERATE INSPECTION REPORTS USING THE BLUEYE APP.

Video and picture overlay on your media files

While subtitles and log files are very useful in many situations, often, a tighter integration is beneficial. This is why we introduced overlays for videos and pictures in Blunux 1.7. Using these overlays, the data is included directly in the media files, making it easy to share the data without the need to send multiple files. Especially when generating reports from the Blueye App, the added overlay shows relevant information directly in the report without the need to include the log files manually.

A screenshot of the video with data overlay.

Additionally, the metadata is stored as EXIF tags in the pictures and can be read by most image viewers.

The related post with more information can be found here: INCLUDE DIVE INFORMATION IN YOUR VIDEOS WITH THE LATEST SOFTWARE UPDATE.

The Blueye SDK for researchers and system integrators

Our Blueye App allows for intuitive control of the drone. However, even though this is enough for most of our customers, universities, researchers, and system integrators might have other requirements. Sometimes, the drone is supposed to be integrated into a larger setup, or it is supposed to be controlled using third-party software. Likewise, some universities might want to use their drone in education and let the students develop their own algorithms. To meet these requirements, we have different access points for low-level control of our drone. One of them is our Python SDK, which is Open Source and readily available on pypi.org.

The Blunux SDK.

Using this SDK, you can create your custom client to control the drone and subscribe to the video stream. If this is not enough, or you need access from other programming languages, our communication protocol is openly available, and we are constantly improving and extending it. Additionally, we can offer direct access to our libraries running in the Blunux operation system on a case-by-case basis so that you can replace the Blueye software stack with your custom software.

Smart connector and guest port devices

Flexibility and user-friendliness are essential values at Blueye. We design our products to be intuitive to use and well-integrated into our ecosystem. This makes it easy for us to offer the X3 with different accessories, which are all plug-and-play.

Guest Ports on a Blueye X3 mini ROV.
Close-up of the Blueye Blind Plug used to seal the guest port when no peripheral is connected. The app will warn you if a guest port is missing a connector.

After installing the device and starting the drone, the device works without any more setup on the drone or in the app. When a gripper is installed, the layout on the controller changes automatically, and lights are integrated with the normal light control in the app. Sensors measurements from thickness gauges or distance sensors will be shown in the app automatically. Additionally, the data is integrated into picture and video overlays. Sonars can be easily accessed with the accompanying software from the sonar manufacturer after connecting to the Wifi.

This all is possible due to regular software updates, control system code directly on the drone, and support for our Blueye Smart Connector, which is used to set up the communication protocols based on the connected devices.

You can read about the smart connector in more details in THE BLUEYE SMART CONNECTOR AND HOW WE DEVELOP USER-FRIENDLY UNDERWATER TECHNOLOGY.

The way forward

Our development is largely based on input from our customers. Talking with existing clients helps us to make our product even better. Some of the feedback led us to new features we are working on right now, which will be released soon. These features include both integration of new guest port peripherals but also improvements in well-known functionality like the dive logs and metadata. Stay tuned!