pylabrobot.liquid_handling.backends.hamilton.STAR_backend.STAR.probe_liquid_volumes#
- async STAR.probe_liquid_volumes(containers: List[Container], use_channels: List[int], resource_offsets: List[Coordinate] | None = None, lld_mode: LLDMode = LLDMode.GAMMA, search_speed: float = 10.0, n_replicates: int = 3, move_to_z_safety_after: bool = True) List[float]#
Probe liquid volumes in containers by measuring heights and converting to volumes.
Performs liquid level detection to measure surface heights, then converts heights to volumes using each container’s geometric model. This is a convenience wrapper around probe_liquid_heights that handles the height-to-volume conversion.
- Parameters:
containers (List[Container]) – List of Container objects to probe, one per channel. All must support height-to-volume conversion via compute_volume_from_height().
use_channels (List[int]) – Channel indices to use for probing (0-indexed).
resource_offsets (List[Coordinate] | None) – Optional XYZ offsets from container centers. Auto-calculated for single containers with odd channel counts. Defaults to container centers.
lld_mode (LLDMode) – Detection mode - LLDMode(1) for capacitive, LLDMode(2) for pressure-based. Defaults to capacitive.
search_speed (float) – Z-axis search speed in mm/s. Default 10.0 mm/s.
n_replicates (int) – Number of measurements per channel. Default 3.
move_to_z_safety_after (bool) – Whether to move channels to safe Z height after probing. Default True.
- Returns:
Volumes in each container (uL).
- Raises:
ValueError – If any container doesn’t support height-to-volume conversion (raised by probe_liquid_heights).
NotImplementedError – If channels require different X positions.
- Return type:
Notes: - Delegates all motion, LLD, validation, and safety logic to probe_liquid_heights - All containers must support height-volume functions. Volume calculation uses Container.compute_volume_from_height()