Skip to content

センサーAPI¤

このページでは、Robopyのセンサー制御に関連するAPIを説明します。

カメラ¤

RealsenseCamera¤

RealsenseCamera ¤

RealsenseCamera(config: RealsenseCameraConfig)

Bases: Camera

Implementation class for Intel RealSense cameras using pyrealsense2

This implementation uses threading to avoid blocking the main thread. The camera runs a background thread that continuously captures frames, allowing async_read() to return the latest frame without blocking.

Based on LeRobot's implementation adapted for robopy architecture.

METHOD DESCRIPTION
connect

Connect to the RealSense camera and start background capture thread.

disconnect

Disconnect from the camera and stop background thread.

find_cameras

Find available Intel RealSense cameras connected to the system.

ATTRIBUTE DESCRIPTION
is_connected

TYPE: bool

is_connected property ¤

is_connected: bool

connect ¤

connect(warmup: bool = True) -> None

Connect to the RealSense camera and start background capture thread.

disconnect ¤

disconnect() -> None

Disconnect from the camera and stop background thread.

find_cameras staticmethod ¤

find_cameras() -> list[dict[str, Any]]

Find available Intel RealSense cameras connected to the system.

RETURNS DESCRIPTION
list[dict[str, Any]]

List of dictionaries containing camera information.

WebCamera¤

WebCamera ¤

WebCamera(camera_index: int, name: str, config: WebCameraConfig | None, **kwargs: object)

Bases: Camera

Implementation class for cameras using OpenCV

Initialize a WebCamera instance.

PARAMETER DESCRIPTION
camera_index

Index or device id used by OpenCV to open the camera.

TYPE: int

name

Human readable name for the camera instance.

TYPE: str

config

Optional camera configuration. If None, a default WebCameraConfig will be used.

TYPE: WebCameraConfig | None

**kwargs

Extra keyword arguments to override attributes of the provided config object (only attributes that exist on the config will be set).

TYPE: object DEFAULT: {}

The constructor does not open the device; call connect() to open the camera and apply configured settings.

METHOD DESCRIPTION
connect

Connect to the camera.

disconnect

Disconnect and release camera resources.

ATTRIBUTE DESCRIPTION
is_connected

TYPE: bool

is_connected property ¤

is_connected: bool

connect ¤

connect() -> None

Connect to the camera.

RAISES DESCRIPTION
OSError

Unsupported OS

disconnect ¤

disconnect() -> None

Disconnect and release camera resources.

This will release the underlying OpenCV VideoCapture if it is open and mark the camera as not connected. It is safe to call repeatedly.

カメラ設定¤

RealsenseCameraConfig dataclass ¤

RealsenseCameraConfig(fps: int | float | None = 30, width: int | float | None = None, height: int | float | None = None, color_mode: Literal['rgb', 'bgr'] = 'rgb', auto_exposure: bool = False, exposure: float | None = 190.0, auto_white_balance: bool = False, white_balance: float | None = 3300.0, serial_no: str | None = None, name: str = 'main', index: int = 0, warmup_s: float = 1.0, is_depth_camera: bool = True, is_realsense: bool = True, min_depth: float = 100.0, max_depth: float = 2000.0)

Bases: CameraConfig

Configuration class for RealSense cameras.

WebCameraConfig dataclass ¤

WebCameraConfig(fps: int | float | None = None, width: int | float | None = None, height: int | float | None = None, color_mode: Literal['rgb', 'bgr'] = 'rgb', auto_exposure: bool = False, exposure: float | None = 190.0, auto_white_balance: bool = False, white_balance: float | None = 3300.0, serial_no: str | None = None, is_depth_camera: bool = False, is_realsense: bool = False)

Bases: CameraConfig

Configuration class for web cameras using OpenCV.

触覚センサー¤

DigitSensor¤

DigitSensor ¤

DigitSensor(config: TactileParams)

Bases: Sensor

METHOD DESCRIPTION
connect
disconnect
ATTRIBUTE DESCRIPTION
is_connected

TYPE: bool

is_connected property ¤

is_connected: bool

connect ¤

connect() -> None

disconnect ¤

disconnect() -> None

タクタイル設定¤

TactileParams dataclass ¤

TactileParams(serial_num: str, name: str = 'main', fps: int | None = 30)

センサー統合¤

RakudaSensorParams¤

RakudaSensorParams dataclass ¤

RakudaSensorParams(cameras: List[CameraParams] = list(), tactile: List[TactileParams] = list())

CameraParams¤

CameraParams dataclass ¤

CameraParams(name: str, width: int, height: int, fps: int)

使用例¤

RealSenseカメラの使用¤

from robopy.sensors.visual.realsense_camera import RealsenseCamera
from robopy.config.sensor_config.visual_config import RealsenseCameraConfig

# 設定の作成
config = RealsenseCameraConfig(
    fps=30,
    width=640,
    height=480,
    color_mode="rgb"
)

# カメラの作成と接続
camera = RealsenseCamera("main", config)
camera.connect()

try:
    # 画像キャプチャ
    image = camera.capture()
    print(f"キャプチャした画像サイズ: {image.shape}")

finally:
    camera.disconnect()

タクタイルセンサーの使用¤

from robopy.sensors.tactile.digit_sensor import DigitSensor

# センサーの作成(シリアル番号を指定)
sensor = DigitSensor("left", "D20542")
sensor.connect()

try:
    # タクタイルデータの取得
    tactile_data = sensor.capture()
    print(f"タクタイルデータサイズ: {tactile_data.shape}")

finally:
    sensor.disconnect()

複数センサーの統合¤

from robopy import RakudaConfig, RakudaSensorParams, TactileParams
from robopy.config.sensor_config import CameraParams
from robopy.config.sensor_config.visual_config import RealsenseCameraConfig

# 統合センサー設定
sensors = RakudaSensorParams(
    cameras=[
        CameraParams(
            name="main",
            config=RealsenseCameraConfig(
                fps=30,
                width=640,
                height=480,
                color_mode="rgb"
            )
        )
    ],
    tactile=[
        TactileParams(serial_num="D20542", name="left"),
        TactileParams(serial_num="D20537", name="right"),
    ]
)

# ロボット設定に統合
config = RakudaConfig(
    leader_port="/dev/ttyUSB0",
    follower_port="/dev/ttyUSB1",
    sensors=sensors
)

カメラデバイスの検出¤

from robopy.sensors.visual.realsense_camera import RealsenseCamera

# 利用可能なRealSenseカメラを検出
cameras = RealsenseCamera.find_cameras()
print(f"検出されたカメラ: {cameras}")

for camera_info in cameras:
    print(f"カメラ名: {camera_info['name']}")
    print(f"シリアル番号: {camera_info['serial']}")

センサーの状態確認¤

# カメラの接続状態確認
if camera.is_connected:
    print("✅ カメラは接続されています")
else:
    print("❌ カメラが接続されていません")

# タクタイルセンサーの接続状態確認
if sensor.is_connected:
    print("✅ タクタイルセンサーは接続されています")
else:
    print("❌ タクタイルセンサーが接続されていません")