Giter Club home page Giter Club logo

gpd's Introduction

Grasp Pose Detection (GPD)

1) Overview

This package detects 6-DOF grasp poses for a 2-finger grasp (e.g. a parallel jaw gripper) in 3D point clouds.

Grasp pose detection consists of three steps: sampling a large number of grasp candidates, classifying these candidates as viable grasps or not, and clustering viable grasps which are geometrically similar.

The reference for this package is: High precision grasp pose detection in dense clutter.

UR5 Video

UR5 demo

2) Requirements

  1. PCL 1.7 or later
  2. Eigen 3.0 or later
  3. Caffe
  4. ROS Indigo and Ubuntu 14.04 or ROS Kinetic and Ubuntu 16.04

3) Prerequisites

The following instructions work for Ubuntu 14.04 or Ubuntu 16.04. Similar instructions should work for other Linux distributions that support ROS.

  1. Install Caffe (Instructions). Follow the CMake Build instructions. Notice for Ubuntu 14.04: Due to a conflict between the Boost version required by Caffe (1.55) and the one installed as a dependency with the Debian package for ROS Indigo (1.54), you need to checkout an older version of Caffe that worked with Boost 1.54. So, when you clone Caffe, please use this command.

    git clone https://github.com/BVLC/caffe.git && cd caffe
    git checkout 923e7e8b6337f610115ae28859408bc392d13136
    
  2. Install ROS. In Ubuntu 14.04, install ROS Indigo (Instructions). In Ubuntu 16.04, install ROS Kinetic (Instructions).

  3. Clone the grasp_pose_generator repository into some folder:

    cd <location_of_your_workspace>
    git clone https://github.com/atenpas/gpg.git
    
  4. Build and install the grasp_pose_generator:

    cd gpg
    mkdir build && cd build
    cmake ..
    make
    sudo make install
    

4) Compiling GPD

  1. Clone this repository.

    cd <location_of_your_workspace/src>
    git clone https://github.com/atenpas/gpd.git
    
  2. Build your catkin workspace.

    cd <location_of_your_workspace>
    catkin_make
    

5) Generate Grasps for a Point Cloud File

Launch the grasp pose detection on an example point cloud:

roslaunch gpd tutorial0.launch

Within the GUI that appears, press r to center the view, and q to quit the GUI and load the next visualization. The output should look similar to the screenshot shown below.

rviz screenshot

6) Tutorials

  1. Detect Grasps With an RGBD camera
  2. Detect Grasps on a Specific Object

7) Parameters

Brief explanations of parameters are given in launch/classify_candidates_file_15_channels.launch for using PCD files. For use on a robot, see launch/ur5_15_channels.launch.

8) Views

rviz screenshot

You can use this package with a single or with two depth sensors. The package comes with weight files for Caffe for both options. You can find these files in gpd/caffe/15channels. For a single sensor, use single_view_15_channels.caffemodel and for two depth sensors, use two_views_15_channels_[angle]. The [angle] is the angle between the two sensor views, as illustrated in the picture below. In the two-views setting, you want to register the two point clouds together before sending them to GPD.

rviz screenshot

To switch between one and two sensor views, change the parameter trained_file in the launch file launch/caffe/ur5_15channels.launch.

9) Input Channels for Neural Network

The package comes with weight files for two different input representations for the neural network that is used to decide if a grasp is viable or not: 3 or 15 channels. The default is 15 channels. However, you can use the 3 channels to achieve better runtime for a loss in grasp quality. For more details, please see the reference below.

10) Citation

If you like this package and use it in your own work, please cite our paper(s):

[1] Marcus Gualtieri, Andreas ten Pas, Kate Saenko, and Robert Platt. High precision grasp pose detection in dense clutter. IROS 2016. 598-605.

[2] Andreas ten Pas, Marcus Gualtieri, Kate Saenko, and Robert Platt. Grasp Pose Detection in Point Clouds. Conditionally accepted for IJRR.

gpd's People

Contributors

atenpas avatar

Watchers

James Cloos avatar YuehChuan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.