robokudo.annotators.region_filter

Point cloud filtering based on semantic regions.

This module provides an annotator for:

  • Filtering point clouds using regions from world descriptors

  • Creating region hypotheses with poses

  • Visualizing filtered regions and clouds

Note

Regions are defined in a shared semantic_digital_twin World.

Classes

RegionFilter

Point cloud filtering using world regions.

Module Contents

class robokudo.annotators.region_filter.RegionFilter(name: str = 'RegionFilter', descriptor: RegionFilter = Descriptor())

Bases: robokudo.annotators.core.ThreadedAnnotator

Point cloud filtering using world regions.

The RegionFilter can be used to filter point clouds based on an environment model that provides semantic_digital_twin Regions via a shared World.

class Descriptor

Bases: robokudo.annotators.core.BaseAnnotator.Descriptor

Configuration descriptor for region filtering.

class Parameters

Parameters for configuring region filtering.

world_frame_name: str = 'map'

Name of the world coordinate frame

active_region: str = ''

Name of active region to filter. Does not define a specific region but can be used to check the active regions.

parameters
world_frame_name: str

Name of the world coordinate frame read from parameters

active_region

Name of the active region to filter read from parameters

compute() py_trees.common.Status

Filter point cloud using semantic map regions.

The method:

  • Loads point cloud and query from CAS

  • Loads world descriptor and active regions

  • For each active region: * Transforms region to camera frame * Creates oriented bounding box * Filters points within box * Creates region hypothesis with pose

  • Updates CAS with filtered cloud

Returns:

SUCCESS after processing

Raises:

Exception – If queried region not found in map