Skip to content

ROS node for shape completion. Referenced in IROS 2017 paper "Shape Completion Enabled Robotic Grasping"

Notifications You must be signed in to change notification settings

CRLab/pc_object_completion_cnn

Repository files navigation

pc_object_completion_cnn

ROS node for shape completion. This node runs an action server to take in pointclouds representing partial views of an object, and returning a completed mesh of the object.

This is the maintained code base for the shape completion CNN from the IROS 2017 paper "Shape Completion Enabled Robotic Grasping"

@inproceedings{varley2017shape,
  title={Shape Completion Enabled Robotic Grasping},
  author={Varley, Jacob and DeChant, Chad and Richardson, Adam and Nair, Avinash and Ruales, Joaqu{\'\i}n and Allen, Peter},
  booktitle={Intelligent Robots and Systems (IROS), 2017 IEEE/RSJ International Conference on},
  year={2017},
  organization={IEEE}
}

Dependencies

This has been tested on ubuntu 14.04 and ROS Indigo and ubuntu 16.04 and ROS Kinetic. You will need to first setup Keras with a tensorflow backend. Setup instructions can be found here: https://github.com/fchollet/keras/

This repos is best run as part of: https://github.com/CURG/pc_pipeline_launch which should be setup first. Once the pc_pipeline is setup, this node offers a drop in replacement for pc_object_completion_partial.

Other Smaller Dependencies

git clone [email protected]:CURG/binvox-rw-py.git
git clone [email protected]:ShapeCompletion3D/python-pcl.git
git clone [email protected]:CURG/Curvox.git
git clone [email protected]:CURG/Mesh_Reconstruction.git

binvox_rw: python utility library to read and write voxel grids to run length encoded binvox files

python-pcl: python utility library to read and write pointclouds to .pcd files

Curvox: python mesh/pointcloud utility library mostly for marshalling ros mesh and pointcloud messages into ply and pcd files

Mesh_Reconstruction: Code from IROS 2017 "Shape Completion Enabled Robotic Grasping" paper. This code takes the 40^3 voxel grid output from the CNN and combines it with the high resolution observed pointcloud directly captured from the depth sensor. This way the visible portions of the completions are nicely detailed.

Setup

cd ~
mkdir -p ~/cnn_completion_ws/src
cd ~/cnn_completion_ws/src
git clone [email protected]:CURG/pc_pipeline_msgs.git
git clone [email protected]:CURG/pc_object_completion_cnn.git

cd ~/cnn_completion_ws/src/pc_object_completion_cnn/scripts/shape_completion_server/trained_models
./load_trained_model.sh

cd ~/cnn_completion_ws
source /opt/ros/indigo/setup.bash
catkin_make

You will also need to modify set_env.sh to correctly set where to reach your ROS core.

Running

cd ~/cnn_completion_ws/
source devel/setup.bash
cd ~/cnn_completion_ws/src/pc_object_completion_cnn
source set_env.sh
rosrun pc_object_completion_cnn mesh_completion_server.py

About

ROS node for shape completion. Referenced in IROS 2017 paper "Shape Completion Enabled Robotic Grasping"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published