Instructions to use shng2025/quantarune-act-fsm-sc-scripted-insert with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use shng2025/quantarune-act-fsm-sc-scripted-insert with LeRobot:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Training report: docs/aic-act-training-wandb-report.pdf (Weights & Biases, finished ACT runs).
We found that our best version of cable insertion for the SC port (as part of Intrinsic's AI for Industry challenge) was actually when we used Action Chunking Transformers to do the approach and initial alignment with the plug port. The rest of the work is done by a scripted insert, taking inspiration from our idea of viewing the cable insertion process as a finite state machihine that can transition between Align, Retry (recentre, lift up) and guarded insert states.
Quantarune ACT-FSM: SC scripted insert (v1)
quantarune-act-fsm-sc-scripted-insert/ 2.7G
βββ README.md
βββ policy_env.txt runtime env of a full-insertion take
βββ policy/aic_example_policies/ros/ 252K policy code (v1 snapshot + parents)
βββ checkpoints/ 790M 4 stage ACT models, step 10000
β βββ approach/
β βββ align/
β βββ guarded_insert/
β βββ retry_or_finish/
βββ training/ 252K stage dataset build + training scripts
β βββ quantarune_training/
β βββ quantarune_teleop/
βββ results/ 1.9G
β βββ trials.csv 37 trials: batch, setting, score
β βββ runs/<run>/ scoring.yaml, policy_env.txt, bag
βββ docs/technique.md 20K full write-up
This repo holds the best SC cable insertion result of Project Automaton so far. It is part of the 2026 Intrinsic AI for Industry Challenge in Gazebo. A four-stage ACT finite state machine brings the SC plug to the port lip. A scripted wiggle-descent then pushes the plug into the seat. Ground truth is off in every trial here. Code, weights, results and the write-up are all in this one repo.
How it works
RunACTStagedScriptedInsert subclasses RunACTStaged, which wraps four ACT checkpoints in an FSM. The stages are APPROACH, ALIGN, GUARDED_INSERT and RETRY_OR_FINISH. When the guarded insert gives up, the scripted finish takes over from the current pose. It descends at 4 mm/s at 400 N/m with a small circular wiggle. It reads no port pose. docs/technique.md gives the full pipeline and the failure analysis.
Known limits
The policy stops when it sees /scoring/insertion_event from the scorer. We have not yet confirmed that this signal is legal in the official evaluation. The v1 finish also has a known bug with stiffness. It sets the stiffness to 400 N/m and never resets it. The engine reuses one policy object across trials, so trial 2 of a multi-trial run would approach at 400 N/m. Every trial here ran in its own single-trial run, and the next version fixes this bug.
How to run it
Put policy/aic_example_policies on PYTHONPATH next to the AIC toolkit packages. Load the policy as aic_example_policies.ros.RunACTStagedScriptedInsert. Set the variables in policy_env.txt and point the four checkpoint paths at checkpoints/<stage>/. RunACT.py keeps the Apache 2.0 header of Intrinsic Innovation LLC from the toolkit example. The training datasets are not in this repo yet, and they will follow later.
