Skip to content

CLI

Command-line interface for Raiden teleoperation toolkit

TeleopCommand dataclass

Start bimanual teleoperation with improved synchronization

Source code in raiden/cli.py
@dataclass
class TeleopCommand:
    """Start bimanual teleoperation with improved synchronization"""

    control: Literal["leader", "spacemouse"] = "leader"
    """Control mode: leader-follower arms or SpaceMouse EE velocity control"""

    arms: Literal["bimanual", "single"] = "bimanual"
    """Which arms to use: both (bimanual) or left arm only (single)"""

    bilateral_kp: float = 0.0
    """Bilateral force feedback gain (default: 0.0 for no feedback)"""

    spacemouse_path_r: str = "/dev/hidraw7"
    """hidraw path for the right-arm SpaceMouse (spacemouse mode only)"""

    spacemouse_path_l: str = "/dev/hidraw6"
    """hidraw path for the left-arm SpaceMouse (spacemouse mode only)"""

    vel_scale: float = 0.07
    """Max translational speed in m/s at full deflection (spacemouse mode only)"""

    rot_scale: float = 0.8
    """Max rotational speed in rad/s at full deflection (spacemouse mode only)"""

    invert_rotation: bool = False
    """Negate all SpaceMouse rotation axes (spacemouse mode only)"""

arms = 'bimanual' class-attribute instance-attribute

Which arms to use: both (bimanual) or left arm only (single)

bilateral_kp = 0.0 class-attribute instance-attribute

Bilateral force feedback gain (default: 0.0 for no feedback)

control = 'leader' class-attribute instance-attribute

Control mode: leader-follower arms or SpaceMouse EE velocity control

invert_rotation = False class-attribute instance-attribute

Negate all SpaceMouse rotation axes (spacemouse mode only)

rot_scale = 0.8 class-attribute instance-attribute

Max rotational speed in rad/s at full deflection (spacemouse mode only)

spacemouse_path_l = '/dev/hidraw6' class-attribute instance-attribute

hidraw path for the left-arm SpaceMouse (spacemouse mode only)

spacemouse_path_r = '/dev/hidraw7' class-attribute instance-attribute

hidraw path for the right-arm SpaceMouse (spacemouse mode only)

vel_scale = 0.07 class-attribute instance-attribute

Max translational speed in m/s at full deflection (spacemouse mode only)

RecordCommand dataclass

Record a demonstration with cameras and robot data

Source code in raiden/cli.py
@dataclass
class RecordCommand:
    """Record a demonstration with cameras and robot data"""

    control: Literal["leader", "spacemouse"] = "leader"
    """Control mode: leader-follower arms or SpaceMouse EE velocity control"""

    data_dir: str = "data"
    """Root data directory (default: ./data); episodes go to <data_dir>/raw/<task>/"""

    s3_bucket: Optional[str] = None
    """S3 bucket name for uploading recordings (optional)"""

    s3_prefix: str = "demonstrations"
    """S3 prefix/folder for uploads (default: demonstrations)"""

    spacemouse_path_r: str = "/dev/hidraw7"
    """hidraw path for the right-arm SpaceMouse (spacemouse mode only)"""

    spacemouse_path_l: str = "/dev/hidraw6"
    """hidraw path for the left-arm SpaceMouse (spacemouse mode only)"""

    vel_scale: float = 0.12
    """Max translational speed in m/s at full deflection (spacemouse mode only)"""

    rot_scale: float = 3.0
    """Max rotational speed in rad/s at full deflection (spacemouse mode only)"""

    invert_rotation: bool = False
    """Negate all SpaceMouse rotation axes (spacemouse mode only)"""

    arms: Literal["bimanual", "single"] = "bimanual"
    """Which arms to use: both (bimanual) or left arm only (single)"""

arms = 'bimanual' class-attribute instance-attribute

Which arms to use: both (bimanual) or left arm only (single)

control = 'leader' class-attribute instance-attribute

Control mode: leader-follower arms or SpaceMouse EE velocity control

data_dir = 'data' class-attribute instance-attribute

Root data directory (default: ./data); episodes go to /raw//

invert_rotation = False class-attribute instance-attribute

Negate all SpaceMouse rotation axes (spacemouse mode only)

rot_scale = 3.0 class-attribute instance-attribute

Max rotational speed in rad/s at full deflection (spacemouse mode only)

s3_bucket = None class-attribute instance-attribute

S3 bucket name for uploading recordings (optional)

s3_prefix = 'demonstrations' class-attribute instance-attribute

S3 prefix/folder for uploads (default: demonstrations)

spacemouse_path_l = '/dev/hidraw6' class-attribute instance-attribute

hidraw path for the left-arm SpaceMouse (spacemouse mode only)

spacemouse_path_r = '/dev/hidraw7' class-attribute instance-attribute

hidraw path for the right-arm SpaceMouse (spacemouse mode only)

vel_scale = 0.12 class-attribute instance-attribute

Max translational speed in m/s at full deflection (spacemouse mode only)

ConvertCommand dataclass

Convert raw camera recordings (SVO2/bag) to UnifiedDataset format

