File size: 3,134 Bytes
1e09dca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
{
  "robot_type": "droid_franka_robotiq",
  "robot_class": "arm7g1",
  "control_rate": 15,
  "features": {
    "camera_obs/front_cam_rgb": {
      "role": "observation",
      "type": "rgb"
    },
    "camera_obs/wrist_camera_rgb": {
      "role": "observation",
      "type": "rgb"
    },
    "policy/joint_pos": {
      "role": "observation",
      "state_type": "JOINT_ABS_POS",
      "state_representation": "REAL",
      "dtype": "float32",
      "units": "rad",
      "shape": [7],
      "names": [
        "panda_joint1",
        "panda_joint2",
        "panda_joint3",
        "panda_joint4",
        "panda_joint5",
        "panda_joint6",
        "panda_joint7"
      ]
    },
    "policy/gripper_pos": {
      "role": "observation",
      "state_type": "JOINT_ABS_POS",
      "state_representation": "NORM01",
      "dtype": "float32",
      "units": "none",
      "shape": [1],
      "names": ["gripper.opening"]
    },
    "policy/eef_pos": {
      "role": "observation",
      "state_type": "EE_ABS_POS",
      "state_representation": "XYZ",
      "frame": "world",
      "dtype": "float32",
      "units": "m",
      "shape": [3],
      "names": ["eef_pos.x", "eef_pos.y", "eef_pos.z"]
    },
    "policy/eef_quat": {
      "role": "observation",
      "state_type": "EE_ABS_ROT",
      "state_representation": "QUATWXYZ",
      "frame": "world",
      "dtype": "float32",
      "units": "none",
      "shape": [4],
      "names": ["eef_quat.w", "eef_quat.x", "eef_quat.y", "eef_quat.z"]
    },
    "policy/held_part_pose": {
      "role": "observation",
      "state_type": "OBJECT_ABS_POSE",
      "state_representation": "XYZ_QUATXYZW",
      "frame": "env_local",
      "dtype": "float32",
      "units": "m",
      "shape": [7],
      "names": ["held.x", "held.y", "held.z", "held.qx", "held.qy", "held.qz", "held.qw"],
      "comment": "Privileged (PA-RL critic only); policy adapters must not consume."
    },
    "policy/fixed_part_pose": {
      "role": "observation",
      "state_type": "OBJECT_ABS_POSE",
      "state_representation": "XYZ_QUATXYZW",
      "frame": "env_local",
      "dtype": "float32",
      "units": "m",
      "shape": [7],
      "names": ["fixed.x", "fixed.y", "fixed.z", "fixed.qx", "fixed.qy", "fixed.qz", "fixed.qw"],
      "comment": "Privileged (PA-RL critic only); policy adapters must not consume."
    },
    "action": {
      "role": "action",
      "state_type": "JOINT_ABS_POS",
      "dtype": "float32",
      "shape": [8],
      "names": [
        "panda_joint1",
        "panda_joint2",
        "panda_joint3",
        "panda_joint4",
        "panda_joint5",
        "panda_joint6",
        "panda_joint7",
        "gripper.open_close"
      ],
      "comment": "Dims 0-6: absolute joint targets (rad, REAL). Dim 7: gripper (NORM01; >0.5 closes)."
    }
  },
  "comment": "assembly_bench DROID (droid_abs_joint_pos): Franka Panda 7-DoF + Robotiq 2F-85. Wire keys match Arena obs groups. One action feature per the v0 contract: 7 absolute joint targets + binary gripper. Omits policy/actions and policy/robot_joint_pos (redundant with action echo / full articulation)."
}