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

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: typing_extensions.Any, **kwargs: typing_extensions.Any)

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

Note

This Visualizer works with a shared state and needs notifications

viewer3d: typing_extensions.Optional[Viewer3D] = None

Open3D viewer instance

notify(observable: robokudo.vis.visualizer.Visualizer.Observable, *args: typing_extensions.Any, **kwargs: typing_extensions.Any) None

Handle notification of state changes.

Parameters:

observable – The object that sent the notification

tick() None

Update the visualization display.

This method:

  • Initializes viewer if needed

  • Gets current annotator outputs

  • Updates display if needed

  • Handles viewer lifecycle

Returns:

False if visualization should terminate, True otherwise

window_title() str

Get the window title for this visualizer.

class robokudo.vis.o3d_visualizer.Viewer3D(title: str)

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

first_cloud: bool = True

Flag indicating if this is the first cloud being displayed

CLOUD_NAME: str = 'Viewer3D'

Name identifier for the point cloud

rk_logger: logging.Logger = None

Logger instance

main_vis: open3d.visualization.O3DVisualizer

Open3D visualizer instance

visualized_geometries: typing_extensions.List[str] = []

List of the names of the currently visualized geometries

tick() typing_extensions.Any

Update the viewer display.

Returns:

False if visualization should terminate, True otherwise

update_cloud(geometries: typing_extensions.Optional[typing_extensions.Union[open3d.geometry.Geometry, typing_extensions.Dict, typing_extensions.List]]) None

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:

geometries – Geometries to display. Can be:

Note

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