English | 简体中文

[2026 年 6 月 29 日] 我们新增 G0.5 RoboTwin 2.0 评测支持,包括评测入口和 g05-robotwin20 权重。更多仿真 benchmark 的评测功能将很快更新。
[2026 年 6 月 17 日] 我们提供了 G0.5 在 so-100/101 本体上零样本推理部署的 g05-so101 权重。
[2026 年 6 月 16 日] 我们提供了 G0.5 模型在 R1 Lite 和 DROID 本体上的零样本推理部署入口,并提供 LIBERO 仿真评测入口和 R1 Lite/R1 Pro 后训练微调支持。
[2026 年 6 月 1 日] 我们发布 G0.5,这是最新的自回归 VLA 模型,具备领先性能。请查看项目主页。
[2026 年 2 月 12 日] 更新了在更大规模遥操作和网页数据上训练的 G0Plus 预训练权重。发布 G0Tiny(250M,SmolVLM2 骨干网络),用于 R1 Pro Orin 边缘部署。新增开箱即用的演示任务:Fold Towels 和 Handover Gift(通过 TensorRT 在设备端运行 G0Tiny 推理,最高 10 Hz)。新增基于 openpi 的 pi0/pi0fast 微调支持。
[2026 年 1 月 4 日] 我们发布 G0Plus,这是最新的预训练 VLA 模型,面向多任务机器人操作。
[2025 年 10 月 7 日] Galaxea 开放世界数据集现已以 LeRobot 格式发布在 Hugging Face!
[2025 年 9 月 17 日] 发布 G0-VLA 微调和真实机器人推理代码。
[2025 年 9 月 9 日] 在 Hugging Face 和 ModelScope 发布 G0-VLA 预训练模型权重!
[2025 年 9 月 9 日] 在 Hugging Face 和 ModelScope 发布 Galaxea 开放世界数据集!
G0.5 是 Galaxea 面向通用机器人控制的预训练自回归视觉-语言-动作模型。G0.5 没有仅把 VLM 用作独立动作专家的视觉语言编码器,而是保留 VLM 作为执行器:单个 transformer decoder 在统一的自回归流中生成推理 token 和动作 token,并使用同一个 next-token prediction 目标。
G0.5 技术报告中的核心思路:
动作 token 被解码为连续机器人控制,以 chunk 形式执行,并基于新的观测进行闭环重规划。
跨本体 ActionCodec
left_control(9) | left_gripper(1) | right_control(9) | right_gripper(1) | lower_body(7)。动作生成时只输出活跃运动组,避免为空闲自由度生成不必要的 padding。
面向控制的原生 chain-of-thought
Subtask、BBox、Trace 和 ActionHint 字段,用于任务分解、目标定位、二维夹爪轨迹和帧级运动提示。这种设计提升了 grounding 和长时程执行能力,因为生成出的推理会直接被后续动作 token 看到。
视觉记忆
历史 token 会在最后一层被丢弃,以保持推理延迟有界。
预训练与评测

G0.5 Tokenizer

