Skip to main content
qrb_ros_nn_inference 是一个 ROS2 软件包,用于在设备上运行神经网络模型,使你的机器人应用程序无需离开 ROS 图即可获得基于 AI 的感知能力。 它提供以下功能:
  • 模型推理 API,支持三种模型格式:
    • .tflite
    • .so
    • .bin
  • 基于 Qualcomm 平台的模型推理加速。

qrb_ros_nn_inference 的管道流程

下图展示了预处理节点如何将输入张量传送给 qrb_ros_nn_inference,后者将输出张量发布到后处理节点。 预处理节点将输入张量发布到 nn 推理节点,该节点将输出张量发布到后处理节点。

图: qrb_ros_nn_inference 管道

qrb_ros_nn_inference 管道中使用的 ROS 主题

下表列出了管道中的 ROS 主题、它们的消息类型以及发布或订阅每个主题的节点。
ROS 主题消息类型发布者/订阅者描述
/qrb_inference_input_tensorqrb_ros_tensor_list_msgs::msg::TensorList由 qrb_ros_nn_inference 订阅订阅用于模型推理的输入张量。
/qrb_inference_output_tensorqrb_ros_tensor_list_msgs::msg::TensorList由 qrb_ros_nn_inference 发布发布模型的输出张量。

qrb_ros_nn_inference 管道中使用的 ROS 节点参数

下表列出了节点参数、它们的类型及其默认值。
节点参数类型默认值描述
backend_optionstring""模型推理的硬件加速选项。有效值请参见 qrb_ros_nn_inference 文档。
model_pathstring""指示模型文件的路径。

前提条件

运行开箱即用的 qrb_ros_nn_inference

1

在设备上设置 QIR SDK 和 ROS2 环境

启动一个终端,并运行以下命令。ROS_DOMAIN_ID 的取值范围:[0, 232]
SSH Session
2

启动节点

启动三个节点:预处理节点、qrb_ros_nn_inference 节点和后处理节点。
SSH Session

构建并运行 qrb_ros_nn_inference

1

在主机上构建 qrb_ros_nn_inference

2

将 qrb_ros_nn_inference 推送到设备

注意确保设备上已安装 QIR SDK。
SSH Session
3

在设备上设置 QIR SDK 和 ROS2 环境

启动一个终端,并运行以下命令。ROS_DOMAIN_ID 的取值范围:[0, 232]
SSH Session
4

启动节点

启动三个节点:预处理节点、qrb_ros_nn_inference 节点和后处理节点。
SSH Session

限制

有关最新限制,请参见 GitHub 上的 qrb_ros_nn_inference。