9个稳定版本

新版本 1.2.2 2024年8月12日
1.2.1 2024年5月9日
1.1.1 2024年4月23日

#802数据库接口

AGPL-3.0

155KB
1.5K SLoC

Python 1K SLoC // 0.7% comments Rust 449 SLoC // 0.0% comments

Maivin EdgeFirst 服务架构

此仓库托管 Maivin EdgeFirst 服务的消息架构。这包括 Maivin EdgeFirst 服务的自定义架构以及 ROS2 公共接口和 Foxglove 架构。Maivin EdgeFirst 服务的通信通过 Zenoh 消息框架进行,并遵循 ROS2 风格的设计。Maivin EdgeFirst 服务不直接与 ROS2 交互,但可以通过 Zenoh ROS2 DDS Bridge 与运行 ROS2 的系统桥接。在相关的地方,我们将 ROS2 兼容性基于 ROS2 Humble Hawksbill LTS 版本。

消息架构以 CDR IDL 提供,同时提供 Rust 和 Python 结构以用于处理架构,这些结构也通过 crates.io 和 pypi.org 提供,以便于在客户端应用程序中安装。

Maivin EdgeFirst 服务

Maivin EdgeFirst 服务是 Maivin EdgeFirst 感知平台的构建模块。该平台由一系列服务组成,每个服务处理专门的任务,例如相机捕获、目标检测和跟踪、导航等。以下图显示了 Maivin 上的典型数据流。

graph LR
    camera --> detect --> detectui --> https
    camera --> detectui
    camera --> recorder --> mcap
    navsat --> recorder
    imu --> recorder

相机服务从相机设备捕获并发布用于相机信息(格式、大小、校准配置文件)、h264 或 jpeg 编码流以及 DMA 主题的主题。相机 DMA 主题替换了 ROS2 中的典型 Image 架构,并使用针对嵌入式设备优化的架构。该主题发布底层 dmabuf 相机缓冲区的文件描述符,而客户端应用程序可以使用这些描述符进行高性能的视频处理。例如,检测服务可以使用 VAAL 库直接将相机缓冲区映射到 NPU 加速器。

检测主题通过在 i.MX 8M Plus NPU 上运行目标检测模型并在结果上执行目标跟踪来处理目标检测和跟踪。边界框和跟踪信息以及模型仪器在 boxes2d 主题上发布。检测服务还可以发布到 viz2d 主题,该主题在 Foxglove 中提供即插即用的可视化,但不包含专用 boxes2d 主题的所有元数据和仪器。

导航卫星和IMU服务分别发布GNSS(GPS及相关)和IMU传感器数据。这些数据用于定位和姿态跟踪,使目标检测和跟踪主题能够提供环境上下文:感知到的物体在世界的哪个位置。

记录器服务可以捕获具有模式的任何主题,并将其记录到MCAP文件中。可以使用Foxglove可视化MCAP文件,或使用Maivin Publisher应用程序将其导出到各种格式。工作流程在《Maivin数据集概述》文章中有详细说明。

许可证

Maivin模式和库采用Affero GPL 2.0许可证或针对拥有此类许可证的客户提供的Au-Zone AI Middleware商业许可证。

ROS2通用接口模式采用Apache-2.0许可证。

Foxglove模式采用MIT许可证。

Rust库最初基于Apache-2.0许可证下的zenoh-ros-type

依赖项

~0.4–1MB
~23K SLoC