Instructions to use IntelligentDecisionLab/xlerobot-coffee-model-sim-b-force with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use IntelligentDecisionLab/xlerobot-coffee-model-sim-b-force with LeRobot:
- Notebooks
- Google Colab
- Kaggle
| license: apache-2.0 | |
| library_name: lerobot | |
| pipeline_tag: robotics | |
| tags: | |
| - lerobot | |
| - act | |
| - robotics | |
| - so-arm101 | |
| - coffee-automata | |
| - simulation | |
| - force-aware | |
| # xlerobot-coffee-model-sim-b-force | |
| > Part of the **[Robotic-Barista-XLerobot](https://huggingface.co/collections/IntelligentDecisionLab/robotic-barista-xlerobot-6a7035e6a9c710bbbdc7f4d1)** collection — 3 dataset repos + 4 model repos for autonomous coffee service on the XLeRobot platform. | |
| **Method B — force-added, trained in simulation.** Force-aware ACT experts (architecture **A1**: | |
| HPI token, multiscale dense window, 1D-CNN encoder) for the Coffee Automata chain. | |
| **No models trained yet.** This repo holds the structure so that sim results land in a predictable | |
| place rather than in a new repo each time. | |
| One of four model repos on the domain × method grid: | |
| | | A — vision + position | B — force-added | | |
| |---|---|---| | |
| | **real** | [`…-model-real-a-vision-pos`](https://huggingface.co/IntelligentDecisionLab/xlerobot-coffee-model-real-a-vision-pos) | [`…-model-real-b-force`](https://huggingface.co/IntelligentDecisionLab/xlerobot-coffee-model-real-b-force) | | |
| | **sim** | [`…-model-sim-a-vision-pos`](https://huggingface.co/IntelligentDecisionLab/xlerobot-coffee-model-sim-a-vision-pos) | **this repo** | | |
| ## Planned contents | |
| One folder per task, each a complete `pretrained_model` directory, with a | |
| `<task>/checkpoints/<NNNNNN>/` step sweep alongside. | |
| | task | sim training data available | status | | |
| |---|---|---| | |
| | `t1_place_cup` | ✅ `xlerobot-coffee-sim/sim-robosuite-so101/t1_place_cup` — 50 ep / 10,231 fr | ⬜ not trained | | |
| | `t2_push_button` | ❌ none recorded | ⬜ blocked | | |
| | `t3_cup_to_tray` | ✅ `…/t3_cup_to_tray` — 50 ep / 19,485 fr | ⬜ not trained | | |
| | `t4_navigate` | ❌ none recorded | ⬜ blocked | | |
| | `t5_tray_to_table` | ✅ `…/t5_tray_to_table` — 50 ep / 17,567 fr | ⬜ not trained | | |
| The sim data **does** carry `observation.hpi[9]`, so unlike the real platform data it is | |
| immediately trainable for Method B. | |
| ## The reason to train here at all | |
| Simulation is the only place the force signal has ground truth. Alongside the estimated | |
| `observation.hpi`, the sim datasets carry `observation.sim_contact_force[24]` and | |
| `observation.sim_tcp_wrench[12]` — the true external torques and TCP wrench. That makes it possible | |
| to separate two questions the real data confounds: | |
| - does the *force channel* help the policy, or | |
| - does the *estimator's error* limit how much it can help? | |
| Train Method B on estimated HPI and again on ground-truth wrench; the gap is the estimator's cost. | |
| ## ⚠ Sim is not the platform | |
| The available sim data is a single **6-DoF SO-101** arm in robosuite (`robot_type: robosuite_sim`, | |
| `action[6]`, `observation.state[117]`), not the 17-DoF XLeRobot. Models trained here are comparable | |
| to the **legacy** real models, not to anything trained on `xlerobot-coffee-real`. A genuine | |
| sim→real transfer result needs the 17-DoF sim recollection reserved at | |
| `xlerobot-coffee-sim/sim-xlerobot/`. | |
| Camera keys also differ across domains — sim uses `observation.images.top`, real uses `…head`. Any | |
| cross-domain policy needs an explicit key remap. | |
| ## Architecture | |
| ACT + **Module A, variant A1**: | |
| ``` | |
| hpi_enabled hpi_window_mode=multiscale hpi_encoder=cnn1d hpi_gate=none | |
| ``` | |
| `observation.state` = 6 joint positions; `observation.hpi` = 9-D signal | |
| (`hpi/gripper/{tau_ext, q, dq}` + 6-D TCP wrench) in a dedicated token, read through a multiscale | |
| dense window and a 1D-CNN encoder. No contact gate. | |
| **Requires the `Coffee_Automata` / `hpi_act` branch code to instantiate.** Recipe will mirror the | |
| real-domain runs (ACT · `chunk_size` 100 · `n_action_steps` 100 · batch 8 · seed 1000) so the | |
| domain is the only variable. | |
| ## Loading | |
| Once populated, load through the project helper — `PreTrainedPolicy.from_pretrained` has no | |
| `subfolder` support: | |
| ```python | |
| from scripts.coffee.load_coffee_policy import load_coffee_policy | |
| policy = load_coffee_policy(domain="sim", method="b", task="t1") | |
| ``` | |
| Part of the **X-Lerobot Coffee Automata** project. AS-CITI Intelligent Decision Lab. | |