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.
This policy has been trained and pushed to the Hub using LeRobot.
See the full documentation at LeRobot Docs.
How to Get Started with the Model
For a complete walkthrough, see the training guide.
Below is the short version on how to train and run inference/eval:
Prefix the dataset repo with eval_ and supply --policy.path pointing to a local or hub checkpoint.
"""python
#!/usr/bin/env python3
"""
Tic-Tac-Toe Vision Analyzer for SO-101 Arm
Press SPACEBAR to capture a frame from /dev/video0 and send it to
GPT-5.2 for tic-tac-toe board analysis. The model returns the best
next move for the SO-101 arm (playing as X or O).
── System prompt ──────────────────────────────────────────────────
SYSTEM_PROMPT = """
You are a tic-tac-toe analysis assistant for a VLA-trained SO-101 robotic arm.
When you receive an image of a tic-tac-toe board:
Read the board – Identify every cell (3x3 grid). Label columns
left-to-right as A, B, C and rows top-to-bottom as 1, 2, 3.
Report each cell as X, O, or empty.
Determine whose turn it is – Count Xs and Os.
If counts are equal it is X's turn; otherwise O's turn.
Find the optimal move – Use minimax reasoning:
Prioritise: win now > block opponent win > fork > centre > corner > edge.
Return a structured response with:
The current board state (text grid).
Whose turn it is.
The best move (cell label, e.g. B2).
A brief explanation of why this move is best.
Physical guidance: describe the approximate board region
(top-left, centre, bottom-right, etc.) so the SO-101 arm
can position itself over the correct cell.
"""
SYSTEM_PROMPT = "What do you see?"
def encode_frame(frame):
"""JPEG-encode an OpenCV frame and return a base64 string."""
ok, buf = cv2.imencode(".jpg", frame, [cv2.IMWRITE_JPEG_QUALITY, 90])
if not ok:
raise RuntimeError("Failed to encode frame")
return base64.standard_b64encode(buf).decode("utf-8")
"""
"Analyze this tic-tac-toe board image. "
"Determine the current state and recommend "
"the best next move for the SO-101 arm."
"""
def analyze_board(frame):
"""Send a captured frame to GPT-5.2 and print the analysis."""
b64_image = encode_frame(frame)