Source code in raiden/cli.py
@dataclass
class ConvertCommand:
    """Convert raw camera recordings (SVO2/bag) to UnifiedDataset format"""

    data_dir: str = "data"
    """Root data directory (default: ./data); reads from <data_dir>/raw/, writes to <data_dir>/processed/"""

    stereo_method: Literal["zed", "ffs", "tri_stereo"] = "zed"
    """Depth estimation backend for ZED cameras: 'zed' uses the ZED SDK (NEURAL_LIGHT), 'ffs' uses Fast Foundation Stereo, 'tri_stereo' uses the TRI Stereo model"""

    ffs_scale: float = 1.0
    """Input resize scale for FFS inference (e.g. 0.5 halves resolution for speed). Only used when stereo_method=ffs"""

    ffs_iters: int = 8
    """FFS update iterations (default 8, range 4–32). Only used when stereo_method=ffs"""

    tri_stereo_variant: Literal["c32", "c64"] = "c64"
    """TRI Stereo model variant: 'c32' (faster) or 'c64' (higher quality). Only used when stereo_method=tri_stereo"""

    reconvert: bool = False
    """Re-convert all successful demonstrations even if already marked as converted (default: False)"""

data_dir = 'data' class-attribute instance-attribute

Root data directory (default: ./data); reads from /raw/, writes to /processed/

ffs_iters = 8 class-attribute instance-attribute

FFS update iterations (default 8, range 4–32). Only used when stereo_method=ffs

ffs_scale = 1.0 class-attribute instance-attribute

Input resize scale for FFS inference (e.g. 0.5 halves resolution for speed). Only used when stereo_method=ffs

reconvert = False class-attribute instance-attribute

Re-convert all successful demonstrations even if already marked as converted (default: False)

stereo_method = 'zed' class-attribute instance-attribute

Depth estimation backend for ZED cameras: 'zed' uses the ZED SDK (NEURAL_LIGHT), 'ffs' uses Fast Foundation Stereo, 'tri_stereo' uses the TRI Stereo model

tri_stereo_variant = 'c64' class-attribute instance-attribute

TRI Stereo model variant: 'c32' (faster) or 'c64' (higher quality). Only used when stereo_method=tri_stereo

VisualizeCommand dataclass

Visualize a converted UnifiedDataset recording using Rerun

Source code in raiden/cli.py
@dataclass
class VisualizeCommand:
    """Visualize a converted UnifiedDataset recording using Rerun"""

    stride: int = 1
    """Log every N-th frame (default: 1)"""

    image_scale: float = 0.25
    """Downsample factor for images and point clouds (default: 0.25)"""

image_scale = 0.25 class-attribute instance-attribute

Downsample factor for images and point clouds (default: 0.25)

stride = 1 class-attribute instance-attribute

Log every N-th frame (default: 1)

CalibrateCommand dataclass

Run camera calibration using recorded poses

Source code in raiden/cli.py
@dataclass
class CalibrateCommand:
    """Run camera calibration using recorded poses"""

    poses_file: str = CALIBRATION_POSES_FILE
    """Path to recorded calibration poses"""

    output_file: str = CALIBRATION_FILE
    """Path to save calibration results"""

    camera_config_file: str = CAMERA_CONFIG
    """Path to camera.json"""

    squares_x: int = 9
    """Number of squares along the X axis of the ChArUco board (default: 9)"""

    squares_y: int = 9
    """Number of squares along the Y axis of the ChArUco board (default: 9)"""

    square_length: float = 0.03
    """Checker square side length in metres (default: 0.03 = 30 mm)"""

    marker_length: float = 0.023
    """ArUco marker side length in metres (default: 0.023 = 23 mm)"""

    dictionary: str = "DICT_6X6_250"
    """ArUco dictionary (default: DICT_6X6_250)"""

camera_config_file = CAMERA_CONFIG class-attribute instance-attribute

Path to camera.json

dictionary = 'DICT_6X6_250' class-attribute instance-attribute

ArUco dictionary (default: DICT_6X6_250)

marker_length = 0.023 class-attribute instance-attribute

ArUco marker side length in metres (default: 0.023 = 23 mm)

output_file = CALIBRATION_FILE class-attribute instance-attribute

Path to save calibration results

poses_file = CALIBRATION_POSES_FILE class-attribute instance-attribute

Path to recorded calibration poses

square_length = 0.03 class-attribute instance-attribute

Checker square side length in metres (default: 0.03 = 30 mm)

squares_x = 9 class-attribute instance-attribute

Number of squares along the X axis of the ChArUco board (default: 9)

squares_y = 9 class-attribute instance-attribute

Number of squares along the Y axis of the ChArUco board (default: 9)

RecordCalibrationPosesCommand dataclass

Record robot poses for camera calibration

Source code in raiden/cli.py
@dataclass
class RecordCalibrationPosesCommand:
    """Record robot poses for camera calibration"""

    min_poses: int = 5
    """Minimum number of poses to record (default: 5)"""

    output_file: str = CALIBRATION_POSES_FILE
    """Path to save calibration poses"""

min_poses = 5 class-attribute instance-attribute

Minimum number of poses to record (default: 5)

output_file = CALIBRATION_POSES_FILE class-attribute instance-attribute

Path to save calibration poses