robokudo.vis.visualizer_manager¶
Visualization management for RoboKudo pipelines.
This module provides a behavior tree node that manages visualization of pipeline data using different visualization backends. It coordinates:
OpenCV-based visualization
Open3D visualization
ROS visualization
Shared visualization state
Pipeline data synchronization
Classes¶
Behavior tree node for managing pipeline visualizations. |
Module Contents¶
- class robokudo.vis.visualizer_manager.VisualizationManager(name: str)¶
-
Bases:
py_trees.behaviour.BehaviourBehavior tree node for managing pipeline visualizations.
This class coordinates visualization of pipeline data across multiple visualization backends. It handles:
Pipeline data buffering and synchronization
Visualizer creation and lifecycle management
Shared visualization state
Visualization timing and performance monitoring
Note
The manager operates in three phases:
Pre-tick: Prepare visualizers for new data
Tick: Update visualizations
Post-tick: Cleanup and synchronization
- pipelines: typing_extensions.Dict[str, robokudo.pipeline.Pipeline]¶
-
Mapping of pipeline names to Pipeline objects
- rk_logger: logging.Logger = None¶
-
Logger instance for this class
- visualizer_types: typing_extensions.List[typing_extensions.Type]¶
-
List of available visualizer classes
- visualizers: typing_extensions.Dict[str, typing_extensions.List[robokudo.vis.visualizer.Visualizer]]¶
-
Mapping of pipeline name to list of Visualizers
- create_visualizers_for_pipeline(pipeline: robokudo.pipeline.Pipeline) None¶
-
Create visualizer instances for a pipeline.
- Parameters:
-
pipeline – Pipeline to create visualizers for
Note
Creates one instance of each visualizer type and associates them with the pipeline. All visualizers share a common visualization state.
- static visualizer_instances() typing_extensions.List[robokudo.vis.visualizer.Visualizer]¶
-
Get all active visualizer instances.
- Returns:
-
List of all active Visualizer instances
- initialise() None¶
-
Initialize the behavior tree node.
This method:
Clears existing pipeline references
Finds all Pipeline nodes in the behavior tree
Stores references to found pipelines
Note
The VisualizationManager should be placed one level below the top node (Parallel) in the behavior tree.
- update() py_trees.common.Status¶
-
Update visualizations for all pipelines.
This method:
Copies new data from buffer to visualization map
Creates visualizers for new pipelines
Notifies visualizers of new data
Executes pre-tick, tick, and post-tick phases
Checks for termination signals
- Returns:
-
FAILURE if any visualizer indicates termination, RUNNING otherwise
Note
The update cycle ensures synchronized visualization across all backends while maintaining separation between data buffers and visualization state.