設定API¤
このページでは、Robopyの設定に関連するAPIを説明します。
ロボット設定¤
RakudaConfig¤
RakudaConfig
dataclass
¤
RakudaConfig(leader_port: str, follower_port: str, sensors: RakudaSensorParams | None = None, slow_mode: bool = False)
Configuration class for Rakuda robot.
KochConfig¤
KochConfig
dataclass
¤
KochConfig(leader_port: str, follower_port: str, calibration_path: str, sensors: KochSensorConfig = KochSensorConfig())
Configuration class for Koch robot.
ATTRIBUTE | DESCRIPTION |
---|---|
camera |
Backward compatibility property for camera access.
TYPE:
|
camera
property
writable
¤
camera: Dict[str, RealsenseCameraConfig | WebCameraConfig]
Backward compatibility property for camera access.
RakudaSensorParams¤
RakudaSensorParams
dataclass
¤
RakudaSensorParams(cameras: List[CameraParams] = list(), tactile: List[TactileParams] = list())
センサー設定¤
CameraParams¤
TactileParams¤
ビジュアル設定¤
RealsenseCameraConfig¤
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¤
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.
データ型¤
RakudaObs¤
RakudaObs
dataclass
¤
Overall observation structure for Rakuda robot. arms: Observations from the robot arms (leader and follower). sensors: Observations from the sensors (cameras and tactile).
KochObservation¤
KochObservation
dataclass
¤
Observation class for Koch robot.
使用例¤
基本的なRakuda設定¤
from robopy import RakudaConfig
# 最小限の設定
config = RakudaConfig(
leader_port="/dev/ttyUSB0",
follower_port="/dev/ttyUSB1"
)
print(f"Leader ポート: {config.leader_port}")
print(f"Follower ポート: {config.follower_port}")
print(f"スローモード: {config.slow_mode}")
センサー付きの設定¤
from robopy import RakudaConfig, RakudaSensorParams, TactileParams
from robopy.config.sensor_config import CameraParams
from robopy.config.sensor_config.visual_config import RealsenseCameraConfig
# 完全なセンサー設定
config = RakudaConfig(
leader_port="/dev/ttyUSB0",
follower_port="/dev/ttyUSB1",
sensors=RakudaSensorParams(
cameras=[
CameraParams(
name="main",
config=RealsenseCameraConfig(
fps=30,
width=640,
height=480,
color_mode="rgb",
depth_mode="z16"
)
),
CameraParams(
name="side",
config=RealsenseCameraConfig(
fps=15,
width=424,
height=240,
color_mode="rgb"
)
)
],
tactile=[
TactileParams(serial_num="D20542", name="left"),
TactileParams(serial_num="D20537", name="right"),
]
),
slow_mode=False
)
Koch設定¤
from robopy.config.robot_config.koch_config import KochConfig
# Koch ロボットの設定
config = KochConfig(
leader_port="/dev/ttyUSB0",
follower_port="/dev/ttyUSB1",
camera_config=None # カメラなし
)
カメラ設定の詳細¤
from robopy.config.sensor_config.visual_config import RealsenseCameraConfig
# 高解像度設定
high_res_config = RealsenseCameraConfig(
fps=15,
width=1280,
height=720,
color_mode="rgb",
depth_mode="z16",
enable_depth=True
)
# 高速設定
fast_config = RealsenseCameraConfig(
fps=60,
width=424,
height=240,
color_mode="rgb",
enable_depth=False
)
# Webカメラ設定
from robopy.config.sensor_config.visual_config import WebCameraConfig
webcam_config = WebCameraConfig(
device_id=0,
fps=30,
width=640,
height=480
)
設定の検証¤
# 設定値の確認
if config.sensors:
if config.sensors.cameras:
print(f"カメラ数: {len(config.sensors.cameras)}")
for cam in config.sensors.cameras:
print(f" {cam.name}: {cam.config}")
if config.sensors.tactile:
print(f"タクタイルセンサー数: {len(config.sensors.tactile)}")
for tactile in config.sensors.tactile:
print(f" {tactile.name}: {tactile.serial_num}")
設定の保存と読み込み¤
import json
from pathlib import Path
# 設定の保存(JSON形式)
config_dict = {
"leader_port": config.leader_port,
"follower_port": config.follower_port,
"slow_mode": config.slow_mode,
}
if config.sensors:
if config.sensors.cameras:
config_dict["cameras"] = [
{
"name": cam.name,
"fps": cam.config.fps,
"width": cam.config.width,
"height": cam.config.height,
}
for cam in config.sensors.cameras
]
if config.sensors.tactile:
config_dict["tactile"] = [
{
"name": tactile.name,
"serial_num": tactile.serial_num,
}
for tactile in config.sensors.tactile
]
# ファイルに保存
config_path = Path("robot_config.json")
with open(config_path, "w") as f:
json.dump(config_dict, f, indent=2)
print(f"設定を {config_path} に保存しました")