robokudo.annotators.pointcloud_cluster_extractor

Attributes

Classes

PointCloudClusterExtractor

Annotator for object detection.

NaivePointCloudClusterExtractor

Annotator for object detection. Simply takes an input cloud and clusters it.

Functions

generate_roi_with_mask_from_points(image_height, ...)

cluster_points(→ list)

Module Contents

robokudo.annotators.pointcloud_cluster_extractor.DILATION_KERNEL
robokudo.annotators.pointcloud_cluster_extractor.generate_roi_with_mask_from_points(image_height: int, image_width: int, pc_cam_intrinsics: open3d.camera.PinholeCameraIntrinsic, cloud: open3d.geometry.PointCloud, color2depth_ratio=(1, 1))
robokudo.annotators.pointcloud_cluster_extractor.cluster_points(input_cloud: open3d.geometry.PointCloud, eps: float, min_points: int, rk_logger: rosgraph.roslogging.RospyLogger) list
class robokudo.annotators.pointcloud_cluster_extractor.PointCloudClusterExtractor(name='PointCloudClusterExtractor', descriptor=Descriptor())

Bases: robokudo.annotators.core.ThreadedAnnotator

Annotator for object detection. The main idea is to look for the Plane annotation in the CAS extract the points that belong to the plane, constructs an oriented bounding box around it, pull it up to create volume above the plane and then extract all the inlier points. After that, a clustering process is executed and each cluster is annotated in the CAS.

class Descriptor

Bases: robokudo.annotators.core.BaseAnnotator.Descriptor

class Parameters
dbscan_min_cluster_count = 90
min_cluster_count = 1000
min_on_plane_point_count = 90
eps = 0.04
parameters
points_and_indices_from_plane(plane_model: robokudo.types.annotation.Plane, cloud: open3d.geometry.PointCloud) tuple

Based on an input cloud and a plane model, extract all the points that are above that plane in the input cloud. Returns various data structures for further analysis and visualization.

Parameters:
  • plane_model

  • cloud

Returns:

A tuple consisting of: plane_obb = The OBB around the points belonging to the plane_model in cloud on_plane_obb = The OBB put above plane_obb, with the same width and depth, but extended upwards on_plane_cloud = Points found in on_plane_obb on_plane_cloud_indices = Indices of Points found in on_plane_obb outlier_cloud = All points that do not belong to the plane/table itself.

compute()
class robokudo.annotators.pointcloud_cluster_extractor.NaivePointCloudClusterExtractor(name='NaivePointCloudClusterExtractor', descriptor=Descriptor())

Bases: robokudo.annotators.core.ThreadedAnnotator

Annotator for object detection. Simply takes an input cloud and clusters it.

class Descriptor

Bases: robokudo.annotators.core.BaseAnnotator.Descriptor

class Parameters
dbscan_min_cluster_count = 90
min_cluster_count = 1000
min_on_plane_point_count = 90
eps = 0.04
parameters
compute()