MarkRedeman commited on
Commit
e7b5c7e
·
verified ·
1 Parent(s): 5676125

Upload folder using huggingface_hub

Browse files
Files changed (2) hide show
  1. README.md +155 -12
  2. environment.json +78 -0
README.md CHANGED
@@ -1,29 +1,107 @@
1
  ---
2
  library_name: physicalai
3
  license: apache-2.0
4
- model_name: act
5
  pipeline_tag: robotics
6
  tags:
7
  - act
 
 
 
 
8
  - physicalai
9
  - robotics
10
  - torch
 
11
  ---
12
 
13
- # Model Card for act
14
 
15
- [Action Chunking with Transformers (ACT)](https://huggingface.co/papers/2304.13705) is an imitation-learning policy that predicts short action chunks from robot state and visual observations.
 
 
16
 
17
  This model was trained and exported with Physical AI Studio. It can be loaded from this directory with the root
18
  `manifest.json`, or from backend-specific manifests under `exports/<backend>/manifest.json`.
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  ## Available Exports
21
 
22
  - **torch:** `exports/torch/act.pt`
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
  ## I/O Specification
25
 
26
- ### Inputs
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
  | Name | Type | Shape | Dtype |
29
  | --- | --- | --- | --- |
@@ -31,23 +109,88 @@ This model was trained and exported with Physical AI Studio. It can be loaded fr
31
  | images.gripper | VISUAL | [3, 480, 640] | float32 |
32
  | images.overview | VISUAL | [3, 480, 640] | float32 |
33
 
34
- ### Outputs
35
 
36
  | Name | Type | Shape | Dtype |
37
  | --- | --- | --- | --- |
38
  | action | ACTION | [100, 6] | float32 |
39
 
40
- ## How To Run Inference
41
 
42
- Use the `manifest.json` in this directory for the canonical Torch/checkpoint export, or use a backend-specific manifest
43
- from `exports/<backend>/manifest.json` for a specific runtime.
44
 
45
- ## How To Retrain
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
 
47
  Import this model in Physical AI Studio and start a new training job using it as the base model. Studio will preserve
48
  the training lineage through the parent model relationship.
49
 
50
- ## Limitations
 
 
 
 
 
 
 
 
51
 
52
- This generated model card summarizes package metadata and exported model I/O. Add task-specific evaluation results,
53
- dataset details, robot setup, and safety considerations before publishing externally.
 
 
1
  ---
2
  library_name: physicalai
3
  license: apache-2.0
4
+ model_name: ACT
5
  pipeline_tag: robotics
6
  tags:
7
  - act
8
+ - executorch
9
+ - onnx
10
+ - openvino
11
+ - physical-ai-studio
12
  - physicalai
13
  - robotics
14
  - torch
15
+ - vision-language-action
16
  ---
17
 
18
+ # Model Card for ACT
19
 
20
+ [Action Chunking with Transformers (ACT)](https://huggingface.co/papers/2304.13705) is an imitation-learning policy
21
+ that predicts short action chunks from robot state and visual observations. The robot can execute those chunks as a
22
+ sequence of real-world movements.
23
 
24
  This model was trained and exported with Physical AI Studio. It can be loaded from this directory with the root
25
  `manifest.json`, or from backend-specific manifests under `exports/<backend>/manifest.json`.
26
 
27
+ ## Model Details
28
+
29
+ - **Policy:** act
30
+ - **Runtime library:** `physicalai`
31
+ - **Generated by:** Physical AI Studio
32
+ - **Root manifest:** `manifest.json`
33
+ - **Backend manifests:** `exports/<backend>/manifest.json`
34
+
35
+ ## Intended Use
36
+
37
+ Use this model for robot imitation-learning inference in setups matching the training dataset, robot embodiment,
38
+ camera viewpoints, and task instructions. Validate behavior in simulation or a safe test cell before running on hardware.
39
+
40
+ ## Dataset
41
+
42
+ This model was trained from the Physical AI Studio dataset named **Dice cleanup**.
43
+
44
  ## Available Exports
45
 
46
  - **torch:** `exports/torch/act.pt`
47
+ - **executorch:** `exports/executorch/act.pte`
48
+ - **onnx:** `exports/onnx/act.onnx`
49
+ - **openvino:** `exports/openvino/act.xml`
50
+
51
+ ## Training Environment
52
+
53
+ Environment: **So101**
54
+
55
+ ### Robots
56
+
57
+ | Name | Type | Teleoperator | Calibration |
58
+ | --- | --- | --- | --- |
59
+ | SO101 Follower | SO101_Follower | SO101 Leader (SO101_Leader) | Included |
60
+
61
+ ### Cameras
62
+
63
+ | Name | Driver | Hardware | Resolution | FPS |
64
+ | --- | --- | --- | --- | --- |
65
+ | Gripper | usb_camera | Innomaker-U20CAM-1080p-S1: Inno | 640x480 | 30 |
66
+ | Overview | usb_camera | Innomaker-U20CAM-1080p-S1: Inno | 640x480 | 30 |
67
 
68
  ## I/O Specification
69
 
70
+ ### executorch
71
+
72
+ #### Inputs
73
+
74
+ | Name | Type | Shape | Dtype |
75
+ | --- | --- | --- | --- |
76
+ | state | STATE | [6] | float32 |
77
+ | images.gripper | VISUAL | [3, 480, 640] | float32 |
78
+ | images.overview | VISUAL | [3, 480, 640] | float32 |
79
+
80
+ #### Outputs
81
+
82
+ | Name | Type | Shape | Dtype |
83
+ | --- | --- | --- | --- |
84
+ | action | ACTION | [100, 6] | float32 |
85
+
86
+ ### onnx
87
+
88
+ #### Inputs
89
+
90
+ | Name | Type | Shape | Dtype |
91
+ | --- | --- | --- | --- |
92
+ | state | STATE | [6] | float32 |
93
+ | images.gripper | VISUAL | [3, 480, 640] | float32 |
94
+ | images.overview | VISUAL | [3, 480, 640] | float32 |
95
+
96
+ #### Outputs
97
+
98
+ | Name | Type | Shape | Dtype |
99
+ | --- | --- | --- | --- |
100
+ | action | ACTION | [100, 6] | float32 |
101
+
102
+ ### openvino
103
+
104
+ #### Inputs
105
 
106
  | Name | Type | Shape | Dtype |
107
  | --- | --- | --- | --- |
 
109
  | images.gripper | VISUAL | [3, 480, 640] | float32 |
110
  | images.overview | VISUAL | [3, 480, 640] | float32 |
111
 
112
+ #### Outputs
113
 
114
  | Name | Type | Shape | Dtype |
115
  | --- | --- | --- | --- |
116
  | action | ACTION | [100, 6] | float32 |
117
 
118
+ ### torch
119
 
120
+ #### Inputs
 
121
 
122
+ | Name | Type | Shape | Dtype |
123
+ | --- | --- | --- | --- |
124
+ | state | STATE | [6] | float32 |
125
+ | images.gripper | VISUAL | [3, 480, 640] | float32 |
126
+ | images.overview | VISUAL | [3, 480, 640] | float32 |
127
+
128
+ #### Outputs
129
+
130
+ | Name | Type | Shape | Dtype |
131
+ | --- | --- | --- | --- |
132
+ | action | ACTION | [100, 6] | float32 |
133
+
134
+ ## Running Inference
135
+
136
+ ### Installation
137
+
138
+ ```bash
139
+ uv pip install physicalai numpy
140
+ ```
141
+
142
+ The following example loads this model with the PhysicalAI inference API and builds a dummy observation matching the
143
+ declared input specification:
144
+
145
+ ```python
146
+ import numpy as np
147
+ from physicalai.inference import InferenceModel
148
+
149
+ MODEL_PATH = "path/to/model"
150
+ model = InferenceModel.load(MODEL_PATH, device="CPU")
151
+
152
+ observation = {
153
+ "state": np.random.rand(1, 6).astype(np.float32),
154
+ "images.gripper": np.random.rand(1, 3, 480, 640).astype(np.float32),
155
+ "images.overview": np.random.rand(1, 3, 480, 640).astype(np.float32),
156
+ }
157
+
158
+ chunk = model.predict_action_chunk(observation)
159
+ ```
160
+
161
+ Set `MODEL_PATH` to this local model directory or to the Hugging Face repository id after upload.
162
+
163
+ ### Running A Robot Control Loop
164
+
165
+ For a blocking control loop similar to PhysicalAI's `examples/runtime/sync_inference.py`, point the runtime at this
166
+ model directory and provide your robot/camera configuration:
167
+
168
+ ```bash
169
+ python examples/runtime/sync_inference.py \
170
+ --robot so101 \
171
+ --port /dev/ttyACM0 \
172
+ --calibration ./calibration.json \
173
+ --model path/to/model \
174
+ --camera overhead:uvc:/dev/video0 \
175
+ --task "pick up the object" \
176
+ --device CPU
177
+ ```
178
+
179
+ ## Training / Reproducing Training
180
 
181
  Import this model in Physical AI Studio and start a new training job using it as the base model. Studio will preserve
182
  the training lineage through the parent model relationship.
183
 
184
+ To reproduce behavior on your own hardware, match the exported I/O specification, robot type, camera viewpoints,
185
+ control frequency, and calibration values from `environment.json` as closely as possible.
186
+
187
+ ## Evaluation
188
+
189
+ No task-specific evaluation metrics were exported with this generated card. Add validation results, success rates, and
190
+ hardware test conditions before publishing externally.
191
+
192
+ ## Limitations And Safety
193
 
194
+ This generated model card summarizes package metadata, exported model I/O, and the sanitized training environment. Robot
195
+ policies can behave unpredictably outside their training distribution. Use hardware limits, emergency stops, supervision,
196
+ and staged validation before autonomous operation.
environment.json ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format": "physical_ai_studio_environment",
3
+ "version": "1.0",
4
+ "name": "So101",
5
+ "robots": [
6
+ {
7
+ "name": "SO101 Follower",
8
+ "type": "SO101_Follower",
9
+ "calibration": {
10
+ "elbow_flex": {
11
+ "id": 3,
12
+ "drive_mode": 0,
13
+ "homing_offset": 1149,
14
+ "range_min": 851,
15
+ "range_max": 3074
16
+ },
17
+ "gripper": {
18
+ "id": 6,
19
+ "drive_mode": 0,
20
+ "homing_offset": 1088,
21
+ "range_min": 1938,
22
+ "range_max": 3416
23
+ },
24
+ "shoulder_lift": {
25
+ "id": 2,
26
+ "drive_mode": 0,
27
+ "homing_offset": 263,
28
+ "range_min": 821,
29
+ "range_max": 3195
30
+ },
31
+ "shoulder_pan": {
32
+ "id": 1,
33
+ "drive_mode": 0,
34
+ "homing_offset": 135,
35
+ "range_min": 732,
36
+ "range_max": 3454
37
+ },
38
+ "wrist_flex": {
39
+ "id": 4,
40
+ "drive_mode": 0,
41
+ "homing_offset": -1606,
42
+ "range_min": 860,
43
+ "range_max": 3188
44
+ },
45
+ "wrist_roll": {
46
+ "id": 5,
47
+ "drive_mode": 0,
48
+ "homing_offset": 612,
49
+ "range_min": 124,
50
+ "range_max": 3956
51
+ }
52
+ },
53
+ "teleoperator": {
54
+ "type": "robot",
55
+ "name": "SO101 Leader",
56
+ "robot_type": "SO101_Leader"
57
+ }
58
+ }
59
+ ],
60
+ "cameras": [
61
+ {
62
+ "name": "Gripper",
63
+ "driver": "usb_camera",
64
+ "hardware_name": "Innomaker-U20CAM-1080p-S1: Inno",
65
+ "width": 640,
66
+ "height": 480,
67
+ "fps": 30
68
+ },
69
+ {
70
+ "name": "Overview",
71
+ "driver": "usb_camera",
72
+ "hardware_name": "Innomaker-U20CAM-1080p-S1: Inno",
73
+ "width": 640,
74
+ "height": 480,
75
+ "fps": 30
76
+ }
77
+ ]
78
+ }