数据格式
动作命令
动作命令是包含各种关节和末端执行器控制命令的字典:
夹爪指令
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), # 右手腕相机
}
