Skip to main content
This pick-and-place simulated sample application uses the C++ based robotic manipulation ROS 2 node simulation_sample_pick_and_place to demonstrate autonomous pick-and-place operations using MoveIt2 for motion planning and Gazebo for physics simulation.
NoteFor more information, see simulation_sample_pick_and_place on GitHub.

Figure: Sample effects of simulation_sample_pick_and_place

Pipeline flow for simulation_sample_pick_and_place

image

ROS nodes used in the simulation_sample_pick_and_place pipeline

ROS topics used in the simulation_sample_pick_and_place pipeline

ROS TopicsTypeDescription
/joint_statessensor_msgs/msg/JointStateReal-time data for all robot joints control information.
/hand_controller/controller_statecontrol_msgs.msg.ControllerStateCurrent state and status information of the gripper controller.
/rm_group_controller/controller_statecontrol_msgs.msg.ControllerStateCurrent state and status information of the robotic arm controller.
/robot_descriptionstd_msgs.msg.StringURDF robot description in XML format for robot modeling and visualization.
/robot_description_semanticstd_msgs.msg.StringSRDF semantic robot description for MoveIt planning and configuration.

Prerequisites

You have completed the following settings in Set up the environment for running sample applications.
  • Set up the device
  • Set up the host docker

Set up the simulation environment

1

Build the simulation environment 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

Launch the Gazebo simulation environment

Run the qrb ros simulation on the host. Open a terminal and run the following commands to launch the Gazebo simulation environment:
SSH Session
3

Launch the controller manager

Select the Play button in Gazebo to start the simulation, and then open another terminal and run the following commands to launch the controller manager:
SSH Session

Run out-of-the-box simulation_sample_pick_and_place

1

Launch the moveit ROS move group

On the development kit, open a terminal and run the following commands:
SSH Session
If the ROS node is launched successfully, the log starting from [move_group-1] You can start planning now! appears.
2

Launch the pick-and-place sample application

Open another terminal and run the following commands:
SSH Session
Result If the ROS node launches successfully, you can see the robot arm performing the pick-and-place operation in Gazebo.

Build and run simulation_sample_pick_and_place

Note
  • <qir_version>: Version of the QIR SDK, see QIR SDK 2.0 Release Notes.
  • <qir_decompressed_path>: The path where you decompress the QIR SDK.
1

Build and package on the host computer

  1. Build the sample application project.
    SSH Session
  2. Package and push the sample application to the device.
    SSH Session
2

Install and run on the development kit

  1. Install the sample application.
    SSH Session
  2. Run the sample application with the steps in Run out-of-the-box simulation_sample_pick_and_place.