Action Chunking with Transformers (ACT) is an imitation-learning method that predicts short action chunks instead of single steps. It learns from teleoperated data and often achieves high success rates.
Demonstration Purpose:
We train an ACT model to put a small red cube into a grey container of size 70x70x70.
We use two cameras
One front facing camera of type Seeed Studio X10 USB wired camera.
One Gripper camera of type Arducam 1080p Low Light
Dataset is captured at frame size of 640x480
The grey container is placed in a fixed position to the right of the SO-101 arm.
We place the red cube into 6 discrete positions, all to the left of the SO_101 arm
The base of the arm has to rotate approximately 0-30 degrees counterclockwise to cover all the positions.
We record 10 episodes from each of the 6 discrete positions. The image below shows a picking position, we also marked all the 6 picking positions with a crayon on the table.
- We trained the model during 20000 training episodes.
Results
We test how well the model performs on the trained 6 discrete positions first and we see that 5 out of the 6 training positions work really well.
We tested the policy on the predefined positions, 5 out of the 6 positions work well, the sixth failed.
We also tried 2-3 picks in untrained positions but in the range covered by the pretrained points. We note that generalization is poor. Sometimes it works sometimes it doesn't.
The first two videos show a succsefull pick in two positions, the last video shows a pick that initially was unsuccesfull but the robot policy recovered gracefully.
Position 1 - Succesfull Atttempt
Position 2 - Succesfull Attempt
Position 3 - Policy succesfully recovered from failed attempt
This policy has been trained and pushed to the Hub using LeRobot.
Replace the remaining <...> placeholders with your own values: --robot.port and the camera names/indices are specific to your machine, and the camera names must match the observation keys this policy was trained on.
When --strategy.type=base is used the script doesn't record the episodes. Skipping duration will make the policy run indefinitely. For more information look at rollout documentation.
Writes checkpoints to outputs/train/<policy_repo_id>/checkpoints/.
Evaluation
We noticed that it is very important to check the cameras before inferencing. The arducam 1080p low light suffered from overexposure. If this happened, we used guvcview to reset the camera to a usable setting before we started inferencing.
Task
Trials
Successes
Success rate
put the red cube into the grey container position 1
1
1
100%
put the red cube into the grey container position 2
1
0
0%
put the red cube into the grey container position 3
1
1
100%
put the red cube into the grey container position 4
1
1
100%
put the red cube into the grey container position 5
1
1
100%
put the red cube into the grey container position 6
1
1
100%
Total
6
5
83%
No evaluation results have been provided for this policy yet.
Citation
If you use this policy, please cite the method linked in the description above, along with LeRobot:
bibtex
1@misc{cadene2024lerobot,
2 author = {Cadene, Remi and Alibert, Simon and Soare, Alexander and Gallouedec, Quentin and Zouitine, Adil and Palma, Steven and Kooijmans, Pepijn and Aractingi, Michel and Shukor, Mustafa and Aubakirova, Dana and Russi, Martino and Capuano, Francesco and Pascal, Caroline and Choghari, Jade and Moss, Jess and Wolf, Thomas},
3 title = {LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch},
4 howpublished = "\url{https://github.com/huggingface/lerobot}",
5 year = {2024}
6}