diff --git a/README.md b/README.md index 02f201b..e4c9dc6 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@
-

RoboGauge

-

- 🌎 English | 🇨🇳 中文 -

+

RoboGauge

+

+ 🌎 English | 🇨🇳 中文 +

This repository provides a suite of **motion-control evaluation for reinforcement-learning locomotion policies**. The goal is to measure the following aspects of a policy, so we can partially predict Sim2Real performance and reduce the risk of damaging real hardware: @@ -17,22 +17,22 @@ The evaluation is automated with MuJoCo and implemented fully in Python. Demo of the evaluation process (4 terrains, 2 difficulty levels): - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
WaveSlope
StairsObstacles
WaveSlope
StairsObstacles
## Supported Robots @@ -78,22 +78,22 @@ from robogauge.scripts.client import RoboGaugeClient # Create client and submit a test task client = RoboGaugeClient(f"http://127.0.0.1:9973") task_id = client.submit_task( - model_path=test_payload["model_path"], - step=test_payload["step"], - task_name=test_payload["task_name"], - experiment_name=test_payload["experiment_name"], - wait_for_server=True + model_path=test_payload["model_path"], + step=test_payload["step"], + task_name=test_payload["task_name"], + experiment_name=test_payload["experiment_name"], + wait_for_server=True ) # Monitor task status and get results while True: - client.monitor_tasks() - for task_id, resp in client.response_data.items(): - scores = resp['results']['scores'] - print("[RoboGaugeClient]📊 Scores:") - print(json.dumps(scores, indent=2, ensure_ascii=False)) - client.response_data.clear() - time.sleep(5) + client.monitor_tasks() + for task_id, resp in client.response_data.items(): + scores = resp['results']['scores'] + print("[RoboGaugeClient]📊 Scores:") + print(json.dumps(scores, indent=2, ensure_ascii=False)) + client.response_data.clear() + time.sleep(5) ``` Example integration: `update_robogauge` in [`go2_rl_gym - on_policy_runner.py`](https://github.com/wty-yy/go2_rl_gym/blob/f9024e807758d497445857a21dce3b266876f375/rsl_rl/rsl_rl/runners/on_policy_runner.py#L252) @@ -188,18 +188,18 @@ Create a new robot implementation and control-model configuration under `robogau ## Directory Structure - `robogauge/`: core Python package - - `robogauge/scripts/`: runnable entry scripts (run evaluation / start server) - - `robogauge/tasks/`: task system (sim config + metrics/scenes + robot + scheduling) - - `robogauge/tasks/pipeline/`: scheduling & execution layer (lifecycle, DR, parallel seeds, aggregation) - - `robogauge/tasks/gauge/`: gauge layer (command generation, metric computation, result aggregation) - - `robogauge/tasks/robots/`: robot adapters (obs/action, joint mapping, model loading, control rate) - - `robogauge/tasks/simulator/`: simulator wrappers / environment interfaces (MuJoCo integration, stepping, state access) - - `robogauge/tasks/custom/`: project-specific extensions and custom tasks - - `robogauge/utils/`: utilities (logging, config/file helpers, stats, math) + - `robogauge/scripts/`: runnable entry scripts (run evaluation / start server) + - `robogauge/tasks/`: task system (sim config + metrics/scenes + robot + scheduling) + - `robogauge/tasks/pipeline/`: scheduling & execution layer (lifecycle, DR, parallel seeds, aggregation) + - `robogauge/tasks/gauge/`: gauge layer (command generation, metric computation, result aggregation) + - `robogauge/tasks/robots/`: robot adapters (obs/action, joint mapping, model loading, control rate) + - `robogauge/tasks/simulator/`: simulator wrappers / environment interfaces (MuJoCo integration, stepping, state access) + - `robogauge/tasks/custom/`: project-specific extensions and custom tasks + - `robogauge/utils/`: utilities (logging, config/file helpers, stats, math) - `resources/`: simulation static assets - - `resources/robots/`: robot assets (XML / meshes / textures), organized by robot type - - `resources/terrains/`: terrain assets (e.g., `flat.xml`, slope/stairs/wave/obstacle variants) - - `resources/models/`: policy/model resources + - `resources/robots/`: robot assets (XML / meshes / textures), organized by robot type + - `resources/terrains/`: terrain assets (e.g., `flat.xml`, slope/stairs/wave/obstacle variants) + - `resources/models/`: policy/model resources - `assets/`: documentation assets - `scripts/`: helper shell scripts for running experiments diff --git a/README_zh.md b/README_zh.md index 7a1ee25..566653d 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,8 +1,8 @@
-

RoboGauge

-

- 🌎 English | 🇨🇳 中文 -

+

RoboGauge

+

+ 🌎 English | 🇨🇳 中文 +

本仓库提供一系列**强化学习训练的运动控制模型指标**, 目标是衡量模型的以下信息, 从而能一定程度预测模型Sim2Real的结果, 避免损坏真机: @@ -164,19 +164,19 @@ while True: ## 目录结构 - `robogauge/`:核心 Python 包 - - `robogauge/scripts/`:可执行入口脚本(运行评测 / 启动服务端) - - `robogauge/tasks/`:任务系统(仿真配置 + 指标/场景 + 机器人 + 调度执行) - - `robogauge/tasks/pipeline/`:调度与执行层(生命周期、域随机化、多 seed 并行、结果聚合) - - `robogauge/tasks/gauge/`:指标层(指令生成、指标计算、结果汇总) - - `robogauge/tasks/robots/`:机器人适配层(观测/动作、关节映射、模型加载、控制频率) - - `robogauge/tasks/simulator/`:仿真器封装 / 环境接口(MuJoCo 集成、step、状态读取等) - - `robogauge/tasks/custom/`:项目自定义扩展与自定义任务 - - `robogauge/utils/`:工具库(日志、配置/文件处理、统计、数学工具) + - `robogauge/scripts/`:可执行入口脚本(运行评测 / 启动服务端) + - `robogauge/tasks/`:任务系统(仿真配置 + 指标/场景 + 机器人 + 调度执行) + - `robogauge/tasks/pipeline/`:调度与执行层(生命周期、域随机化、多 seed 并行、结果聚合) + - `robogauge/tasks/gauge/`:指标层(指令生成、指标计算、结果汇总) + - `robogauge/tasks/robots/`:机器人适配层(观测/动作、关节映射、模型加载、控制频率) + - `robogauge/tasks/simulator/`:仿真器封装 / 环境接口(MuJoCo 集成、step、状态读取等) + - `robogauge/tasks/custom/`:项目自定义扩展与自定义任务 + - `robogauge/utils/`:工具库(日志、配置/文件处理、统计、数学工具) - `resources/`:仿真静态资源 - - `resources/robots/`:机器人资源(XML / mesh / 纹理等),按机器人型号组织 - - `resources/terrains/`:地形资源(如 `flat.xml`、slope/stairs/wave/obstacle 等) - - `resources/models/`:策略/模型资源 + - `resources/robots/`:机器人资源(XML / mesh / 纹理等),按机器人型号组织 + - `resources/terrains/`:地形资源(如 `flat.xml`、slope/stairs/wave/obstacle 等) + - `resources/models/`:策略/模型资源 - `assets/`:文档资源 - `scripts/`:实验运行的辅助 shell 脚本