From 92b479f9ac550f5785a53237efe8d6c2c03ebc81 Mon Sep 17 00:00:00 2001 From: Xiaoxuan Liu Date: Tue, 21 Oct 2025 17:31:03 +0800 Subject: [PATCH] Fix camera FPS set issue (#2275) Set camera width/height 1st before FPS setting, to avoid FPS set failure alike: ERROR:__main__:Failed to connect or configure OpenCV camera /dev/video2: OpenCVCamera(/dev/video2) failed to set fps=30 (actual_fps=25.0). --- src/lerobot/cameras/opencv/camera_opencv.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lerobot/cameras/opencv/camera_opencv.py b/src/lerobot/cameras/opencv/camera_opencv.py index 89d5995f4..28c978d1c 100644 --- a/src/lerobot/cameras/opencv/camera_opencv.py +++ b/src/lerobot/cameras/opencv/camera_opencv.py @@ -208,11 +208,6 @@ class OpenCVCamera(Camera): if self.videocapture is None: raise DeviceNotConnectedError(f"{self} videocapture is not initialized") - if self.fps is None: - self.fps = self.videocapture.get(cv2.CAP_PROP_FPS) - else: - self._validate_fps() - default_width = int(round(self.videocapture.get(cv2.CAP_PROP_FRAME_WIDTH))) default_height = int(round(self.videocapture.get(cv2.CAP_PROP_FRAME_HEIGHT))) @@ -225,6 +220,11 @@ class OpenCVCamera(Camera): else: self._validate_width_and_height() + if self.fps is None: + self.fps = self.videocapture.get(cv2.CAP_PROP_FPS) + else: + self._validate_fps() + def _validate_fps(self) -> None: """Validates and sets the camera's frames per second (FPS)."""