File size: 8,078 Bytes
17b4294
 
3cc8546
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17b4294
3cc8546
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bef0906
3cc8546
bef0906
3cc8546
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
---
license: gemma
library_name: transformers
base_model:
- Dexmal/DM05
datasets:
- Dexmal/robotwin2-full
tags:
- robotics
- robot-control
- vision-language-action
- vla
- dm05
- dm0.5
- robotwin
- robotwin2
- opendm
---

# DM05-robotwin2

![DM0.5](https://raw.githubusercontent.com/dexmal/opendm/main/docs/image/header.png)

<p align="center">
  <a href="https://www.dexmal.com/blog/dm0.5/index_en.html"><img src="https://img.shields.io/badge/๐Ÿ“–-Tech_Blog-blue" alt="Tech Blog"></a>
  <a href="https://github.com/dexmal/opendm"><img src="https://img.shields.io/badge/GitHub-OpenDM-181717?logo=github" alt="GitHub"></a>
  <a href="https://huggingface.co/datasets/Dexmal/robotwin2-full"><img src="https://img.shields.io/badge/Dataset-RoboTwin_2.0-0EA5E9?logo=huggingface" alt="RoboTwin 2.0 Dataset"></a>
  <a href="https://maas.dexmal.com/"><img src="https://img.shields.io/badge/MaaS-Online-brightgreen.svg" alt="MaaS"></a>
</p>


## Introduction

DM05-robotwin2 is the RoboTwin 2.0 fine-tuned generalist checkpoint of DM0.5, Dexmal's open-world Vision-Language-Action foundation model for embodied intelligence. DM0.5 uses a Gemma3 4B vision-language backbone with a 680M Action Expert to generate continuous robot actions, and is designed for natural-language manipulation, zero-shot generalization, efficient downstream fine-tuning, long-horizon historical context, robust policy behavior, and transfer across robot embodiments.

This checkpoint controls the ALOHA bimanual embodiment using three RGB camera views and generates 14-dimensional joint-position action chunks.

#### RoboTwin 2.0 Results

| Method | Clean | Randomized | Average |
| --- | ---: | ---: | ---: |
| DM0.5 | 93.6 | 93.3 | 93.5 |

## Quick Start

We recommend using Docker to set up the runtime environment first, which helps avoid version mismatches across CUDA, PyTorch, flash-attn, and other dependencies on the host machine.

### Requirements

```text
System requirements:
Ubuntu 20.04 / 22.04
NVIDIA GPU
NVIDIA Driver
Docker
NVIDIA Container Toolkit
Conda (optional, only required for local pip installation)

Recommended GPUs:
A100, H100, H20
32 GPUs are recommended for training, and 1 GPU is sufficient for deployment inference.
```

### Docker Installation

```bash
git clone https://github.com/dexmal/opendm.git
cd opendm

docker run -it --rm --gpus all --network host \
  --name opendm \
  --shm-size=16g \
  -v "$PWD":/app/opendm \
  -w /app/opendm \
  dexmal/opendm:latest /bin/bash

# Run from the OpenDM repository root inside the container.
conda activate opendm
pip install -e .
```

### Local Installation

```bash
conda create -n opendm python=3.10 -y
conda activate opendm

pip install torch torchvision \
  --index-url https://download.pytorch.org/whl/cu128

pip install ninja packaging
MAX_JOBS=2 pip install flash-attn --no-build-isolation

# Enter the OpenDM repository root.
cd opendm
pip install -e .
```

## RoboTwin 2.0 Testing

Use the RoboTwin 2.0-specific experiment configuration when evaluating this
checkpoint. The inference service and benchmark client run separately and
communicate over HTTP. When possible, use one GPU for the inference service and
another for benchmark evaluation.

For the complete data preparation, training, inference, and evaluation
workflow, see the
[DM05 RoboTwin 2.0 Training and Evaluation Guide](https://github.com/dexmal/opendm/blob/main/docs/en/dm05_robotwin2.md).

### Start the RoboTwin 2.0 Inference Service

Run this command from the OpenDM repository root. The checkpoint must contain
the matching `norm_stats.json`.

```bash
script/dm05_launcher.sh \
  --exp playground/dm05_robotwin2.py \
  --task inference \
  --nproc_per_node 1 \
  --model-config.model-name-or-path ./checkpoints/DM05-robotwin2-bf16 \
  --model-config.chunk-size 50 \
  --inference-config.output-action-dim 14 \
  --inference-config.image-keys images_1 images_2 images_3 \
  --inference-config.port 7891
```

Keep the service running while executing the benchmark.

### Prepare the Benchmark Client

```bash
git clone https://github.com/dexmal/dexbotic-benchmark.git
cd dexbotic-benchmark
git submodule update --init --recursive RoboTwin
docker pull dexmal/dexbotic_benchmark
```

RoboTwin 2.0 also requires its assets, object-data texture library, and
embodiment files. Follow the [RoboTwin installation guide](https://robotwin-platform.github.io/doc/usage/robotwin-install.html#4-download-assets-robotwin-od-texture-library-and-embodiments)
to download them before starting evaluation.

Edit `evaluation/configs/robotwin2/adjust_bottle.yaml` so that `base_url`
points to the inference service:

```yaml
# Basic experiment configuration (keep unchanged)
policy_name: dexbotic
task_name: adjust_bottle
task_config: demo_clean
ckpt_setting: dexbotic
seed: 0
instruction_type: seen

# Add Parameters You Need
base_url: http://localhost:7891
output_dir: ./result_test/robotwin2_evaluation
cameras: "head_camera_rgb,left_camera_rgb,right_camera_rgb"
action_horizon: 50
action_mode: absolute
```

Important configuration fields:

- `task_name`: one of the 50 RoboTwin 2.0 tasks. Each task is evaluated
  independently.
- `task_config`: use `demo_clean` for the Clean setting and `demo_randomized`
  for the Randomized setting.
- `base_url`: address of the running DM0.5 inference service. For a remote
  service, use `http://<SERVER_IP>:7891`.
- `cameras`: keep the head, left-wrist, and right-wrist camera order so it
  matches `images_1`, `images_2`, and `images_3` on the inference service.
- `action_horizon`: number of actions executed per model request. It must match
  the model chunk size of 50.
- `output_dir`: root directory for success-rate files and rollout videos.
- `action_mode`: `absolute` for absolute joint positions, `relative` for relative joint positions

The benchmark evaluates 100 episodes for the selected task and setting. To
reproduce the aggregate Clean and Randomized scores, evaluate all 50 tasks
under both settings and average their success rates.

### Run the RoboTwin 2.0 Benchmark

From the `dexbotic-benchmark` repository root, set `ROBOTWIN_ASSETS` to the
absolute path of the downloaded assets and run:

```bash
ROBOTWIN_ASSETS=/absolute/path/to/robotwin/assets

docker run --rm --gpus all --network host \
  -v "$ROBOTWIN_ASSETS":"$ROBOTWIN_ASSETS" \
  -v "$ROBOTWIN_ASSETS":/app/assets \
  -v "$ROBOTWIN_ASSETS":/app/RoboTwin/assets \
  -v "$PWD/evaluation":/app/evaluation \
  -v "$PWD/scripts":/app/scripts \
  -v "$PWD/result_temp":/app/result_temp \
  -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics \
  dexmal/dexbotic_benchmark \
  bash scripts/env_sh/robotwin2.sh \
  evaluation/configs/robotwin2/adjust_bottle.yaml
```

Evaluation artifacts are written under the configured `output_dir`, grouped by
task, setting, and timestamp:

```text
<output_dir>/<task_name>/<task_config>/<timestamp>/
โ”œโ”€โ”€ _result.txt
โ””โ”€โ”€ *.mp4
```

`_result.txt` contains the success rate for the selected task and setting. When
video logging is enabled by the RoboTwin task configuration, rollout videos are
saved in the same timestamp directory.

## Community and Support

- Learn more about Dexmal products and model updates on the [Dexmal website](https://www.dexmal.com/).
- If you encounter issues, please report them through [GitHub Issues](https://github.com/dexmal/opendm/issues).
- For further discussion, scan the [WeChat QR code](https://raw.githubusercontent.com/dexmal/opendm/main/docs/image/wechat.jpeg) to contact us.

We will continue to release more model weights, technical documentation, and examples. If this project is helpful to you, please consider giving us a star on GitHub [![GitHub](https://img.shields.io/github/stars/dexmal/opendm?color=5B5BD6)](https://github.com/dexmal/opendm). Your support helps us move forward.

## Citation

```bibtex
@misc{dm05,
    title  = {{DM0.5}: An Open-World Foundation Model for General-Purpose Embodied Intelligence},
    author = {{Dexmal Team}},
    month  = {July},
    year   = {2026},
    url    = {https://www.dexmal.com/blog/dm0.5/index_en.html}
}
```