MCPcopy Index your code
hub / github.com/OpenGalaxea/GalaxeaVLA

github.com/OpenGalaxea/GalaxeaVLA @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
2,169 symbols 7,840 edges 169 files 1,067 documented · 49%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GalaxeaVLA:G0.5 视觉-语言-动作模型

项目主页 论文 视频 Hugging Face

English | 简体中文

mascot logo

📢 最新动态

[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 TowelsHandover Gift(通过 TensorRT 在设备端运行 G0Tiny 推理,最高 10 Hz)。新增基于 openpipi0/pi0fast 微调支持。

[2026 年 1 月 4 日] 我们发布 G0Plus,这是最新的预训练 VLA 模型,面向多任务机器人操作。

[2025 年 10 月 7 日] Galaxea 开放世界数据集现已以 LeRobot 格式发布在 Hugging Face

[2025 年 9 月 17 日] 发布 G0-VLA 微调和真实机器人推理代码。

[2025 年 9 月 9 日] 在 Hugging FaceModelScope 发布 G0-VLA 预训练模型权重!

[2025 年 9 月 9 日] 在 Hugging FaceModelScope 发布 Galaxea 开放世界数据集!

📌 G0.5 概览

G0.5 是 Galaxea 面向通用机器人控制的预训练自回归视觉-语言-动作模型。G0.5 没有仅把 VLM 用作独立动作专家的视觉语言编码器,而是保留 VLM 作为执行器:单个 transformer decoder 在统一的自回归流中生成推理 token 和动作 token,并使用同一个 next-token prediction 目标。

G0.5 技术报告中的核心思路:

  1. 统一的自回归 VLA
  2. G0.5 以多视角 RGB 观测、本体标识、自然语言任务指令和机器人本体状态作为条件输入。
  3. 模型可以先输出具身推理,再在同一个生成流中继续输出结构化动作 token。
  4. 动作 token 被解码为连续机器人控制,以 chunk 形式执行,并基于新的观测进行闭环重规划。

  5. 跨本体 ActionCodec

  6. 异构机器人动作被映射到共享的 27 维动作空间: left_control(9) | left_gripper(1) | right_control(9) | right_gripper(1) | lower_body(7)
  7. 学习得到的 residual vector-quantized action tokenizer 表示语义对齐的运动组,例如左臂、右臂和下半身。
  8. 动作生成时只输出活跃运动组,避免为空闲自由度生成不必要的 padding。

  9. 面向控制的原生 chain-of-thought

  10. G0.5 将推理和动作训练为同一个 token 序列,而不是把推理视为外部模块或仅训练时使用的辅助目标。
  11. chain-of-thought 片段可以包含 SubtaskBBoxTraceActionHint 字段,用于任务分解、目标定位、二维夹爪轨迹和帧级运动提示。
  12. 这种设计提升了 grounding 和长时程执行能力,因为生成出的推理会直接被后续动作 token 看到。

  13. 视觉记忆

  14. G0.5 通过视觉编码器和分解式时空注意力注入多秒级视觉历史。
  15. 预训练使用在 5 秒窗口内采样的 6 帧,并通过随机历史帧 dropout 降低过拟合。
  16. 历史 token 会在最后一层被丢弃,以保持推理延迟有界。

  17. 预训练与评测

  18. G0.5 从 Qwen3.5 2B VLM 初始化,并在来自 14 种本体的机器人演示数据以及大规模网页和具身 VQA 数据上预训练。
  19. 机器人动作样本和 VQA 样本使用同一个交叉熵目标优化,并以 1:4 的 VQA-to-action 比例混合。
  20. 模型在多种设置中表现强劲,包括 DROID 零样本成功率 82.5%、Bridge-SimplerEnv 87.3%、RoboTwin 2.0 93.3%、LIBERO 98.9%、BEHAVIOR-1K 任务成功分 0.3136,以及在 R1-Lite/R1-Pro 上真实世界微调后的平均成功率 76.7%。

G0.5 Tokenizer

G0.5 Tokenizer

G0.5 Token Sequence Template

G0.5 Token Sequence Template

📌 历史 G0 / G0Plus 概览

本节保留早期 GalaxeaVLA 版本中的 G0Plus 概览,方便追溯项目历史。G0Plus 和 G0Tiny 属于旧版 G0/G0Plus 发布线;当前分支的主要内容已经切换到 G0.5,不再包含旧版 G0Plus Dockerfile、Fold Towels/Handover Gift 演示指南或 pi0/pi0fast 训练配置。如需复现旧版 README 和文件布局,请查看 commit 13a16a9。历史权重仍位于 G0-VLA Hugging Face 仓库,包括:

  • G0Plus_3B-base:使用 2k+ 小时真实世界机器人数据预训练,可用于自定义任务微调。
  • G0Tiny_250M-base:轻量级预训练模型,使用 1k 小时 R1 Pro VR 遥操作数据训练,面向 R1 Pro Orin 边缘部署。
  • G0Plus_3B-pick_and_place:面向 pick-and-place 部署的后训练权重。
  • Pick Up Anything、Fold Towels 和 Handover Gift 的 demo
  • 基于 openpi 的 pi0/pi0fast 微调。

🚀 Galaxea 开放世界数据集

主要特性

  • 500+ 小时真实世界移动操作数据。
  • 所有数据都使用统一机器人本体采集,以保证一致性。
  • 细粒度的子任务语言标注
  • 覆盖住宅厨房零售办公场景。
  • 数据集提供 RLDSLeRobot 格式。

更多数据集格式和示例细节见这里

⚙️ G0.5 快速开始

GPU 要求

要运行本仓库中的 G0.5 预训练模型,需要至少满足以下规格的 NVIDIA GPU。这些估算基于单 GPU。

通过 scripts/run/finetune.sh 启动的多 GPU 微调默认使用 torchrun 分布式数据并行。它可以提升吞吐,但每张 GPU 都会保留完整模型副本,因此不应描述为模型并行,也不会降低单卡模型显存。多机运行由 WORLD_SIZERANKMASTER_ADDRMASTER_PORT 等环境变量控制。

模式 显存要求 示例 GPU
推理 > 8 GB RTX 3090 / RTX 4090(推荐)
全量微调 > 70 GB A100 (80GB) / H20 (96GB)

安装

已测试环境:

  • Linux
  • Python >=3.10.16,<3.11
  • CUDA 12.8 与 PyTorch 2.7.1 cu128 wheel
  • flash-attn-4flash-linear-attention 等原生 CUDA 扩展;请确保 CUDA runtime、编译工具链和 PyTorch 构建匹配
  • 视频数据集和评测需要 ffmpeg
git 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

安装前请注意:

  1. 我们建议在不使用 conda 环境的情况下安装 uv
  2. 如果遇到网络问题,建议尝试以下 uv 环境变量: 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.yamldataset_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 并执行。

R1 Lite

在 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 / SO-101

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 / Franka

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.mdexperiments/droid/PROTOCOL.md

LIBERO 评测

LIBERO 评测同样使用服务端/客户端设置。这个命令会在后台启动批处理策略服务端,为每个 LIBERO suite 启动一个并行客户端,并在评测结束后停止服务端。

bash scripts/run/eval_libero.sh checkpoints/g05-libero/model.pt \
    --num_trials 50 \
    --num_parallel 10 \
    --save_videos

默认情况下,脚本会评测 libero_goallibero_spatiallibero_objectlibero_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 评测运行在 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/

🔥 在 Galaxea 机器人上微调基础模型

如需使用自己的数据微调模型,请按以下四步操作。配置层级和常见修改位置见 configs/QUICK_START.md

  1. configs/task/ 下创建或调整 task config,并在 configs/data/ 下更新对应数据集路径。Galaxea 机器人微调可从以下配置开始:
  2. R1 Lite:configs/task/r1lite.yaml,数据集路径在 configs/data/r1lite.yaml 中更新。
  3. R1 Pro 关节空间训练:configs/task/r1pro.yaml,数据集路径在 configs/data/r1pro.yaml 中更新。
  4. R1 Pro 包含躯干状态/动作的 WBC 训练:configs/task/r1pro_wbc.yaml,数据集路径在 configs/data/r1pro_wbc.yaml 中更新。

这三类 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 数据集目录。

  1. 安装所需软件包。

bash sudo apt install ffmpeg

  1. 设置环境变量。

    • G05_OUTPUT_DIRconfigs/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_filesinit_statesassets 和数据集路径。
    • SWANLAB_API_KEY:仅当 logger.type=swanlab 时需要。
    • WANDB_API_KEY:仅当 logger.type=wandblogger.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

  2. 运行微调。

```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

Core symbols most depended-on inside this repo

get
called by 704
src/g05/models/kv_cache.py
append
called by 551
experiments/r1lite/core/communication/message_queue.py
items
called by 359
src/g05/data/lerobot/datasets/utils.py
to
called by 141
src/g05/models/g05/qwen35/processing.py
keys
called by 137
src/g05/data/lerobot/datasets/utils.py
values
called by 101
src/g05/data/lerobot/datasets/utils.py
pop
called by 64
experiments/r1lite/core/communication/message_queue.py
detach
called by 52
src/g05/models/kv_cache.py

Shape

Method 1,234
Function 722
Class 212
Route 1

Languages

Python100%

Modules by API surface

src/g05/data/lerobot/lerobot_dataset_v3.py101 symbols
src/g05/data/lerobot/lerobot_dataset.py85 symbols
src/g05/data/lerobot/datasets/util_v3.py69 symbols
src/g05/data_processor/processor/samples_builder.py65 symbols
src/g05/models/g05/io/input_preprocessor.py64 symbols
src/g05/tokenizer/models/actioncodec2_v2/modular_actioncodec2v2.py56 symbols
src/g05/data/lerobot/datasets/utils.py53 symbols
experiments/so100/so100_policy_client.py53 symbols
src/g05/data_processor/transforms/relative_action.py44 symbols
src/g05/data/base_lerobot_dataset.py42 symbols
src/g05/tokenizer/models/actioncodec2_v2/wrapper.py38 symbols
src/g05/data_processor/transforms/action_state_merger.py36 symbols

For agents

$ claude mcp add GalaxeaVLA \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page