Dimios45/act_tactile_charger_50ep
acttactilecharger_50ep
ACT policy — vision + tactile — trained on 50 episodes.
Task: grab and remove the charger from the socket and put it in the black box
Trained with LeFlexiTac, a LeRobot fork adding FlexiTac tactile sensing. Docs: <https://tna001-ai.github.io/LeFlexiTac/docs.html>
Training data
Configuration
Every model in this series is epoch-matched at ~114.4 epochs, so dataset size and sensor modality are the only variables across the set.
Training command actually used
Run on 1× AMD Instinct MI300X (ROCm 6.2.4). HIP_VISIBLE_DEVICES selected the GPU, so --policy.device=cuda refers to that single card.
Initial run:
python -u -m lerobot.scripts.lerobot_train \
--dataset.repo_id=aryankakad/tactile_charger_inserting \
--policy.type=act --policy.use_tactile=true \
--policy.tactile_features='["observation.tactile.primary"]' \
--policy.n_tactile_tokens=4 \
--policy.repo_id=Dimios45/act_tactile_charger_50ep \
--policy.private=true --policy.device=cuda \
--output_dir=outputs/train/E_act_tactile_50ep --job_name=E_act_tactile_50ep \
--batch_size=32 --num_workers=8 --steps=100000 --save_freq=20000 --wandb.enable=trueResumed (the first run was interrupted; resumed from its last checkpoint):
python -u -m lerobot.scripts.lerobot_train \
--config_path=outputs/train/E_act_tactile_50ep/checkpoints/last/pretrained_model/train_config.json \
--resume=trueEvaluation / rollout
Not run here — this machine has no robot attached. To evaluate, run on the machine with the SO-100 and sensors, loading the policy with --policy.path=Dimios45/act_tactile_charger_50ep.
Reference: the lerobot-record eval invocations in `tactile_cmd.txt` and the project docs. You will need to supply your own robot port, camera serials, and a primary tactile sensor entry matching training.
Notes
- Two ROCm-specific fixes were required in the fork:
persistent_workers=Trueon the dataloader (epoch boundaries otherwise stalled ~410 s each), and keepingcudnn.benchmarkoff (on ROCm it triggers an exhaustive MIOpen search that can precede step 1 by hours). - Training loss is not a proxy for task success. Compare policies by rollout success rate, especially on contact-rich phases.
- The source dataset's task string is labelled
stack cup— a mislabel carried over from an earlier session. It does not affect ACT, which is not language-conditioned.
