diff --git a/dimos/experimental/robot/bosdyn/spot/rerun.py b/dimos/experimental/robot/bosdyn/spot/rerun.py index 0f028b571a..26cfe3efa2 100644 --- a/dimos/experimental/robot/bosdyn/spot/rerun.py +++ b/dimos/experimental/robot/bosdyn/spot/rerun.py @@ -92,14 +92,23 @@ def _tf_to_rerun(tf_message: TFMessage) -> RerunData: def _camera_info_pinhole(camera_info: CameraInfo, origin: Callable[[str], str]) -> RerunData | None: - """Re-emit a shared CameraInfo onto its camera's image entity as a Pinhole.""" suffix = _OPTICAL_FRAME_TO_SUFFIX.get(camera_info.frame_id) if suffix is None: return None - return camera_info.to_rerun( - image_plane_distance=_FRUSTUM_PLANE_DISTANCE, - image_topic=_camera_entity(origin(suffix)), - ) + import rerun as rr + + return [ + ( + _camera_entity(origin(suffix)), + rr.Pinhole( + focal_length=[camera_info.K[0], camera_info.K[4]], + principal_point=[camera_info.K[2], camera_info.K[5]], + width=camera_info.width, + height=camera_info.height, + image_plane_distance=_FRUSTUM_PLANE_DISTANCE, + ), + ) + ] # Module-level (not closures) so the RerunBridgeModule config stays picklable