robokudo.annotators.outputs

Output management for RoboKudo annotators.

This module provides classes for managing annotator outputs across pipelines. It supports:

  • Per-pipeline output organization

  • Structured output storage

  • Output type management

  • Pipeline-specific output mapping

  • Dynamic output initialization

The module is used for:

  • Output data organization

  • Pipeline result management

  • Cross-pipeline data handling

  • Output type safety

Classes

AnnotatorOutputStruct

Container for annotator-specific outputs. These will get consumed by the GUI after the pipeline is run,

AnnotatorOutputs

Container for all annotator outputs in a pipeline.

AnnotatorOutputPerPipelineMap

Container for annotator outputs across multiple pipelines.

ClearAnnotatorOutputs

Put directly in the corresponding RK Pipeline

Module Contents

class robokudo.annotators.outputs.AnnotatorOutputStruct

Container for annotator-specific outputs. These will get consumed by the GUI after the pipeline is run, or you have used the SetPipelineRedraw Behaviour. Check out the GUI-related classes for more details.

This class stores and manages different types of outputs (e.g., images, point clouds) for a single annotator.

image: numpy.typing.NDArray[numpy.uint8]

Image output data

geometries: typing_extensions.List[typing_extensions.Dict[str, open3d.geometry.Geometry3D]] = []

Open3D Geometries data. Will be passed to o3d.visualization.O3DVisualizer.add_geometry.

render_next_time = True

Whether the outputs should be rendered on the next GUI update. Defaults to True for the first run.

set_image(img: numpy.typing.NDArray[numpy.uint8]) None

Set the image in this AnnotatorOutputStruct and instruct the GUI to render it next time.

Parameters:

img – The image to be displayed on the next GUI update.

set_geometries(geometries: typing_extensions.List[typing_extensions.Dict[str, typing_extensions.Any]]) None

Set the geometries in this AnnotatorOutputStruct and instruct the GUI to render it next time.

Parameters:

geometries – This parameter holds the geometries to be drawn. It should behave like o3d.visualization.draw,

which means that you can either pass a drawable geometry, a dict with a drawable geometry (see https://github.com/isl-org/Open3D/blob/73bbddc8851b1670b7e74b7cf7af969360f48317/examples/python/visualization/draw.py#L123 for an example) or a list of both.

class robokudo.annotators.outputs.AnnotatorOutputs

Container for all annotator outputs in a pipeline.

This class manages output structures for multiple annotators within a single pipeline.

outputs: typing_extensions.Dict[str, AnnotatorOutputStruct]

Dictionary mapping annotator names to their outputs

redraw = True

Whether the outputs should be redrawn on the next GUI update. Defaults to True for the first run.

init_annotator(annotator_name: str) None

Initialize the output structure for an annotator.

Parameters:

annotator_name – Name of the annotator

clear_outputs() None
class robokudo.annotators.outputs.AnnotatorOutputPerPipelineMap

Container for annotator outputs across multiple pipelines.

This class manages output structures for all annotators across all pipelines in the system.

map: typing_extensions.Dict[str, AnnotatorOutputs]

Dictionary mapping pipeline names to their annotator outputs

class robokudo.annotators.outputs.ClearAnnotatorOutputs(name: str = 'ClearAnnotatorOutputs')

Bases: py_trees.behaviour.Behaviour

Put directly in the corresponding RK Pipeline

rk_logger = None
update() py_trees.common.Status