robokudo.vis.o3d_visualizer

Open3D-based visualization for RoboKudo pipelines.

This module provides 3D visualization capabilities for RoboKudo pipelines using Open3D. It handles:

  • 3D geometry visualization

  • Point cloud rendering

  • Camera control

  • Coordinate frame display

  • Window management

Dependencies

  • open3d for 3D visualization

  • logging for status messages

  • robokudo.annotators for annotator access

  • robokudo.vis.visualizer for base visualization interface

See Also

Classes

O3DVisualizer

Open3D-based visualizer for 3D geometry data.

Viewer3D

Open3D viewer wrapper for 3D visualization.

Module Contents

class robokudo.vis.o3d_visualizer.O3DVisualizer(*args, **kwargs)

Bases: robokudo.vis.visualizer.Visualizer, robokudo.vis.visualizer.Visualizer.Observer

Open3D-based visualizer for 3D geometry data.

This class provides visualization of 3D geometry data from pipeline annotators using Open3D windows. It supports:

  • 3D geometry visualization

  • Point cloud rendering

  • Camera control

  • Coordinate frame display

  • Shared visualization state

Parameters

*args

Variable length argument list passed to parent classes

**kwargs

Arbitrary keyword arguments passed to parent classes

Attributes

viewer3dViewer3D

Open3D viewer instance

shared_visualizer_stateVisualizer.SharedState

Shared state object for coordinating between visualizers

update_outputbool

Flag indicating if display needs updating

viewer3d = None
notify(observable, *args, **kwargs)

Handle notification of state changes.

Parameters

observableobject

The object that sent the notification

*args

Variable length argument list

**kwargs

Arbitrary keyword arguments

tick()

Update the visualization display.

This method:

  • Initializes viewer if needed

  • Gets current annotator outputs

  • Updates display if needed

  • Handles viewer lifecycle

Returns

bool

False if visualization should terminate, True otherwise

window_title()

Get the window title for this visualizer.

Returns

str

Window title in format “RoboKudo/pipeline_name”

Notes

class robokudo.vis.o3d_visualizer.Viewer3D(title)

Bases: object

Open3D viewer wrapper for 3D visualization.

This class wraps the Open3D visualization functionality to provide:

  • Window management

  • Geometry updates

  • Camera control

  • Coordinate frame display

Parameters

titlestr

Window title for the viewer

Attributes

first_cloudbool

Flag indicating if this is the first cloud being displayed

CLOUD_NAMEstr

Name identifier for the point cloud

rk_loggerlogging.Logger

Logger instance

main_viso3d.visualization.O3DVisualizer

Open3D visualizer instance

visualized_geometrieslist

Names of currently visualized geometries

first_cloud = True
CLOUD_NAME = 'Viewer3D'
rk_logger = None
main_vis
visualized_geometries = []
tick()

Update the viewer display.

Returns

bool

False if visualization should terminate, True otherwise

update_cloud(geometries)

Update the displayed geometries.

This method updates the Open3D visualizer based on the outputs of the annotators. For the first update, it also sets up the camera and coordinate frame.

Parameters

geometriesUnion[o3d.geometry.Geometry3D, dict, list, None]

Geometries to display. Can be:

  • A single geometry object

  • A dict with geometry configuration

  • A list of geometries or dicts

  • None to clear display

Notes

The dict format follows Open3D’s draw() convention. See: https://github.com/isl-org/Open3D/blob/master/examples/python/visualization/draw.py