Revision 3 as of 2015-04-07 15:30:32

Clear message

Only released in EOL distros:  

rail_pick_and_place: graspdb | rail_grasp_collection | rail_pick_and_place_msgs | rail_pick_and_place_tools | rail_recognition

Package Summary

Construction and Use of a Recognition Database for Grasping Purposes

rail_pick_and_place: graspdb | rail_grasp_collection | rail_pick_and_place_msgs | rail_pick_and_place_tools | rail_recognition

Package Summary

Construction and Use of a Recognition Database for Grasping Purposes

About

The rail_recognition package contains nodes for object recognition and demonstration grasp selection using models from a grasp database, handled by graspdb. The package also contains a node used for generating object models from grasp demonstrations collected with the rail_grasp_collection package.

Nodes

model_generator

Generate object models for recognition and manipulation using demonstrations from the grasp database.

Action Goal

model_generator/generate_models (rail_pick_and_place_msgs/GenerateModelsGoal)
  • Generate models from a set of grasp demonstrations or object models (specified by id in the grasp database), and store the result as new models in the database.

Action Result

model_generator/generate_models (rail_pick_and_place_msgs/GenerateModelsResult)
  • Model generation result.

Published Topics

model_generator/debug_pc (sensor_msgs/PointCloud2)
  • Point cloud resulting from registration, only published if the debug parameter is set to true.
model_generator/debug_poses (geometry_msgs/PoseArray)
  • Grasp poses resulting from registration, only published if the debug parameter is set to true.

Parameters

/graspdb/host (string, default: "127.0.0.1")
  • Grasp database host ip.
/graspdb/port (int, default: graspdb::Client::DEFAULT_PORT)
  • Grasp database port.
/graspdb/user (string, default: "ros")
  • Grasp database username.
/graspdb/password (string, default: "")
  • Grasp database password.
/graspdb/db (string, default: "graspdb")
  • Grasp database name.
debug (bool, default: false)
  • Debug flag, set to true to publish debugging information.

object_recognizer

Object recognition of passed-in segmented objects, returns the recognized object with name, database id, and grasps filled in.

Action Goal

rail_recognition/recognize_object (rail_manipulation_msgs/RecognizeObjectGoal)
  • Recognize a segmented object passed in as the goal.

Action Result

rail_recognition/recognize_object (rail_manipulation_msgs/RecognizeObjectResult)
  • The segmented object with recognized information (name, database id, and example grasps ordered by success rate) filled in, or simply the segmented object if recognition failed.

Parameters

/graspdb/host (string, default: "127.0.0.1")
  • Grasp database host ip.
/graspdb/port (int, default: graspdb::Client::DEFAULT_PORT)
  • Grasp database port.
/graspdb/user (string, default: "ros")
  • Grasp database username.
/graspdb/password (string, default: "")
  • Grasp database password.
/graspdb/db (string, default: "graspdb")
  • Grasp database name.

object_recognition_listener

Object recognition of segmented objects, specified by object index in the segmented object list.

Action Goal

rail_recognition/recognize (rail_manipulation_msgs/RecognizeGoal)
  • Recognize a segmented object passed in by index.
rail_recognition/recognize_all (rail_manipulation_msgs/RecognizeAllGoal)
  • Recognize all segmented objects.

Action Result

rail_recognition/recognize (rail_manipulation_msgs/RecognizeResult)
  • Object recognition success.
rail_recognition/recognize_all (rail_manipulation_msgs/RecognizeAllResult)
  • Object recognition successes.

Subscribed Topics

object_topic param (rail_manipulation_msgs/SegmentedObjectList)
  • Incoming segmented object data.

Published Topics

rail_recognition/recognized_objects (rail_manipulation_msgs/SegmentedObjectList)
  • Outgoing segmented and recognized object data.

Parameters

/graspdb/host (string, default: "127.0.0.1")
  • Grasp database host ip.
/graspdb/port (int, default: graspdb::Client::DEFAULT_PORT)
  • Grasp database port.
/graspdb/user (string, default: "ros")
  • Grasp database username.
/graspdb/password (string, default: "")
  • Grasp database password.
/graspdb/db (string, default: "graspdb")
  • Grasp database name.
object_topic (string, default: "/rail_segmentation/segmented_objects")
  • Incoming segmented objects topic.

Installation

To install the rail_pick_and_place package, you can install from source with the following commands:

  • Toggle line numbers
       1 cd /(your catkin workspace)/src
       2 git clone https://github.com/WPI-RAIL/rail_pick_and_place.git
       3 cd ..
       4 catkin_make
       5 catkin_make install
    

Startup

The rail_grasp_collection package contains a launch file for launching the object_recognition_listener node with the various database parameters set, executed with:

  • roslaunch rail_recognition recognition.launch

The model_generator and object_recognizer nodes can be run individually with the following:

  • rosrun rail_recognition model_generator
  • rosrun rail_recognition object_recognizer

Model generation can also be run with an rviz plugin for visualization found in rail_pick-and_place_tools.