See http://rc-visard.com and http://doc.rc-visard.com for more details.

This package is still in development and the API might change in the future. Please report any bugs or feature requests on GitHub.

Overview

The components provide out-of-the-box perception solutions for robotic pick-and-place applications. ItemPick targets the detection of flat surfaces of unknown objects for picking with a suction gripper. BoxPick detects rectangular surfaces and determines their position, orientation and size for grasping. The interface of both components is very similar. Therefore both components are described together in this chapter.

For detail description of the modules check the following link: https://doc.rc-visard.com/latest/en/itempick.html

Configuration

Parameters

  • host: The IP address or hostname of the rc_visard that should be calibrated.

Since version 2.7, the device ID can be used instead of the sensor's IP address:

  • device: The ID of the device, i.e. Roboception rc_visard sensor. This can be either:

    • serial number, e.g. 02912345.

    Preceed with a colon (:02912345) when passing this on the commandline or setting it via rosparam (see https://github.com/ros/ros_comm/issues/1339). This is not neccessary when specifying it as a string in a launch file.

    • user defined name must be unique among all reachable sensors.
    If no device or host is given, this parameter works if just one rc_visard is connected.

Dynamic reconfigure parameters

The following parameters are available for the ItemPick and BoxPick modules:

  • load_carrier_crop_distance: Safety margin in meters by which the load carrier inner dimensions are reduced to define the region of interest for grasp computation.

  • load_carrier_model_tolerance: Indicates how much the estimated load carrier dimensions are allowed to differ from the load carrier model dimensions in meters.

  • cluster_max_curvature: Maximum curvature allowed within one cluster. The smaller this value, the more clusters will be split apart.

  • clustering_max_surface_rmse: Maximum root-mean-square error (RMSE) in meters of points belonging to a surface.

  • clustering_discontinuity_factor: Factor used to discriminate depth discontinuities within a patch. The smaller this value, the more clusters will be split apart.

For the ItemPick module, two additional parameters are available:

  • cluster_max_dimension: Indicates how much the estimated load carrier dimensions are allowed to differ from the load carrier model dimensions in meters.

  • clustering_patch_size: Size in pixels of the square patches the depth map is subdivided into during the first clustering step.

Services

The following services are offered by the nodes:

  • start: Starts the component.

  • stop: Stops the component.

  • set_region_of_interest: Persistently stores a region of interest on the rc_visard.

  • get_region_of_interests: Returns the configured regions of interest with the requested region_of_interest_ids. If no region_of_interest_ids are provided, all configured regions of interest are returned.

  • delete_regions_of_interest: Deletes the configured regions of interest with the requested region_of_interest_ids.

  • set_load_carrier: Persistently stores a load carrier on the rc_visard.

  • get_load_carriers: Returns the configured load carriers with the requested load_carrier_ids. If no load_carrier_ids are provided, all configured load carriers are returned.

  • delete_load_carriers: Deletes the configured load carriers with the requested load_carrier_ids.

  • detect_load_carrier: Triggers a load carrier detection.

  • compute_grasps: Triggers the computation of grasping poses for a suction device. All images used by the node are guaranteed to be newer than the service trigger time.

The BoxPick node offers an additional service:

  • detect_items: Triggers the detection of rectangles.

Launch

Using command line parameters:

For the ItemPick module:

  • $ rosrun rc_pick_client rc_itempick_client_node _host:=<sensor_ip>
    Since version 2.7:
    rosrun rc_pick_client rc_itempick_client_node _device:=:<serial_number>

For the BoxPick module:

  • $ rosrun rc_pick_client rc_boxpick_client_node _host:=<sensor_ip>
    Since version 2.7:
    rosrun rc_pick_client rc_boxpick_client_node _device:=:<serial_number>

Report a Bug

Use GitHub to report bugs or submit feature requests. [View active issues]

Acknowledgements

ROSIN Logo

Supported by ROSIN - ROS-Industrial Quality-Assured Robot Software Components.
More information: rosin-project.eu

EU Flag

This project has received funding from the European Union’s Horizon 2020
research and innovation programme under grant agreement No. 732287.

Wiki: rc_pick_client (last edited 2019-07-09 11:00:19 by CarlosGarcia)