Madrona
OAK-D camera management and configuration tool.
Introduction
Madrona is a platform for managing and configuring the OAK-D camera modules from Luxonis. It provides a convienent way to manage devices, configure and save commonly used pipelines, and run them on the device.
It also bundles OpenCV and GStreamer for viewing, processing, and recording video streams.
This project uses FastAPI with well documented OpenAPI compatible documentation.
Madrona is composed of highly extendable components that make use of JSON Schema for automatic validation and documentation.
The main components are:
- Devices: Physical OAK-D camera modules.
- Profiles: A set of configurations saved by the user for a specific pipeline.
- Pipelines: A running instance of a profile on a device.
- Interfaces: Generalized specifications for how a profile can implement a certain feature.
A Device can only have a single applied Profile and a single running Pipeline at a time.
Each Pipeline has a set of input and output queues for which to communicate. These queues pass JSON formatted CloudEvents to allow for easy, cross-platform, communication.
Some Profiles implement certain Interfaces, such as Snapshots (to take and save snapshots to disk) or Camera Controls (to manipulate camera features like white balance and/or exposure), to allow for easy extensibility. When implemented, these Interfaces also enable certain features in the UI.
Installation
Madrona is available as a BlueOS Extension and can be installed through the BlueOS interface.