robokudo.annotators.outputs =========================== .. py:module:: robokudo.annotators.outputs .. autoapi-nested-parse:: 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 ------- .. autoapisummary:: robokudo.annotators.outputs.AnnotatorOutputStruct robokudo.annotators.outputs.AnnotatorOutputs robokudo.annotators.outputs.AnnotatorOutputPerPipelineMap robokudo.annotators.outputs.ClearAnnotatorOutputs Module Contents --------------- .. py:class:: AnnotatorOutputStruct Container for annotator-specific outputs. These will get consumed by the GUI after the pipeline is ran 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. :ivar image: Image output data :type image: numpy.ndarray :ivar point_cloud: Point cloud output data :type point_cloud: open3d.geometry.PointCloud .. py:attribute:: image .. py:attribute:: geometries :value: None .. py:attribute:: render_next_time :value: True .. py:method:: set_image(img) Set the image in this AnnotatorOutputStruct and instruct the GUI to render it next time. .. py:method:: set_geometries(geometries) Set the geometries in this AnnotatorOutputStruct and instruct the GUI to render it next time. :param 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. .. py:class:: AnnotatorOutputs Container for all annotator outputs in a pipeline. This class manages output structures for multiple annotators within a single pipeline. :ivar outputs: Dictionary mapping annotator names to their outputs :type outputs: dict[str, AnnotatorOutputStruct] .. py:attribute:: outputs .. py:attribute:: redraw :value: True .. py:method:: init_annotator(annotator_name) Initialize output structure for an annotator. :param annotator_name: Name of the annotator :type annotator_name: str .. py:method:: clear_outputs() .. py:class:: AnnotatorOutputPerPipelineMap Container for annotator outputs across multiple pipelines. This class manages output structures for all annotators across all pipelines in the system. :ivar map: Dictionary mapping pipeline names to their annotator outputs :type map: dict[str, AnnotatorOutputs] .. py:attribute:: map .. py:class:: ClearAnnotatorOutputs(name='ClearAnnotatorOutputs') Bases: :py:obj:`py_trees.behaviour.Behaviour` Put directly in the corresponding RK Pipeline .. py:attribute:: rk_logger :value: None .. py:method:: update()