Skip to content

数据格式

动作命令

动作命令是包含各种关节和末端执行器控制命令的字典:

夹爪指令

python
import numpy as np

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

双臂命令

python
import numpy as np

# 关节控制
arm_joint_action = {
    # 左臂关节位置 [joint1, joint2, ..., joint7]
    "leftarm_cmd_joint_pos": np.array([0, 0, 0, 0, 0, 0, 0]),
    # 右臂关节位置 [joint1, joint2, ..., joint7]
    "rightarm_cmd_joint_pos": np.array([0, 0, 0, 0, 0, 0, 0]),
}

# 笛卡尔控制
action_cart_action = {
    # 左臂笛卡尔位置 [x, y, z, rx, ry, rz]
    "leftarm_cmd_cart_pos": np.array([0.3, 0.2, 0.5, 0, 0, 0]),
    # 右臂笛卡尔位置 [x, y, z, rx, ry, rz]
    "rightarm_cmd_cart_pos": np.array([0.3, -0.2, 0.5, 0, 0, 0]),
}

躯干指令

python

# 关节控制
torso_joint_action = {
    # 躯干关节位置 [joint1, joint2, ..., joint6]
    "torso_cmd_joint_pos": np.array([0, 0, 0, 0, 0, 0]),
}

# 笛卡尔控制
torso_cart_action = {
    # 躯干笛卡尔位置 [x, y, z, rx, ry, rz]
    "torso_cmd_cart_pos": np.array([0, 0, 0, 0, 0, 0]),
}

底盘指令

重要:仅在底盘处于速度控制模式下生效。

python

# 底盘速度指令
cmd_vel_action = {
    # 底盘速度 [vx, vy, wz]
    "base_cmd_speed": np.array([0.0, 0.0, 0.0]),
}

观测数据

观测数据包含机器人状态信息和相机图像:

python
observation = {
    # 机器人状态数据
    "leftarm_state_cart_pos": np.array([x, y, z, rx, ry, rz]),   # 左臂笛卡尔位置
    "leftarm_state_joint_pos": np.array([j1, j2, ..., j7]),     # 左臂关节位置
    "rightarm_state_cart_pos": np.array([x, y, z, rx, ry, rz]), # 右臂笛卡尔位置
    "rightarm_state_joint_pos": np.array([j1, j2, ..., j7]),    # 右臂关节位置
    "leftarm_gripper_state_pos": np.array([gripper_pos]),       # 左夹爪位置
    "rightarm_gripper_state_pos": np.array([gripper_pos]),      # 右夹爪位置

    # 躯干状态(如果可用)
    "torso_state_cart_pos": np.array([x, y, z, rx, ry, rz]),    # 躯干笛卡尔位置
    "torso_state_joint_pos": np.array([j1, j2, ..., j6]),       # 躯干关节位置

    # 底盘状态(如果可用)
    "base_state_speed": np.array([vx, vy, wz]),                 # 底盘速度

    # 相机图像(如果启用), RGB
    "cam_high": np.array(shape=[H, W, 3], dtype=np.uint8),          # 高位相机
    "cam_left_wrist": np.array(shape=[H, W, 3], dtype=np.uint8),    # 左手腕相机
    "cam_right_wrist": np.array(shape=[H, W, 3], dtype=np.uint8),   # 右手腕相机
}