G0.5 Token Sequence Template
本节保留早期 GalaxeaVLA 版本中的 G0Plus 概览,方便追溯项目历史。G0Plus 和 G0Tiny 属于旧版 G0/G0Plus 发布线;当前分支的主要内容已经切换到 G0.5,不再包含旧版 G0Plus Dockerfile、Fold Towels/Handover Gift 演示指南或 pi0/pi0fast 训练配置。如需复现旧版 README 和文件布局,请查看 commit 13a16a9。历史权重仍位于 G0-VLA Hugging Face 仓库,包括:
更多数据集格式和示例细节见这里。
要运行本仓库中的 G0.5 预训练模型,需要至少满足以下规格的 NVIDIA GPU。这些估算基于单 GPU。
通过 scripts/run/finetune.sh 启动的多 GPU 微调默认使用 torchrun 分布式数据并行。它可以提升吞吐,但每张 GPU 都会保留完整模型副本,因此不应描述为模型并行,也不会降低单卡模型显存。多机运行由 WORLD_SIZE、RANK、MASTER_ADDR 和 MASTER_PORT 等环境变量控制。
| 模式 | 显存要求 | 示例 GPU |
|---|---|---|
| 推理 | > 8 GB | RTX 3090 / RTX 4090(推荐) |
| 全量微调 | > 70 GB | A100 (80GB) / H20 (96GB) |
已测试环境:
>=3.10.16,<3.11cu128 wheelflash-attn-4、flash-linear-attention 等原生 CUDA 扩展;请确保 CUDA runtime、编译工具链和 PyTorch 构建匹配ffmpeggit clone https://github.com/OpenGalaxea/GalaxeaVLA
cd GalaxeaVLA
# 运行环境
uv sync --index-strategy unsafe-best-match
# 如需开发和测试依赖,改用
uv sync --extra dev --index-strategy unsafe-best-match
source .venv/bin/activate
安装前请注意:
bash
export UV_DEFAULT_INDEX=https://mirrors.aliyun.com/pypi/simple/
export UV_PYTHON_INSTALL_MIRROR=https://gh-proxy.com/https://github.com/astral-sh/python-build-standalone/releases/download请将 Hugging Face 仓库下载到 checkpoints/,保持本地路径与当前配置一致:
huggingface-cli download OpenGalaxea/G05 \
--repo-type model \
--local-dir checkpoints \
--local-dir-use-symlinks False
下载后的期望目录结构:
checkpoints/
├── action_tokenizer.pt
├── qwen3_5_2b_base_processor/
├── g05-base/
│ ├── .hydra/config.yaml
│ ├── checkpoints/model_state_dict.pt
│ └── dataset_stats.json
├── g05-so101/
│ ├── .hydra/config.yaml
│ ├── checkpoints/model_state_dict.pt
│ └── dataset_stats.json
├── g05-droid/
│ ├── .hydra/config.yaml
│ ├── checkpoints/model_state_dict.pt
│ └── dataset_stats.json
├── g05-libero/
│ ├── .hydra/config.yaml
│ ├── model.pt
│ └── dataset_stats.json
└── g05-robotwin20/
├── .hydra/config.yaml
├── checkpoints/model_state_dict.pt
└── dataset_stats.json
包含 RoboTwin checkpoint 时,完整权重约 55 GB。每个 G0.5 模型检查点约 11 GB,共享的 action_tokenizer.pt 约 484 MB,qwen3_5_2b_base_processor/ 约 22 MB。
| 模型 | 用途 | 本地 --ckpt_path |
|---|---|---|
| G05-base | 微调和 R1 Lite 零样本部署 | checkpoints/g05-base/checkpoints/model_state_dict.pt |
| G05-so101 | SO-100/101 零样本部署 | checkpoints/g05-so101/checkpoints/model_state_dict.pt |
| G05-droid | DROID 零样本部署 | checkpoints/g05-droid/checkpoints/model_state_dict.pt |
| G05-libero | LIBERO 评测 | checkpoints/g05-libero/model.pt |
| G05-robotwin20 | RoboTwin 2.0 评测 | checkpoints/g05-robotwin20/checkpoints/model_state_dict.pt |
请保留每个 checkpoint 旁边的 .hydra/config.yaml 和 dataset_stats.json。推理和评测入口会从 checkpoint 父目录向上解析 dataset_stats.json,配置默认使用 checkpoints/qwen3_5_2b_base_processor 作为共享 processor,并使用 checkpoints/action_tokenizer.pt 作为共享 action tokenizer。
LIBERO 导出的配置会引用 bundle 内部 sidecar。下面的 eval_libero.sh 命令依赖这些路径。如果下载工具没有生成这些文件,请创建软链接:
ln -sf ../action_tokenizer.pt checkpoints/g05-libero/action_tokenizer.pt
ln -sfn ../qwen3_5_2b_base_processor checkpoints/g05-libero/hf_processor
真实机器人部署采用服务端/客户端架构。GPU 机器运行本仓库中的 G0.5 策略服务端,机器人端客户端采集原始观测,通过 WebSocket + msgpack 发送观测,接收 action chunk 并执行。
在 GPU 机器上启动策略服务端:
python scripts/serve_policy.py \
--ckpt_path checkpoints/g05-base/checkpoints/model_state_dict.pt \
--host 0.0.0.0 \
--port 8080 \
--device cuda \
--action_steps 16 \
eval_embodiment=galaxea_r1lite
在 experiments/r1lite/config.toml 中设置服务端地址后,在机器人机器上启动 R1 Lite 客户端:
source /opt/ros/humble/setup.bash
source .venv/bin/activate
cd experiments/r1lite
python run.py --config config.toml
ROS2 话题、客户端/服务端协议、指令文件、录制和测试细节见 experiments/r1lite/README.md。
SO-100/101 部署使用同一个 G0.5 策略服务端,并搭配轻量级 LeRobot 客户端。先在 GPU 机器上启动策略服务端:
bash experiments/so100/start_server.sh checkpoints/g05-so101/checkpoints/model_state_dict.pt
然后在另一个终端或机器人机器上配置并启动客户端:
conda env create -f experiments/so100/environment.yml
conda activate lerobot
bash experiments/so100/start_client.sh
运行客户端前,请在 experiments/so100/start_client.sh 中更新相机索引和 camera-slot 映射。详见 experiments/so100/README.md。
DROID 部署由本仓库提供 G0.5 策略服务,并使用独立的 OpenGalaxea/droid-franka-client 仓库控制机器人。先在 GPU 机器上启动策略服务端:
CHECKPOINT_DIR=checkpoints/g05-droid \
POLICY_PORT=8000 \
POLICY_DEVICE=cuda:0 \
bash experiments/droid/start_server.sh \
model.model_arch.discrete_action=true model.model_arch.continuous_action=false
然后克隆并配置机器人端客户端:
git clone git@github.com:OpenGalaxea/droid-franka-client.git
完整设置和协议约定见 experiments/droid/README.md 与 experiments/droid/PROTOCOL.md。
LIBERO 评测同样使用服务端/客户端设置。这个命令会在后台启动批处理策略服务端,为每个 LIBERO suite 启动一个并行客户端,并在评测结束后停止服务端。
bash scripts/run/eval_libero.sh checkpoints/g05-libero/model.pt \
--num_trials 50 \
--num_parallel 10 \
--save_videos
默认情况下,脚本会评测 libero_goal、libero_spatial、libero_object 和 libero_10,然后把每个 suite 的日志和 summary.json 写入 outputs/libero_eval_<checkpoint_name>/。使用 --suites "libero_goal libero_10" 可以只运行子集;需要时也可以追加 Hydra 风格的 override,例如 model.model_arch.discrete_action=false。
LIBERO 安装说明、生成的路径配置、输出布局和单 suite 调试命令见 experiments/libero/README.md。
RoboTwin 评测运行在 RoboTwin 仿真器中,需要额外的仿真依赖和 assets。它使用单独的 .venv-robotwin 环境,避免仿真器所需的 sapien 3.x 覆盖主仓库环境。请按照 experiments/robotwin/README_zh.md 克隆 RoboTwin、下载 assets、创建 .venv-robotwin,并完成渲染验证。
全量 RoboTwin 任务集评测命令:
.venv-robotwin/bin/python -u experiments/robotwin/run_robotwin_manager.py \
task=robotwin \
ckpt=checkpoints/g05-robotwin20/checkpoints/model_state_dict.pt \
EVALUATION.robotwin_root=third_party/RoboTwin \
MULTIRUN.num_gpus=8 \
MULTIRUN.max_tasks_per_gpu=1
该命令会使用配置中的 episode 数量评测 RoboTwin _eval_step_limit.yml 中的全部任务。标准 g05-robotwin20 目录结构下,dataset_stats.json 会自动从 checkpoint 父目录向上解析;只有 stats 文件放在其他位置时,才需要传 EVALUATION.dataset_stats_path=/path/to/dataset_stats.json。汇总结果写入 evaluate_results/robotwin/<ckpt_tag>/<timestamp>/,RoboTwin 渲染视频保留在 third_party/RoboTwin/eval_result/。
如需使用自己的数据微调模型,请按以下四步操作。配置层级和常见修改位置见 configs/QUICK_START.md。
configs/task/ 下创建或调整 task config,并在 configs/data/ 下更新对应数据集路径。Galaxea 机器人微调可从以下配置开始:这三类 Galaxea 机器人数据配置都包含示例本地数据路径,训练前必须替换:
- R1 Lite:替换 configs/data/r1lite.yaml 中的 data/r1lite/task*_lerobot。
- R1 Pro:替换 configs/data/r1pro.yaml 中的 data/r1pro/fold_carton_lerobot。
- R1 Pro WBC:替换 configs/data/r1pro_wbc.yaml 中的 data/r1pro_wbc/stack_box_lerobot。
这些路径应指向你的本地 LeRobot 数据集目录。
bash
sudo apt install ffmpeg
设置环境变量。
G05_OUTPUT_DIR:configs/train.yaml 必需;检查点和 Hydra 日志会写入该目录。HF_HOME / HF_HUB_CACHE:推荐用于 Hugging Face 模型和 tokenizer snapshot 的缓存位置。HF_DATASETS_CACHE:推荐用于 Hugging Face dataset 和 LeRobot metadata 的缓存位置。LIBERO_CONFIG_PATH:仅 LIBERO 仿真评测需要。它指向 LIBERO 读取或写入 config.yaml 的目录,其中包含 bddl_files、init_states、assets 和数据集路径。SWANLAB_API_KEY:仅当 logger.type=swanlab 时需要。WANDB_API_KEY:仅当 logger.type=wandb 且 logger.mode=online 时需要。bash
export HF_ENDPOINT=https://hf-mirror.com
export HF_HOME=<YOUR_HF_CACHE_ROOT>
export HF_HUB_CACHE=$HF_HOME/hub
export HF_DATASETS_CACHE=$HF_HOME/datasets
export G05_OUTPUT_DIR=<YOUR_OUTPUT_DIR>
export LIBERO_CONFIG_PATH=$(pwd)/experiments/libero
export SWANLAB_API_KEY=<YOUR_SWANLAB_API_KEY>
复制仓库本地环境模板,并填写机器相关路径和可选 API key:
bash
cp .env.example .env
source .env
运行微调。
```bash bash scripts/run/finetune.sh
# dry-run:解析配置后退出,不进入训练 bash scripts/run/finetune.sh 1 r1pro --dry-run --max_datasets 1
# 单卡 smoke test bash scripts/run/finetune.sh 1 r1pro --test --max_datasets 1 model.max_steps=10
# 多 GPU 示例: bash scripts/run/finetune.sh 8 r1lite bash scripts/run/finetune.sh 8 r1pro bash scripts
$ claude mcp add GalaxeaVLA \
-- python -m otcore.mcp_server <graph>