qrb_ros_nn_inference is a ROS2 package for performing neural network model, providing AI-based perception for robotics applications.
It provides the following functionalities:
Model inference API which supports three model formats:
Model inference acceleration based on Qualcomm platforms
Pipeline flow for qrb_ros_nn_inference
Figure : The pipeline of qrb_ros_nn_inference
ROS topics used in the qrb_ros_nn_inference pipeline
ROS topic Message type Published/Subscribed by Description /qrb_inference_input_tensorqrb_ros_tensor_list_msgs::msg::TensorListSubscribed by qrb_ros_nn_inference Subscribes to the input tensor for model inference. /qrb_inference_output_tensorqrb_ros_tensor_list_msgs::msg::TensorListPublished by qrb_ros_nn_inference Publishes the output tensor of model.
ROS node parameters used in the qrb_ros_nn_inference pipeline
Node parameter Type Default value Description backend_optionstring""Hardware acceleration option for model inference. For valid values, see qrb_ros_nn_inference documentation . model_pathstring""Indicates the path of the model file.
Prerequisites
Run out-of-the-box qrb_ros_nn_inference
Start one terminal, and run the following commands to set up QIR SDK and ROS2 environment on the device.
Value range of ROS_DOMAIN_ID: [0, 232]
Launch three nodes: preprocess node, qrb_ros_nn_inference node and postprocess node.
Build and run qrb_ros_nn_inference
Build qrb_ros_nn_inference provided by the QIR SDK on the host.
Push qrb_ros_nn_inference to the device.
Note Ensure that the QIR SDK is installed on the device.
Start one terminal, and run the following commands to set up QIR SDK and ROS2 environment on the device.
Value range of ROS_DOMAIN_ID: [0, 232]
Launch three nodes: preprocess node, qrb_ros_nn_inference node and postprocess node.
Limitation
For the latest limitations, see qrb_ros_nn_inference on GitHub.