2.1 System Feature Overview
Bianbu ROS is a modular, full-stack operating system built for robotics, spanning from low-level boot firmware to rich user-space applications. Its architecture consists of the following major components:
- User Applications
- Application Frameworks & Development Tools
- ROS 2 Functional Interfaces
- Runtime Environment
- System Middleware
- High-Performance Libraries
- Linux Kernel
- Bootloader (U-Boot)
- Firmware Interface (OpenSBI)
User Applications
Bianbu ROS includes a preinstalled suite of essential desktop applications for development, productivity, media, and system utilities:
- Desktop Environment: LXQt with core utilities
- Office Tools: LibreOffice suite, nobleNote for sticky notes
- Web Browser: Chromium
- IDE: VSCodium
- Containerization: Docker
- Remote Access: VNC Server
- Media Tools: Cheese (camera app), MPV (video player), Audacious (music player)
- Graphics & Editing: Okular (PDF/document viewer), LXImage-Qt (image viewer), FeatherPad (text editor)
- System Utilities: KCalc (calculator), LXQt Archiver, PCManFM-Qt (file manager), Fcitx 5 (input method framework)
- Entertainment: 2048-Qt puzzle game
Application Frameworks & Development Tools
-
GUI & App Frameworks
-
Electron
-
GTK
-
Qt
-
-
Multimedia Frameworks
-
FFmpeg (with hardware acceleration)
-
GStreamer (with hardware acceleration)
-
PipeWire
-
-
AI Inference Frameworks & Tools
-
ONNX Runtime (hardware-accelerated)
-
Ollama (hardware-accelerated)
-
llama.cpp
-
xquant (model quantization tool)
-
ROS 2 Functional Interfaces
Bianbu ROS provides high-level, modular ROS 2 interfaces abstracted for common robotics tasks, including:
- Visual and video-based AI inference (ONNX)
- Human-following modules
- ByteTrack multi-object tracking
- Automatic Speech Recognition (ASR)
- Large Language Model (LLM) chatbot interface
- Support for USB and MIPI cameras
- SVO (Sparse Visual Odometry)
- WebSocket-based visualization
- SLAM and autonomous navigation
- Acoustic source localization
- Hardware-accelerated video encode/decode nodes
Runtime Environment
Multi-language runtime support is built in to support flexible development:
- Python
- Java
- Node.js
- Rust
System Middleware
The middleware layer provides unified access to hardware resources and optimized data flows:
- USB camera capture
- MIPI camera interface
- V2D image processing module
- Hardware video encoding/decoding
- VO (video output) support
- DRM display rendering
- RTSP streaming (input/output)
- ONNX C API inference interface
High-Performance Libraries
Optimized for AI workloads, multimedia processing, and vector acceleration:
- Eigen (with RISC-V Vector Extension - RVV support)
- OpenCV (RVV-enabled)
- OpenVML (vectorized math library with RVV)
- OpenSSL (hardware-accelerated)
- MPP (Multimedia Processing Platform with C APIs and samples)
- Mesa 3D
- OpenGLES
Linux Kernel
The Linux kernel is responsible for managing the processor and other hardware resources, providing an interface between user applications and hardware. Its main functions include interrupt and timer management, process management, memory management, file system management, device driver management, and network protocol stack support. The source code is open-sourced on Gitee.
- Version: 6.6
- Source: https://gitee.com/bianbu-linux/linux-6.6 (LTS)
U-Boot (Bootloader)
U-Boot is a robust bootloader used to initialize hardware and load the Linux kernel, device tree, and initramfs from various media (e.g., SD card, eMMC, SPI Flash, SSD, or network).
- Version: 2022.10
- Source: https://gitee.com/bianbu-linux/uboot-2022.10
OpenSBI (Firmware Interface)
OpenSBI (Supervisor Binary Interface) is a runtime firmware layer for RISC-V processors that operates in machine mode (M-mode), providing system-level services to bootloaders, hypervisors, and OS kernels.
- Version: 1.3
- Source: https://gitee.com/bianbu-linux/opensbi