refactor(cameras): width, fps and height is mandatory to have a value in robot config

This commit is contained in:
Steven Palma
2025-05-13 17:23:13 +02:00
parent 95d57cff08
commit 95ae56827d
2 changed files with 13 additions and 0 deletions

View File

@@ -12,6 +12,17 @@ class RobotConfig(draccus.ChoiceRegistry, abc.ABC):
# Directory to store calibration file
calibration_dir: Path | None = None
def __post_init__(self):
if hasattr(self, "cameras"):
cameras = self.cameras
if cameras:
for cam_name, cam_config in cameras.items():
for attr in ["width", "height", "fps"]:
if getattr(cam_config, attr) is None:
raise ValueError(
f"Camera config for '{cam_name}' has None value for required attribute '{attr}'"
)
@property
def type(self) -> str:
return self.get_choice_name(self.__class__)

View File

@@ -28,6 +28,8 @@ from lerobot.common.cameras.configs import Cv2Rotation
from lerobot.common.cameras.opencv import OpenCVCamera, OpenCVCameraConfig
from lerobot.common.errors import DeviceAlreadyConnectedError, DeviceNotConnectedError
# NOTE(Steven): Consider improving the assert coverage
def test_base_class_implementation():
config = OpenCVCameraConfig(index_or_path=0)