Documentation Status

Cannot load information on name: rail_segmentation, distro: electric, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: rail_segmentation, distro: fuerte, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: rail_segmentation, distro: groovy, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.

Package Summary

Released Continuous integration Documented

Segmentation Functionality from the RAIL Lab

Package Summary

Released Continuous integration Documented

Segmentation Functionality from the RAIL Lab

Package Summary

Released Continuous integration Documented

Segmentation Functionality from the RAIL Lab

Cannot load information on name: rail_segmentation, distro: kinetic, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: rail_segmentation, distro: lunar, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.

About

The rail_segmentation package provides tabletop segmentation functionality given a point cloud. It also allows for segmentation within a robot's coordinate frame, so that objects stored on a robot's platform can be segmented.

Newly proposed, mistyped, or obsolete package. Could not find package "rail_segmentation" in rosdoc: /home/rosbot/docs/api/rail_segmentation/manifest.yaml

Nodes

rail_segmentation

'rail_segmentation' provides tabletop object segmentation for handheld objects, as well as segmentation within a robot's coordinate frame for detecting objects stored on a robot itself.

Subscribed Topics

point_cloud_topic parameter (sensor_msgs/PointCloud2)
  • Incoming point cloud data.

Published Topics

rail_segmentation/segmented_objects (rail_manipulation_msgs/SegmentedObjectList)
  • Segmented point clouds for handheld objects.
rail_segmentation/markers (visualization_msgs/MarkerArray)
  • Visualization markers corresponding to the segmented objects.
rail_segmentation/debug_pc (sensor_msgs/PointCloud2)
  • Point cloud publisher for debugging, only used if the debug parameter is set to true.
rail_segmentation/debug_img (sensor_msgs/Image)
  • Image publisher for debugging, only used if the debug parameter is set to true.

Services

rail_segmentation/segment (std_srvs/Empty)
  • Segmentation that will automatically determine a segmentation zone (coordinate frame and bounding volume) as defined by the zones.yaml config file.
rail_segmentation/clear (std_srvs/Empty)
  • Clear all segmented objects from the segmented object list.
rail_segmentation/remove_object (rail_segmentation/RemoveObject)
  • Remove an object from the segmented object list at a given index.

Parameters

debug (bool, default: false)
  • Flag to publish debugging information.
point_cloud_topic (string, default: "/camera/depth_registered/points")
  • ROS topic name for incoming point cloud data.
mapping_config (string, default: "<path to rail_segmentation>/config/zones.yaml")
  • Location of the config file defining segmentation zones.

Installation

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

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

Defining Segmentation Zones

Segmentation zones can be defined in yaml config files, an example of which can be found in the config directory. The zones.yaml file defines a segmentation zone that will segment objects on horizontal surfaces anywhere above the level of the floor.

The fields for defining a zone are as follows:

Required fields:

  • name - (string) the name of the zone
  • parent_frame_id - (string) parent frame for calculating the roll, pitch, and yaw of the camera
  • child_frame_id - (string) child frame for calculating the roll, pitch, and yaw of the camera
  • bounding_frame_id - (string) the coordinate frame in which the segmentation bounding volume is defined
  • segmentation_frame_id - (string) the coordinate frame in which objects should be segmented

Optional fields:

  • remove_surface - (bool) flag for surface removal, set to true if segmentation surfaces should be detected and removed, false if segmentation should be bounded only by the bounding volume.
  • roll_min - (double) lower bound on camera roll for this zone to be used, calculated ass the roll from the parent_frame_id to the child_frame_id
  • roll_max - (double) upper bound on camera roll
  • pitch_min - (double) lower bound on camera pitch
  • pitch_max - (double) upper bound on camera pitch
  • yaw_min - (double) lower bound on camera yaw
  • yaw_max - (double) upper bound on camera yaw
  • x_min - lower x bound defining the bounding volume
  • x_max - upper x bound defining the bounding volume
  • y_min - lower y bound defining the bounding volume
  • y_max - upper y bound defining the bounding volume
  • z_min - lower z bound defining the bounding volume
  • z_max - upper z bound defining the bounding volume

Startup

The rail_segmentation package can be launched by running the rail_segmentation node:

  • rosrun rail_segmentation rail_segmentation

Wiki: rail_segmentation (last edited 2015-04-01 14:51:19 by davidkent)