BlueOS is a modular, robust, and efficient platform for managing a vehicle or robot from its onboard computer. It is the evolution of the Companion project, which aimed to route a vehicle's video stream and communications to its control station computer. Recognizing the need for a more sophisticated and scalable system, BlueOS was created from the ground up, embracing modularity to ensure portability, robust updating, and extensibility.
The development of BlueOS is driven by the following core principles:
The design, organization, and future releases of BlueOS are aligned with these principles, striving to provide an optimized and enriched user experience.
BlueOS is available in three release types:
BlueOS has been designed with a focus on vehicle and platform agnosticism. Our aim is to facilitate broad compatibility across a wide spectrum of applications. Currently, BlueOS officially supports the following vehicle types:
ArduRover is an open-source, uncrewed boat platform. Whether you are commanding a leisure boat or a research vessel, BlueOS's compatibility with ArduRover ensures that you can navigate the waters smoothly 🌊.
BlueBoat is supported by default.
ArduSub is the go-to control system for remotely operated underwater vehicles (ROVs) 🐟. BlueOS offers seamless integration with ArduSub, enabling efficient management and operation of underwater vehicles.
BlueROV2 is supported out of the box.
BlueOS provides generic support for a wide variety of terrestrial, aerial, and marine uncrewed vehicles that use ArduPilot and PX4 autopilots. This extends the range of vehicles that can be managed using our system, from drones to autonomous cars and more.
Note: Specific vehicle configuration may be necessary to ensure optimal performance with BlueOS.
BlueOS is designed to perform optimally across a wide range of systems. Our latest releases are automatically built for the following architectures:
armv7: This is a common architecture for embedded devices. Covers Raspberry Pi models up to and including the Raspberry Pi 3.
armv8/arm64: This is used by more recent, high-performance devices. You can run BlueOS on a Raspberry Pi 4, or in a computer with Apple Silicon.
amd64: This is the architecture used by most desktop and laptop computers. A typical example is any modern PC running a 64-bit version of Linux. Not fully supported.
Right now we officially support the Raspberry Pi 3 and 4, but the system should "just work" on all listed architectures with the correct docker binds.
Docker based development environment is available for via the core/compose/compose.yml
docker compose file. This will start a development environment with all the required services as well as mount all of the needed directories in this repository for development.
docker compose pull # Ensure that docker is up-to-date
docker compose -f core/compose/compose.yml up
When restarting the development environment you may need to remove the volumes to ensure that the development environment is clean.
docker compose -f core/compose/compose.yml down