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
Dependencies¶
py_trees for behavior tree functionality
cv2 for OpenCV visualization
robokudo.pipeline for pipeline access
robokudo.vis.* for visualization backends
See Also¶
robokudo.vis.visualizer: Base visualization interfacerobokudo.vis.cv_visualizer: OpenCV-based visualizationrobokudo.vis.o3d_visualizer: Open3D-based visualizationrobokudo.vis.ros_visualizer: ROS-based visualization
Classes¶
Behavior tree node for managing pipeline visualizations. |
Module Contents¶
- class robokudo.vis.visualizer_manager.VisualizationManager(name)¶
-
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
Parameters¶
- namestr
-
Name of the behavior tree node
Attributes¶
- pipelinesdict
-
Mapping of pipeline names to Pipeline objects
- rk_loggerlogging.Logger
-
Logger instance for this class
- visualizer_typeslist
-
List of available visualizer classes
- visualizersdict
-
Mapping of pipeline names to lists of active visualizers
Notes¶
The manager operates in three phases:
Pre-tick: Prepare visualizers for new data
Tick: Update visualizations
Post-tick: Cleanup and synchronization
- pipelines¶
- rk_logger = None¶
- visualizer_types¶
- visualizers¶
- create_visualizers_for_pipeline(pipeline: robokudo.pipeline.Pipeline)¶
-
Create visualizer instances for a pipeline.
Parameters¶
- pipelinerobokudo.pipeline.Pipeline
-
Pipeline to create visualizers for
Notes¶
Creates one instance of each visualizer type and associates them with the pipeline. All visualizers share a common visualization state.
Warning
Not all visualizers need shared state - TODO: Handle this case
- static visualizer_instances()¶
-
Get all active visualizer instances.
Returns¶
- list
-
List of all active Visualizer instances
- initialise()¶
-
Initialize the behavior tree node.
This method:
Clears existing pipeline references
Finds all Pipeline nodes in the behavior tree
Stores references to found pipelines
Notes¶
The VisualizationManager should be placed one level below the top node (Parallel) in the behavior tree.
- update()¶
-
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¶
- py_trees.common.Status
-
FAILURE if any visualizer indicates termination, RUNNING otherwise
Notes¶
The update cycle ensures synchronized visualization across all backends while maintaining separation between data buffers and visualization state.