Instructions to use Bigenlight/act_carrot_in_pot_ee with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use Bigenlight/act_carrot_in_pot_ee with LeRobot:
- Notebooks
- Google Colab
- Kaggle
model card
Browse files
README.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: cc-by-nc-4.0
|
| 3 |
+
library_name: lerobot
|
| 4 |
+
pipeline_tag: robotics
|
| 5 |
+
tags:
|
| 6 |
+
- robotics
|
| 7 |
+
- lerobot
|
| 8 |
+
- act
|
| 9 |
+
- imitation-learning
|
| 10 |
+
- ur7e
|
| 11 |
+
- end-effector
|
| 12 |
+
---
|
| 13 |
+
|
| 14 |
+
# ACT · carrot-in-pot · EEF-delta (state 16 / action 7) — checkpoint 10k
|
| 15 |
+
|
| 16 |
+
Action Chunking Transformer trained on the **real** UR7e *"Put carrot in pot"* demonstrations
|
| 17 |
+
(54 GELLO-teleop takes, 30 fps) in the **EEF-delta action space** (`eef_delta_v1`). This is the
|
| 18 |
+
**10k-step checkpoint**, picked as the least-overfit of 10k..50k — all were within 0.04 mm of each
|
| 19 |
+
other on the open-loop metric.
|
| 20 |
+
|
| 21 |
+
Joint-space siblings for this task live in the sim evaluation (`sim_collect/eval`), the IFQL
|
| 22 |
+
policy in [`Bigenlight/carrot-in-pot-ifql`](https://huggingface.co/Bigenlight/carrot-in-pot-ifql).
|
| 23 |
+
|
| 24 |
+
## Observation / action space (`eef_delta_v1`)
|
| 25 |
+
- `observation.state` **16-D** = `[q1..q6 (rad, UR order), tcp_x, tcp_y, tcp_z (m, base_link),
|
| 26 |
+
r11, r21, r31, r12, r22, r32 (first two columns of the TCP rotation — continuous 6-D rep),
|
| 27 |
+
grip_pos (0=open..1=closed)]`. TCP = `ur_kin.fk(q)` (base_link→tool0) + 0.174 m along flange +Z.
|
| 28 |
+
- `action` **7-D** = `[dx, dy, dz, drx, dry, drz, grip_cmd]`: the **achieved** TCP motion between
|
| 29 |
+
consecutive 30 fps frames (`dp = p_{t+1}-p_t`, `drot = so3_log(R_{t+1} R_t^T)`, base frame,
|
| 30 |
+
rotation left-multiplied), gripper = absolute recorded command 0..1. Deploy inverts it exactly
|
| 31 |
+
(`p_target = p_live + dp`, `R_target = so3_exp(drot) R_live`, analytic IK with branch locking).
|
| 32 |
+
- Cameras: `observation.images.cam1` (scene), `cam2` (wrist), RGB 720×1280 in the dataset,
|
| 33 |
+
**resized to 360×640 at train time** (`image_transforms.resize`) — resize the same way at inference.
|
| 34 |
+
- Backbone ResNet18 (ImageNet), `chunk_size = n_action_steps = 100`, MEAN_STD normalization,
|
| 35 |
+
~51.6M params.
|
| 36 |
+
|
| 37 |
+
## Training
|
| 38 |
+
- Dataset: `carrot_in_pot_eef_lerobot_v3` — a local LeRobot v3 re-export of
|
| 39 |
+
[`Bigenlight/carrot_in_pot_lerobot_v3`](https://huggingface.co/datasets/Bigenlight/carrot_in_pot_lerobot_v3)
|
| 40 |
+
(54 episodes / 17,085 frames after dropping the stale tail; joints shifted by the recorder's
|
| 41 |
+
per-take τ≈0.90 s cache lag and linearly re-interpolated). The EEF re-export is **not yet on
|
| 42 |
+
the Hub** (train_config names it `Bigenlight/carrot_in_pot_eef_lerobot_v3`).
|
| 43 |
+
- `lerobot-train`, batch 8, seed 1000, 50k steps configured (`save_freq` 10k), `eval_split 0.111`
|
| 44 |
+
(held-out episodes 48–53), single RTX A4000 (kanu). Job `act_carrot_eef`.
|
| 45 |
+
|
| 46 |
+
## Held-out results (open-loop, episodes 48–53, k=30)
|
| 47 |
+
| checkpoint | pos MAE | grip acc | chunk-30 cumulative error |
|
| 48 |
+
|---|---|---|---|
|
| 49 |
+
| **10k (this)** | 0.82–0.86 mm (all ckpts) | 0.95 | 36.6–38.0 mm vs 65.6 mm zero-motion baseline |
|
| 50 |
+
|
| 51 |
+
All checkpoints 10k–50k are statistically indistinguishable on this metric; 10k was chosen as
|
| 52 |
+
least-overfit. lerobot's own `eval_loss` is computed on un-resized 720p and was **not** used.
|
| 53 |
+
|
| 54 |
+
## Status
|
| 55 |
+
Real-robot closed-loop evaluation: **not yet run** (the deploy path is EEF mode of
|
| 56 |
+
`gello_policy/policy_leader_node` + `eef_space.apply_delta`; the shipped ZMQ servers are
|
| 57 |
+
joint-space 7/7 and refuse this checkpoint's 16-D state). Provenance: gello_software branch
|
| 58 |
+
`feat/carrot-eef-il` (converter `scripts/dataset/convert_carrot_to_lerobot_eef.py`, validator 71/71 PASS).
|