NOTE: This section is a not part of the official document. If your looking for orignal document, go down to find the official contents or go to the orignal repository.
Before using conda download the dev_ros branch only in your ros ws/src and catkin build.
cd your_ros_workspace/src
git clone -b dev_ros https://github.com/deyakovleva/contact_graspnet.git
cd ../
catkin build
source devel/setup.bash
Create the conda env
conda env create -f cgp_env_last.yml
Troubleshooting
- Recompile pointnet2 tf_ops:
sh compile_pointnet_tfops.shActivate conda env
conda activate contact_graspnet_env
Model
Download trained models from https://drive.google.com/drive/folders/1tBHKf60K8DLM5arm-Chyf7jxkzOr5zGl and copy them into the checkpoints/ folder.
Test data
Download the test data from https://drive.google.com/drive/folders/1v0_QMTUIEOcu09Int5V6N2Nuq7UCtuAA and copy them them into the test_data/ folder.
3.1 grasp_planner (ContactGraspNetPlanner)
- color_image (sensor_msgs/Image)
- Color image. It is not used for generating grasps.
- depth_image (sensor_msgs/Image)
- Detph image
- camera_info (sensor_msgs/Camerainfo)
- Depth camera intrinsic for deprojecting depth image to point clouds.
- segmask (sensor_msgs/Image)
- Object instance segmentation for grasp filltering.
- grasps (ContactGrasp[])
- List of generated grasps.
- ckpt_dir (str)
- Contact-GraspNet checkpoint directory.
- Default: checkpoints/scene_test_2048_bs3_hor_sigma_001
- z_min (double)
- Z min value threshold to crop the input point cloud.
- Default: 0.2
- z_max (double)
- Z max value threshold to crop the input point cloud.
- Default: 1.8
- local_regions (bool)
- Crop 3D local regions around given segments.
- Default: False
- filter_grasps (bool)
- Filter grasp contacts according to segmap.
- Default: False
- skip_border_objects (bool)
- When extracting local_regions, ignore segments at depth map boundary.
- Default: False
- forward_passes (int)
- Run multiple parallel forward passes to mesh_utils more potential contact points.
- Default: 1
- segmap_id (int)
- Only return grasps of the given object id
- Default: 0
Start Grasp Planner Server Node
roslaunch contact_graspnet_planner grasp_planner.launch
Change path to global_config in 253 line in my_node.py. Start my_node.py
cd contact_graspnet/
python3 my_node.py
In line 210 the argument can be changed (depth_ros - for full depth image and depth_crp_ros - for cropped depth image)
Start rviz with aligned_depth_to_color
roslaunch realsense2_camera rs_aligned_depth.launch
Call service for grasps generation
rosservice call /responce "{}"
@article{sundermeyer2021contact,
title={Contact-GraspNet: Efficient 6-DoF Grasp Generation in Cluttered Scenes},
author={Sundermeyer, Martin and Mousavian, Arsalan and Triebel, Rudolph and Fox, Dieter},
booktitle={2021 IEEE International Conference on Robotics and Automation (ICRA)},
year={2021}
}