Skip to content

Data Format

Action Commands

Action commands are dictionaries containing various joint and end effector control commands:

Gripper Commands

python
import numpy as np

action_gripper_pos = {
    # Unit: m
    "leftarm_gripper_cmd_pos": np.array([0.0]),
    "rightarm_gripper_cmd_pos": np.array([0.0]),
}

Dual Arm Commands

python
import numpy as np

# Joint Control
arm_joint_action = {
    # Left arm joint positions [joint1, joint2, ..., joint7]
    "leftarm_cmd_joint_pos": np.array([0, 0, 0, 0, 0, 0, 0]),
    # Right arm joint positions [joint1, joint2, ..., joint7]
    "rightarm_cmd_joint_pos": np.array([0, 0, 0, 0, 0, 0, 0]),
}

# Cartesian Control
action_cart_action = {
    # Left arm Cartesian position [x, y, z, rx, ry, rz]
    "leftarm_cmd_cart_pos": np.array([0.3, 0.2, 0.5, 0, 0, 0]),
    # Right arm Cartesian position [x, y, z, rx, ry, rz]
    "rightarm_cmd_cart_pos": np.array([0.3, -0.2, 0.5, 0, 0, 0]),
}

Torso Commands

python

# Joint Control
torso_joint_action = {
    # Torso joint positions [joint1, joint2, ..., joint6]
    "torso_cmd_joint_pos": np.array([0, 0, 0, 0, 0, 0]),
}

# Cartesian Control
torso_cart_action = {
    # Torso Cartesian position [x, y, z, rx, ry, rz]
    "torso_cmd_cart_pos": np.array([0, 0, 0, 0, 0, 0]),
}

Base Commands

Important: Only effective when the base is in velocity control mode.

python

# Base velocity command
cmd_vel_action = {
    # Base velocity [vx, vy, wz]
    "base_cmd_speed": np.array([0.0, 0.0, 0.0]),
}

Observation Data

Observation data contains robot state information and camera images:

python
observation = {
    # Robot state data
    "leftarm_state_cart_pos": np.array([x, y, z, rx, ry, rz]),   # Left arm Cartesian position
    "leftarm_state_joint_pos": np.array([j1, j2, ..., j7]),     # Left arm joint positions
    "rightarm_state_cart_pos": np.array([x, y, z, rx, ry, rz]), # Right arm Cartesian position
    "rightarm_state_joint_pos": np.array([j1, j2, ..., j7]),    # Right arm joint positions
    "leftarm_gripper_state_pos": np.array([gripper_pos]),       # Left gripper position
    "rightarm_gripper_state_pos": np.array([gripper_pos]),      # Right gripper position

    # Torso state (if available)
    "torso_state_cart_pos": np.array([x, y, z, rx, ry, rz]),    # Torso Cartesian position
    "torso_state_joint_pos": np.array([j1, j2, ..., j6]),       # Torso joint positions

    # Base state (if available)
    "base_state_speed": np.array([vx, vy, wz]),                 # Base velocity

    # Camera images (if enabled), RGB
    "cam_high": np.array(shape=[H, W, 3], dtype=np.uint8),          # High camera
    "cam_left_wrist": np.array(shape=[H, W, 3], dtype=np.uint8),    # Left wrist camera
    "cam_right_wrist": np.array(shape=[H, W, 3], dtype=np.uint8),   # Right wrist camera
}