diff --git a/src/lerobot/cameras/realsense/camera_realsense.py b/src/lerobot/cameras/realsense/camera_realsense.py index 6363cc0bc..e156e6d14 100644 --- a/src/lerobot/cameras/realsense/camera_realsense.py +++ b/src/lerobot/cameras/realsense/camera_realsense.py @@ -17,6 +17,7 @@ Provides the RealSenseCamera class for capturing frames from Intel RealSense cam """ import logging +import sys import time from threading import Event, Lock, Thread from typing import TYPE_CHECKING, Any @@ -41,6 +42,7 @@ from ..utils import get_cv2_rotation from .configuration_realsense import RealSenseCameraConfig logger = logging.getLogger(__name__) +pkg_name = "pyrealsense2-macosx" if sys.platform == "darwin" else "pyrealsense2" class RealSenseCamera(Camera): @@ -114,7 +116,7 @@ class RealSenseCamera(Camera): Args: config: The configuration settings for the camera. """ - require_package("pyrealsense2", extra="intelrealsense") + require_package(pkg_name, extra="intelrealsense", import_name="pyrealsense2") super().__init__(config) self.config = config diff --git a/src/lerobot/utils/import_utils.py b/src/lerobot/utils/import_utils.py index 1ec0b6375..bfa87fb86 100644 --- a/src/lerobot/utils/import_utils.py +++ b/src/lerobot/utils/import_utils.py @@ -115,7 +115,9 @@ _feetech_sdk_available = is_package_available("feetech-servo-sdk", import_name=" _reachy2_sdk_available = is_package_available("reachy2_sdk") _can_available = is_package_available("python-can", "can") _unitree_sdk_available = is_package_available("unitree-sdk2py", "unitree_sdk2py") -_pyrealsense2_available = is_package_available("pyrealsense2") +_pyrealsense2_available = is_package_available("pyrealsense2") or is_package_available( + "pyrealsense2-macosx", import_name="pyrealsense2" +) _zmq_available = is_package_available("pyzmq", import_name="zmq") _hebi_available = is_package_available("hebi-py", import_name="hebi") _teleop_available = is_package_available("teleop")