[Documentation] [TitleIndex] [WordIndex

  Show EOL distros: 

Package Summary

Segmentation Functionality from the RAIL Lab

Package Summary

Segmentation Functionality from the RAIL Lab

Package Summary

Segmentation Functionality from the RAIL Lab

Package Summary

Segmentation Functionality from the RAIL Lab

Package Summary

Segmentation Functionality from the RAIL Lab

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.

ROS Service Types

ROS Service Types
RemoveObject

Object Segmentation APIs

This package exposes three APIs to perform object segmentation, with varying inputs and outputs. Each API uses the same underlying object segmentation pipeline, supporting all of the node's parameters (listed in the next section). To call each API, simply use the appropriate ROS service.

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)

Published Topics

~/segmented_objects (rail_manipulation_msgs/SegmentedObjectList) ~/segmented_table (rail_manipulation_msgs/SegmentedObject) ~/markers (visualization_msgs/MarkerArray) ~/table_marker (visualization_msgs/Marker) ~/debug_pc (sensor_msgs/PointCloud2) ~/debug_img (sensor_msgs/Image)

Services

~/segment (std_srvs/Empty) ~/segment_objects (rail_manipulation_msgs/SegmentObjects) ~/segment_objects_from_point_cloud (rail_manipulation_msgs/SegmentObjectsFromPointCloud) ~/clear (std_srvs/Empty) ~/remove_object (rail_segmentation/RemoveObject) ~/calculate_features (rail_manipulation_msgs/ProcessSegmentedObjects)

Parameters

~/debug (bool, default: false) ~/point_cloud_topic (string, default: "/camera/depth_registered/points") ~/zones_config (string, default: "<path to rail_segmentation>/config/zones.yaml") ~/min_cluster_size (int, default: 200) ~/max_cluster_size (int, default: 10000) ~/cluster_tolerance (double, default: 0.02) ~/use_color (bool, default: false) ~/crop_first (bool, default: false) ~/label_markers (bool, default: false)

Installation

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

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:

Optional fields:

Segmentation and Results

Segmentation is performed by point cloud clustering according to Euclidean distance (and optionally, similar color patches) within a workspace defined by the segmentation zone yaml file.

Each resulting segmented object is represented by a rail_manipulation_msgs SegmentedObject message, with the following data calculated and filled in:

Startup

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


2019-09-21 13:03