Skip to main content
The simulation_remote_assistant sample application is the ROS package that uses an AMR as a remote assistant within a virtual office environment. Users can interact with the robot by inputting natural language commands, such as “Go to the office to check the person.” The robot can autonomously navigate to the specified location and perform object detection tasks as instructed.
NoteFor more information, see simulation_remote_assistant on GitHub.

Figure: Sample effects of simulation_remote_assistant

Pipeline flow for Simulation Remote Assistant

Figure: Pipeline flow for simulation_remote_assistant

ROS nodes used in the simulation_remote_assistant pipeline

ROS nodeDescription
qrb_ros_simulationqrb_ros_simulation is a ROS package that sets up the Qualcomm robotic simulation environment. For details, see QRB ROS Simulation.
nn_inference_nodeLoads a trained AI model, receives preprocessed images, performs inference, and publishes results. For details, see NN Inference Node.
yolo_preprocess_nodeExecutes preprocess and postprocess for Yolo model. For details, see QRB ROS Tensor Process.
yolo_detection_postprocess_node
yolo_detection_overlay_node
cartographer_nodeProcesses sensor data to perform SLAM.
cartographer_occupancy_grid_nodePublishes a ROS occupancy grid map.
nav2_bringupThe Navigation2 stack for robot navigation.
build_map_nodeBuilds the map of office world.
nav_preparation_nodeRelocalization and launches the navigation node.
task_manager_nodeParses the input commands and executes the action.

ROS topics used in the Simulation Remote Assistant pipeline

ROS topicTypePublished byDescription
/scansensor_msgs::msg::LaserScanqrb_ros_simulation2D lidar scan data for SLAM and mapping.
/mapnav_msgs::msg::OccupancyGridcartographer_occupancy_grid_nodeOccupancy grid map for navigation.
/tftf2_msgs::msg::TFMessageqrb_ros_simulation / cartographer_nodeFrame transforms between coordinate systems.
/odomnav_msgs::msg::Odometryqrb_ros_simulationOdometry data for pose estimation.
/cmd_velgeometry_msgs::msg::Twistqrb_ros_simulationVelocity commands for robot motion.
/goal_posegeometry_msgs::msg::PoseStampedtask_manager_nodeTarget goal pose for navigation.
/camera/color/image_rawsensor_msgs::msg::Imageqrb_ros_simulationRGB image from the simulation camera.
/qrb_inference_input_tensorqrb_ros_tensor_list_msgs::msg::TensorListyolo_preprocess_nodePreprocessed input tensor for inference.
/yolo_detect_tensor_outputqrb_ros_tensor_list_msgs::msg::TensorListnn_inference_nodeInference output tensor for detection.
/yolo_detect_resultvision_msgs::msg::Detection2DArrayyolo_detection_postprocess_nodeThe detected objects as 2D bounding-box results.
/yolo_detect_overlaysensor_msgs::msg::Imageyolo_detection_overlay_nodeThe detection overlay image with bounding boxes.

Prerequisites

Set up the simulation environment

  1. On your host computer, complete the following to build the Qualcomm robotic simulation environment according to the README of QRB ROS Simulation. Ensure that the device and the host are on the same local network and can communicate with each other through ROS communication.
    1. Set up development environment on Ubuntu24.04 host or Docker.
    2. Build from source.
  2. On the host, run the QRB Robot Base AMR in the simulated office world.

Run out-of-the-box simulation_remote_assistant

On the development kit, run the following commands:

Build and run simulation_remote_assistant

  1. In a terminal of the host computer, run the following commands:
    Note
    • <qir_version>: Version of the QIR SDK, see QIR SDK 2.0 Release Notes.
    • <qir_decompressed_path>: The path where the QIR SDK is decompressed.
    1. Build the sample application project.
    2. Package and push the sample application to the device.
  2. On the development kit, run the following commands:
    1. Install the sample application.
    2. Run the sample application with the steps in Run out-of-the-box simulation_remote_assistant.