Recognize Pick (OpenVINO Grasp Detection + OpenVINO Object Segmentation)

Overview

A simple application demonstrating how to pick up recognized objects with an industrial robot arm. The application interact with Grasp Planner and Robot Interface from this Grasp Library.

Comparing against the random picking application, this recognition picking takes the place commands published from the place_publisher which specifying the name the object to pick and the position to place.

The Grasp Detector then takes the object segmentation results from the OpenVINO Mask-rcnn to identify the location of the object in the point cloud image and generates grasp poses for that specific object.

Watch this demo_video to see the output of this application.

Requirement

Before running the code, make sure you have followed the instructions below to setup the environment.

Download and Build the Application

Within your catkin workspace, download and compile the example code

cd <path_of_your_ros2_workspace>/src

git clone https://github.com/intel/ros2_grasp_library.git

cd ..

colcon build --symlink-install
  • Build Options
    • BUILD_RECOGNIZE_PICK (ON | OFF) Switch on/off building of this application

Launch the Application with Real Robot and Camera

ros2 run recognize_pick place_publisher sports_ball
  • Launch UR description
ros2 launch ur_description view_ur5_ros2.launch.py

#load rviz2 configure file "src/ros2_grasp_library/grasp_apps/recognize_pick/rviz2/recognize_pick.rviz"
  • Launch RGBD sensor
ros2 run realsense_node realsense_node
  • Launch object segmentation
ros2 launch dynamic_vino_sample pipeline_segmentation.launch.py

# close the rviz2 window
  • Launch recognize pick app
ros2 run recognize_pick recognize_pick
  • Launch grasp planner
ros2 run grasp_ros2 grasp_ros2 __params:=src/ros2_grasp_library/grasp_apps/recognize_pick/cfg/recognize_pick.yaml