TRONCamp Mani: RoboTwin ACT Post-Competition Review
This is a public review of a real competition project. It is not a “secret to high scores,” nor does it present failed online results as success stories. The content covers data construction, ACT training, closed loop evaluation, GPU/environment migration, submission packaging, online results, and the final reasons for failure. The goal is to help future participants avoid unnecessary detours.
Results first
The T1, T2, and T3 sequential thresholds for this team have all been passed. T4 is the only scoring task, but the final online T4 grade is 0.2533333333333333 (25.3/100), failing to meet the expected threshold.
There is only one valid online task after processing: the first version submission with the correct account suffix a40Cbw, and the official receipt is #719 T4. The second version, exact550 e2000, was rejected by the server 403 after the deadline; it did not enter the queue, and there was no second score.
The most important conclusion of this result is not that “running more epochs will definitely improve things,” but rather:
- A small number of successful public seeds cannot replace a complete, stable, and fully online evaluation.
- A decrease in training loss, the ability to load checkpoints, and the completion of the evaluation do not directly equate to the passage of T4.
- Training maturity, data coverage, action timing alignment, evaluation process topology, submission package boundaries, and the official environment must be evaluated as a whole.
- Before the competition deadline, a minimum submitable candidate that has passed T1/T2/T3 should be preserved, while formal evaluation evidence that can be rolled back for T4 should also be kept.
Project Structure
text15-Challenge竞赛/TRONCamp-Mani/
├── README.md # 总览、结果、快速复现路线
├── docs/
│ ├── 01_完整工程复盘.md # 从数据到提交的时间线
│ ├── 02_问题清单与解决方案.md # 失败模式、根因和修复
│ ├── 03_评测协议与模型选择.md # 官方口径、门禁和证据边界
│ └── 04_提交与开源检查清单.md # 提交包、脱敏和发布流程
├── configs/
│ ├── t4_official_act.yaml # 脱敏后的主线配置
│ └── t4_exact550_manifest.json # 数据集身份摘要,不含数据
├── code/
│ ├── audit_processed_t4.py # 16-D / 相机 / 对齐严格审计
│ ├── build_public_manifest.py # 公开目录 SHA256 清单
│ └── scan_public_release.sh # 发布前敏感文件与大文件扫描
└── results/
├── final_score.json # 最终线上结果摘要
├── experiment_ledger.csv # 关键候选与门禁记录
└── failure_taxonomy.md # 按阶段归类的失败模式
Tasks and Official Boundaries
TRONCamp Mani uses RoboTwin / Tron2 dual-arm manipulation tasks. The task chain is:
| Track | Task | Online Function |
|---|---|---|
| T1 | adjust_bottle |
Sequential unlocking threshold |
| T2 | grab_roller |
Sequential unlocking threshold |
| T3 | stack_bowls_two |
Sequential unlocking threshold |
| T4 | stack_bowls_three |
Main ranking scoring, three-level end states classification |
The T4 score is determined by the final stacking layer count, with each layer accounting for about one-third. The online private seed, official simulator, success predicate, and actual threshold are determined by the organizer’s backend. The public seed can only be used for local filtering and cannot serve as a guarantee for the private ranking list.
Official materials:
Recommended reproduction path
The public repository does not contain official Tron2 proprietary assets and big data. After preparing the officially authorized RoboTwin/Tron2 workspace, reproduce it in the following order:
1. First, set up the environment access control
Ensure that the versions of Python, PyTorch/CUDA, SAPIEN, MPlib, cuRobo, ffmpeg, and the official ACT code are consistent. Do not try to improve the results by changing the action bridge, TCP, camera order, success predicate, or simulator parameters first.
2. Audit the data first, then process ACT data
Each HDF5 trajectory must meet the following requirements:
- The actions and
qposare all finite values; - The action dimension is 16, with 7-D for each of the left and right arms;
- The three-channel cameras
cam_high,cam_left_wrist, andcam_right_wristare available, and the frame rates are consistent; - The dataset file collection is exactly the same as the manifest;
- If next-state semantics are used,
action[t] == qpos[t+1]is verified frame by frame; - The source, collection configuration, expert profile, and whether rescue is applied for each layout can be traced.
code/audit_processed_t4.py provides a strict audit script that does not rely on project paths. It only outputs summaries and the SHA of each trajectory, without automatically repairing the data.
3. Use the official ACT as a baseline
For the main line configuration summary, please refer to [configs/t4_official_act.yaml). The important parameters are: ResNet18, 4-layer encoder, 7-layer decoder, hidden size of 512, FFN 3200, 8 heads, chunk size of 50, KL weight of 10, batch size of 8, learning rate and backbone learning rate both being 1e-5, seed value of 120, action shift of 0, and gripper loss weight of 1.
During training, save: code SHA, original manifest SHA, processing audit SHA, stats SHA, checkpoint SHA, full epoch, training/validation loss, time per epoch, GPU model, and memory usage. Do not save only a “best” file name without saving its lineage.
4. Testing should be categorized
Suggested fixation:
textfresh3 -> 逐条核查层数 / 阶段 / 完整三碗 success
fresh10 -> 仅在 fresh3 通过预设门槛后运行
fresh20 -> 仅在 fresh10 重复稳定后运行
full/public -> 用固定 seed、固定 wrapper、固定进程拓扑
online -> 使用官方上传包和官方私有评测结果
The results of the ordinary runner, trace/monkey-patch runner, cold process, and persistent process cannot be combined into a “best performance”. The diagnostic script can help identify the phase, but it cannot replace the formal evaluation criteria.
5. Conduct package boundary inspection before submission
When uploading T2/T3/T4 code, the root submission should be the smallest external/robotwin_local image, rather than the entire project root directory, original data directory, or experiment log directory. The code package should not contain soft links, hard links, wandb execution directories, caches, additional dependencies, or unused backup files. The checkpoint package should only contain policy_last.ckpt and dataset_stats.pkl in the same directory.
code/build_public_manifest.py is used only for the traceable list in public materials; formal online submissions should still use the official submit/submit.py and official preflight.
Public and Non-public Content
Public
- Data audit rules, training configurations, evaluation protocols, and submission package inspection methods;
- Masked experimental tables and online results;
- Failure modes, causes, repair actions, and cases where “repairs” lack evidence;
- Public materials scanning and SHA256 list scripts that can run independently;
- Directory and verification conventions to be followed when uploading to Hugging Face later.
Not directly added to Git
- 550 original/processed HDF5 and other large-scale data files;
- ACT checkpoint, stats, submitted zip files, and large video files;
- Tron2 proprietary robot meshes, URDF/MJCF, and official internal assets;
- Private server IPs, ports, PID/PGID, disk snapshots, and personal paths;
- Access tokens, SSH private keys, cloud platform credentials, and browser sessions;
- Personal information, internal URLs, or token fragments that may be included in the original operation logs.
If a redistribution license is confirmed later, large files should be placed in the Datawhale Hugging Face repository for independent models/dataset datasets, and the README in this directory should include the public URL, version, file list, and SHA256. GitHub should retain only the lightweight code and documentation.
License Instructions
The new documentation and general audit scripts in this directory are licensed under the CC BY 4.0 license of the Every Embodied repository. The original official RoboTwin, LimX Tron2, cuRobo, and other third-party content are still subject to their respective licenses; this directory does not re-license the official proprietary assets, nor does it imply that the organizers endorse these materials.