A custom Go stone manipulation task built on RoboTwin 2.0, using the ALOHA dual-arm robot to pick up Go stones and place them on a 5x5 board.
The robot picks a Go stone from a source tray and places it at a target intersection on the board. Each episode varies:
- Board position/rotation -- small random shifts and rotations
- Stone color -- black or white
- Target intersection -- any legal position on the 5x5 grid
- Opening stones -- 0-8 pre-placed stones on the board
The task uses OpenSpiel for legal move validation.
See SETUP_REMOTE.md for environment installation on a remote GPU machine (vast.ai).
See SETUP_MOTUS.md for Motus VLA training and evaluation.
# Collect 500 clean demos (no domain randomization)
bash collect_data.sh go_stone_placement go_stone_clean 0
# Collect 200 randomized demos (background, lighting, table height)
bash collect_data.sh go_stone_placement go_stone_placement 0python scripts/convert_to_motus.py \
--input data/go_stone_placement/go_stone_clean \
--output data/motus/ --subset clean --task go_stone_placement| File | Description |
|---|---|
envs/go_stone_placement.py |
Task environment (board, stones, scripted controller) |
task_config/go_stone_clean.yml |
Clean config (no randomization, 500 episodes) |
task_config/go_stone_placement.yml |
Randomized config (200 episodes) |
description/task_instruction/go_stone_placement.json |
Language instruction templates for eval |
This is a fork of RoboTwin 2.0 by Chen et al. (CVPR 2025 Highlight).
