# OrcaPlayground
**Repository Path**: pipieger/OrcaPlayground
## Basic Information
- **Project Name**: OrcaPlayground
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-16
- **Last Updated**: 2026-03-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OrcaPlayground
OrcaGym 示例代码仓库,已集成 OrcaLab 支持。
## 🎯 快速开始
### 方式 1:使用 OrcaLab 启动(推荐)⭐
本项目已配置 OrcaLab 集成,可以直接在 OrcaLab 中启动示例。
#### 步骤 1:安装 OrcaLab
```bash
pip install orca-lab
```
#### 步骤 2:激活 OrcaLab 的 conda 环境并安装依赖
```bash
# 激活 OrcaLab 的 conda 环境(根据你的环境名称调整)
conda activate orcalab # 或你的 OrcaLab 环境名称
# 进入项目目录
cd /path/to/OrcaPlayground
# 安装项目依赖
pip install -r requirements.txt
```
#### 步骤 3:在当前目录启动 OrcaLab
```bash
# 在项目根目录启动 OrcaLab(会自动加载 .orcalab/config.toml)
orcalab .
# 或者直接启动(默认使用当前目录作为工作目录)
orcalab
```
OrcaLab 会自动加载工作目录下的 `.orcalab/config.toml` 配置文件。
#### 步骤 4:在 OrcaLab 中启动示例
1. 在 OrcaLab 界面中选择 **外部程序**(External Programs)
2. 从列表中选择对应的示例程序:
- `run_character` - 角色仿真
- `run_legged_rl_train` - 足式机器人 RL 训练
- `run_wheeled_chassis` - 轮式底盘仿真
- `run_xbot_orca` - XBot 机器人仿真
- `run_sim_loop` - 空循环仿真
配置文件位置:`.orcalab/config.toml`
### 方式 2:命令行启动
```bash
# 安装依赖
pip install -r requirements.txt
# 运行示例(参考各示例目录下的 README.md)
python examples/character/run_character.py
python examples/xbot/run_xbot_orca.py
python examples/legged_gym/run_legged_rl.py --config examples/legged_gym/configs/sb3_ppo_config.yaml --train
```
## 📦 项目结构
```
OrcaPlayground/
├── orca_gym/ # OrcaGym 核心模块
├── envs/ # 环境定义模块
├── examples/ # 示例代码目录
│ ├── character/ # 角色仿真(含 README.md)
│ ├── legged_gym/ # 足式机器人 RL 训练(含 README.md)
│ ├── wheeled_chassis/ # 轮式底盘(含 README.md)
│ ├── xbot/ # XBot 机器人(含 README.md)
│ └── ... # 更多示例
├── .orcalab/ # OrcaLab 配置文件
│ └── config.toml # 外部程序配置
└── requirements.txt # Python 依赖
```
## 📚 示例说明
所有示例的详细使用说明请查看各目录下的 `README.md`:
- **角色仿真** - [`examples/character/README.md`](examples/character/README.md)
- **足式机器人 RL 训练** - [`examples/legged_gym/README.md`](examples/legged_gym/README.md)
- **轮式底盘** - [`examples/wheeled_chassis/README.md`](examples/wheeled_chassis/README.md)
- **XBot 机器人** - [`examples/xbot/README.md`](examples/xbot/README.md)
- **ZQ SA01 人形** - [`examples/zq_sa01/README.md`](examples/zq_sa01/README.md)
- **G1 人形** - [`examples/g1/README.md`](examples/g1/README.md)
- **场景复制** - [`examples/replicator/README.md`](examples/replicator/README.md)
> **⚠️ 重要提示:资产准备**
>
> 每个示例都需要相应的 3D 资产才能正常运行。**请务必查看各示例目录下的 README.md 文件**,了解:
> - 📦 所需资产的下载地址
> - 🔧 是否需要手动在 OrcaStudio 中拖动资产到场景
> - 📝 对应的模型名称
>
> 资产下载地址:https://simassets.orca3d.cn/
## 📦 关于资产与扩展开发
OrcaPlayground 依赖 **OrcaPlaygroundAssets** 资产库中的资源,当前示例中使用的资产路径在代码调用中为**写死**的。若您需要接入新模型或进行其他扩展开发,请参阅 **OrcaLab** 及资产库的文档与资源。
## 🔧 手动拖动资产(调试时)
当前各示例默认在 **OrcaLab 中启动**,脚本会通过 spawn(replicator)自动创建场景,无需手动拖入。若需要本地调试、单步跟踪或自定义布局,可以改为在 OrcaStudio 中手动拖动资产:
1. **操作方式**:在资产窗口中选择**中文名称**的资产(如「人形机器人」「黄色越野车」「四足机器人」等),拖入到大纲中;大纲里会显示对应的**英文**资产名。
2. **建议**:将大纲中的资产重命名为脚本所期望的名称(如 `XBot-L`、`hummer_h2_usda_1` 等),以便环境通过 `agent_names` / `agent_name` 正确识别。若保持默认英文名,请相应修改示例代码中的名称或命令行参数。
3. **关于名称不一致**:资产在制作时可能使用缩写或内部命名,与 replicator/spawn 中使用的规范名称不同是正常现象;上线前会规范为易读名称,调试时以大纲中的实际名称为准即可。
各示例在「手动拖入」时的写法与修改前样例代码,见对应示例的 README:
- XBot:[examples/xbot/README.md](examples/xbot/README.md#-手动拖入资产进行调试)
- 轮式底盘:[examples/wheeled_chassis/README.md](examples/wheeled_chassis/README.md#-手动拖入资产进行调试)
- ZQ SA01:[examples/zq_sa01/README.md](examples/zq_sa01/README.md#-手动拖入资产进行调试)
- G1:[examples/g1/README.md](examples/g1/README.md#-手动拖入资产进行调试)
## 📋 依赖说明
### 基础依赖(必需)
```bash
pip install -r requirements.txt
```
主要依赖:
- `orca-gym>=25.12.4` - OrcaGym 核心包(包含 numpy, gymnasium, mujoco, grpcio 等)
- `torch>=2.0.0` - PyTorch(用于模型推理)
- `stable-baselines3>=2.3.2` - SB3 RL 训练(可选)
- `onnxruntime>=1.16.0` - ONNX 模型推理(可选)
详细依赖说明请查看 `requirements.txt`。
### 运行要求
1. **OrcaStudio**:确保 OrcaStudio 正在运行(默认地址:`localhost:50051`)
2. **Python 版本**:Python >= 3.9
3. **场景配置**:默认由脚本 spawn 创建场景;若手动布置,见上方 [手动拖动资产(调试时)](#-手动拖动资产调试时)
## 🔧 OrcaLab 配置
### 配置文件位置
OrcaLab 配置文件位于 `.orcalab/config.toml`,OrcaLab 启动时会自动加载工作目录下的此配置文件。
### 已配置的外部程序
- `run_sim_loop` - 空循环仿真
- `character` - 角色仿真
- `legged_train` - 足式机器人训练
- `wheeled_chassis` - 轮式底盘仿真
- `xbot_orca` - XBot 仿真
### 添加新程序
如需添加新的外部程序,编辑 `.orcalab/config.toml` 文件,在 `[[external_programs.programs]]` 部分添加新条目。
#### 配置格式
```toml
[[external_programs.programs]]
name = "your_program_name" # ⚠️ 必填:程序唯一标识符
display_name = "显示名称" # ⚠️ 必填:在 OrcaLab UI 中显示的名称
command = "python" # ⚠️ 必填:执行命令(通常是 "python")
args = ["-m", "examples.your_module.run_script"] # ⚠️ 必填:命令行参数列表
description = "程序描述" # 可选:程序描述信息
```
#### 参数说明
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `name` | 字符串 | ✅ 是 | **程序唯一标识符**,用于 OrcaLab 内部查找和启动程序。必须与所有已配置程序的 `name` 和 `display_name` 都不重复。建议使用小写字母、数字和下划线,如 `my_program`。 |
| `display_name` | 字符串 | ✅ 是 | **显示名称**,在 OrcaLab 启动对话框的 UI 中显示给用户。必须与所有已配置程序的 `name` 和 `display_name` 都不重复。可以使用中文、空格等字符,如 `我的程序`。 |
| `command` | 字符串 | ✅ 是 | **执行命令**,通常是 `"python"`,也可以是其他可执行命令(如 `"python3"`、`"conda"` 等)。 |
| `args` | 字符串数组 | ✅ 是 | **命令行参数列表**,每个参数作为数组的一个元素。例如:
- 模块方式:`["-m", "examples.module.run_script"]`
- 脚本方式:`["examples/script.py", "--arg1", "value1"]`
- 带参数:`["-m", "examples.module.run", "--config", "config.yaml", "--train"]` |
| `description` | 字符串 | ❌ 否 | **程序描述**,用于在 OrcaLab UI 的工具提示中显示,帮助用户了解程序功能。 |
#### ⚠️ 重要注意事项
1. **`name` 和 `display_name` 禁止重复**
- ❌ **禁止**:两个程序的 `name` 相同
- ❌ **禁止**:两个程序的 `display_name` 相同
- ❌ **禁止**:一个程序的 `name` 与另一个程序的 `display_name` 相同
- ✅ **允许**:同一个程序内部,`name` 和 `display_name` 可以不同(通常建议不同,以便区分)
2. **`name` 的唯一性要求**
- `name` 是程序在系统中的唯一标识符,OrcaLab 通过 `name` 来查找和启动程序
- 如果 `name` 重复,`get_external_program_config()` 只会返回第一个匹配的程序,导致后续程序无法正确启动
- 建议使用有意义的、描述性的名称,如 `legged_train`、`character_sim` 等
3. **`display_name` 的唯一性要求**
- `display_name` 在 OrcaLab UI 中显示,如果重复会导致用户无法区分不同的程序
- 建议使用清晰、描述性的显示名称,如 `Legged Robot Training`、`Character Simulation` 等
4. **工作目录**
- 程序启动时的工作目录是 OrcaLab 的工作目录(通常是 `.orcalab/config.toml` 所在的目录)
- 在 `args` 中使用相对路径时,请确保相对于工作目录的路径正确
5. **模块导入路径**
- 使用 `-m` 参数以模块方式运行时,确保模块路径正确
- 例如:`["-m", "examples.legged_gym.run_legged_rl"]` 表示运行 `examples/legged_gym/run_legged_rl.py`
#### 配置示例
```toml
# 示例 1:简单模块启动
[[external_programs.programs]]
name = "my_simple_program"
display_name = "简单程序"
command = "python"
args = ["-m", "examples.my_module.run_script"]
description = "这是一个简单的示例程序"
# 示例 2:带命令行参数的程序
[[external_programs.programs]]
name = "legged_train"
display_name = "Legged Robot Training"
command = "python"
args = [
"-m",
"examples.legged_gym.run_legged_rl",
"--config", "examples/legged_gym/configs/sb3_ppo_config.yaml",
"--train",
"--visualize"
]
description = "启动足式机器人强化学习训练"
# 示例 3:使用脚本路径(非模块方式)
[[external_programs.programs]]
name = "custom_script"
display_name = "自定义脚本"
command = "python"
args = ["examples/custom/script.py", "--option", "value"]
description = "直接运行脚本文件"
```
#### 验证配置
添加新程序后,建议:
1. **检查重复**:确认新程序的 `name` 和 `display_name` 与所有已配置程序都不重复
2. **测试启动**:在 OrcaLab 中尝试启动新程序,确认命令和参数正确
3. **查看日志**:如果启动失败,查看 OrcaLab 的日志输出,检查命令、参数或模块路径是否正确
### 初始化配置(可选)
如果当前目录没有 `.orcalab/config.toml`,可以使用 OrcaLab 生成基本配置:
```bash
orcalab --init-config
```
然后手动添加本项目的外部程序配置。
## 📖 更多信息
- OrcaGym 主仓库:https://github.com/openverse-orca/OrcaGym
- 各示例详细说明:查看 `examples/*/README.md`