BlueOS
概述
BlueOS 是一个模块化、强大且高效的平台,用于通过车载计算机管理车辆或机器人。
快速链接
一些背景信息...
最初的配套软件 项目 (启动于 2015 年)最初的目标是将水下航行器的视频流和通信路由到水面计算机,并提供这些功能和航行器固件的一些基本配置。简单的范围对于项目启动来说很棒,但也意味着一开始并没有设计新的复杂功能,因此维护和功能开发变得越来越具有挑战性。
汲取实用功能和软件架构需求的经验教训,BlueOS 的设计和开发完全符合我们 期望 的车载计算机系统的需求,并保留了发展成为真正汽车操作系统的空间。BlueOS 的核心是模块化设计,使其具有便携性、更新稳定性和可扩展性。
我们对 BlueOS 的未来充满期待,迫不及待地希望您加入我们并试用它!😄
BlueOS 车辆里有什么?
BlueOS 旨在与运行和操作车辆所涉及的硬件和软件堆栈的连接部分完美集成。
一般来说,BlueOS(及其扩展)在 机载计算机 上运行,并帮助底层自动驾驶仪(在 飞行控制板上)与操作员(通过 控制站计算机 )进行通信 ,同时还与不提供车辆控制状态直接测量的传感器进行接口并传递数据。
以下是 BlueOS 相关软件堆栈中常见组件的概览:
项目原则和目标
作为核心开发团队,我们一直在努力展望车载电脑的未来发展方向及其所需的功能。我们最初的想法已提炼为以下核心概念,其中许多概念已融入到如今的 BlueOS 中:
- 界面 默认简单,但在需要时功能强大 - 用户有权更改他们想要的任何内容并自定义完整的体验
- 旨在关注重要事项 ,通过人性化的 UI 和 UX 改善用户对信息和控件的访问
- 通过重用其他应用程序的设计模式(基于 材料 UI 指南 ) , 使复杂的任务变得更简单,并提高易用性
- 高级错误处理和检测 ,使用户和开发人员清楚地了解任何问题以及如何修复它们
- 简化开发 ,提供对我们服务 API 和模块化开发模型的完全访问
- 鼓励贡献 , 该项目是开源的 !
- 便携且灵活 ,您应该能够在 Raspberry Pi 3/4 或任何带有 Linux 操作系统的 SBC 上运行,欢迎贡献
- 功能强大,CPU 使用率低 ,整个系统高效运行
- 在坚实的基础上开发 ,关键部件或密集的劳动力服务采用最先进的语言和功能进行设计,以确保稳定性
其中一些原则只会在未来的版本中显现出来,但底层软件架构和组织已经从头开始设计以支持和实现它们。
BlueOS-1.4 有什么新功能?
本文概述了 BlueOS-1.4 的主要变更和新功能。适用的相关功能也包含在 功能比较表 中。有关每项变更的详细信息,请参阅 完整的发行说明 。
安全
- 增加了 安全模式 ,以避免在车辆武装时意外执行不安全的配置
扩展
- 改进
register_service
规范 ,更好地支持扩展之间的交叉通信以及扩展接口的远程访问
标题栏
- 添加了 网络使用情况小部件
- 增加了 第二个 GPS 状态指示器和 GPS 偏航支持
页面改进
- 自动驾驶仪参数
- 添加了参数描述覆盖功能,用于自定义参数支持
- MAVLink 端点
- 添加了 MAVLink Server 作为路由替代方案,具有全端点日志记录和详细的调试界面,以及对 Zenoh 通信的基本支持
- 车辆设置
- 在 PWM 输出页面上添加了伺服限制滑块
- 添加了相机支架配置选项
- 在指南针页面添加了 GPS 偏航(可用时)
- 添加了信息工具提示以显示底层自动驾驶仪参数
- 视频流
- 增加了对 H265 编码视频流的支持
- 改进了相机管理器的稳健性和界面的直观性
- BlueOS版本
- 添加了 Docker 登录选项,以减少速率限制并改进私有注册表支持
- 系统信息
- 增加了硬件板型号信息
设备/硬件支持
连接性
- 在以太网网络接口中添加了 备份 DHCP 服务器 ,如果网络上未检测到其他 DHCP 服务器,则该服务器将自动启动
数据隐私
- 添加了 Sentry 报告以供用户生成反馈
功能比较
BlueOS 几乎拥有旧版 Companion 的所有功能,此外还包含几个备受期待的新功能!
特征 | BlueOS 1.4 | BlueOS 1.3 | BlueOS 1.2 | BlueOS 1.1 | BlueOS 1.0 | 伴侣 |
---|---|---|---|---|---|---|
机载计算机 | → + 树莓派 5 | → + 树莓派 CM4 | → | → + 其他基于 Linux 的 SBC 镜像即将推出 | + 支持 Raspberry Pi 3B / 3B+ / 4B + 您可以在任意 Linux 计算机上使用安装脚本从头安装。(您的硬件配置可能需要进行修改) | 需要 Raspberry Pi 3B |
飞行控制器 | → + 64 位导航器 | → | → | → + Cube Orange + Pixhawk 6X | → + 导航器 + Pixhawk 4 | Pixhawk |
视频流 | → + H265 支持 | → + RTSP 变体 | → | → + MPEG 和 YUYV 编码 + 支持 Raspberry Pi 相机 | + 轻松管理 多个流 + UDP 和 RTSP 输出- 尚不支持 音频流 ( #990 ) | 选择 单个 摄像头通过 UDP 进行流式传输 + 支持 Raspberry Pi 摄像头( HQ 摄像头除外 ) + 支持通过 UDP 进行单个音频流 |
WIFI管理器 | → | → + 外部适配器支持 | → | → + 车辆提供本地热点 | → + 连接并管理 多个网络 ,就像手机或电脑的WIFI管理器一样 | 连接到 单个网络 + 支持可见和隐藏网络 |
以太网管理器 | → +备份 DHCP 服务器 | → | → | → | 多个 静态 IP 和 DHCP 配置 | 单个 DHCP(客户端或服务器) 或 静态网络 |
通知系统 | → | → | → | → | 有关问题、新版本和系统状态的通知。 | - |
文件浏览器 | → | → | → + 扩展数据和配置文件的文件夹 | → | → + 从浏览器 编辑文件 | 下载和上传文件 |
日志浏览器 | → | → | → | → | 从浏览器 下载和管理日志 + 从内置查看器 可视化和分析日志 | 仅限 Ssh/终端 |
MAVLink 检查器 | → | → | → | → + MAVLink2REST 针对单个消息类型的“观察者”选项 | 从浏览器 实时 查看和检查 MAVLink 消息 | 通过 MAVLink2REST 查看最新的 MAVLink 消息 |
网络测试 | → + 实时使用情况小部件 | → | → | → + 速度测试期间的图表 | → + 检查 实时延迟 | 检查从控制站计算机到车辆车载计算机的上传和下载速度 |
系统信息 | → + 板模型 | → | → | → | 提供有关硬件、操作系统、正在运行的进程、CPU、内存、磁盘、网络使用情况和状态的所有必要信息 | 基本使用情况统计、已连接设备列表 |
网页终端 | → | → | → + 对非 用户的 支持 pi | → | → + 使用 tmux 会话 | 从浏览器访问Linux终端 |
自动驾驶仪固件 | → | → | → | → | → + 常规 ArduPilot 下载; +选择 要更新的 车辆 | stable 、 beta 和 devel 发布、自定义上传和恢复默认参数; 仅限 ArduSub 下载 |
自动驾驶仪参数 | → + 自定义描述覆盖 | → + 直观的 ArduPilot 校准和配置 + PX4 参数描述 | → | 查看、搜索和编辑 ArduPilot 车辆参数 | - | - |
版本选择器 | → | → | → | → + Bootstrap 更新 | +轻松 在 BlueOS 版本之间 更新/降级 ,包括本地存储的版本+ 包括 稳定版、测试版和主 版本* + 即使主站点出现故障仍可用 | 仅将Companion 更新至 最新稳定版本 |
MAVLink 端点 | → + MAVLink 服务器路由 + 记录所有端点 + 详细的调试界面 | → + 在 文件 中记录消息.tlog | → + 选择路线服务 | → | → | 创建和管理 UDP、TCP 和串行 MAVLink 端点 |
NMEA支持 | → | → | → | → | → | 将 GPS 位置传送给车辆 |
Ping 声纳设备 | → | → | → | → + 在以太网配置中检测 Ping360 + 可以 通过 MAVLink 发送Ping 声纳距离估计值 | → + 设备可以 热插拔 - 无需 MAVLink 管道 | Ping Sonar 和 Ping360 可以与Ping Viewer 连接 + Ping Sonar 距离估计值可以 通过 MAVLink 发送 |
串行桥接器 | → | → + 分离目标和监听器端口 | → | → | → | 创建和管理串行和 UDP/TCP 端点之间的桥梁 |
与水相连 | → | → + UGPS 与 DVL 融合 | → | 可通过扩展管理器使用 DVL-A50 和 UGPS 扩展 | DVL-A50 套件可用 | 支持 UGPS 和 DVL-A50 |
扩展 | → + 改进了界面参数 | → | → | 可通过扩展管理器获取自定义扩展 | → | 自定义功能需要分叉代码库 |
发布类型
BlueOS 提供多种发布类型,方便您在获取最新修复和改进以及软件稳定性之间找到平衡。三种发布类型如下:
- 稳定: 经过官方测试和验证
- 具有长期支持的稳定版本
- 推荐给大多数用户
- Beta 版: 快速滚动发布,包含新功能、错误修复和常规改进
- 内部测试后发布的版本
- 预知未来
- 大师: 快速通过的 前沿 开发版本🔥
- 最新功能可能尚未经过测试
- 波动性较大,一般不推荐
- 对于那些想要生活在未来的人
当 BlueOS 连接到互联网时,如果有相同版本的更新版本或 更稳定的 版本可用,则会显示通知。例如:使用 稳定 版本时, 只有 新的 稳定 版本才会触发通知。如果使用 Beta 版本,则较新的 Beta 版本 和 稳定 版本都会触发通知。运行 Master 版本 时,任何比当前版本更新的版本类型都会触发新的更新通知。这有助于确保任何更新都与您当前的版本一样稳定或更稳定,除非您有意更改为不太稳定的版本类型。
值得注意的是,与以前的“仅最新更新”方法相比, 版本选择器 总体上提供了几项重大的稳健性和多功能性改进,这将使用户和开发人员都受益。
社区
开发者演示
参见 开发文档 。
由 Zola 和 Bluetheme提供支持 CC BY-NC-SA 4.0 下的文档
由 Blue Robotics赞助 代码遵循 AGPLv3 / BlueOS Custom