NPU 推理
使用
qrb_ros_nn_inference 从 ROS 2 节点在 Hexagon NPU 上运行神经网络模型。零拷贝摄像头
从摄像头服务器以零拷贝方式发布摄像头帧,以降低节点间延迟。
色彩空间转换
使用
qrb_ros_colorspace_convert 在 NV12 和 RGB888 之间转换。核心音频
使用
qrb_ros_audio_service 为机器人添加播放和录音功能。基准测试框架
在 Qualcomm 平台上测量 ROS 2 组件的性能。
机器人示例
模拟器中的 AMR 运动、SLAM、AprilTag、抓取放置(pick-and-place)和导航。
与标准 ROS 2 的区别
- **访问 Hexagon NPU。**标准的 TFLite 或 ONNX ROS 节点只能在 CPU 或 OpenCL GPU 上运行推理。要面向 Hexagon NPU,需要 Qualcomm QNN 后端,而社区中没有等效方案。
qrb_ros_nn_inference可从 ROS 2 节点在 NPU 上运行模型。 - **零拷贝摄像头共享。**标准的
image_transport和sensor_msgs::Image会在节点之间序列化并复制数据负载。而 QRB ROS 传输类型传递的是 DMA-buf 文件描述符,因此摄像头 ISP 写入的帧会保持原位,直到下一个硬件消费者读取它。 - **打包好的、正确使用加速器的管线。**QIR SDK 的示例应用将摄像头采集、推理以及前后处理捆绑在 launch 文件中,因此你无需自己搭建这些管道。
选择抽象层级
这些原语可以组合。选择适合你目标的接线层级:
这三者面向相同的芯片,并且可以在同一 ROS 图上互操作。
代码仓库
QRB ROS 软件包在 github.com/qualcomm-qrb-ros 上开放开发。在 Qualcomm Linux 上,QRB ROS 软件包随机器人镜像交付,而不是安装到标准镜像上。专有节点(摄像头、视频、音频和色彩空间转换)包含在
qcom-robotics-proprietary-image 中。有关镜像的组成方式,参见机器人镜像与 overlay。QRB ROS 组织还贡献了可在任何具有 DMA heap 的 Linux SoC 上工作的可移植上游软件包,例如
dmabuf_transport 和 lib_mem_dmabuf。qrb_ros_transport 构建于这两者之上,因此你无需直接接触它们。
