Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

102 Commits

Folders and files

Repository files navigation

Loco-Manipulation

Loco-Manipulation 是一个基于 NVIDIA Isaac Gym 和 RSL-RL 的轮足移动操作机器人(Go2W + Piper)强化学习项目。仓库包含机器人资产、训练环境、PPO 训练代码、checkpoint 播放、策略导出和 MuJoCo 部署。

环境要求

  • Linux(建议 Ubuntu 20.04/22.04)
  • NVIDIA GPU、兼容的 NVIDIA Driver 和 CUDA
  • Python 3.8+
  • NVIDIA Isaac Gym Preview

项目依赖由 setup.py 声明,主要包括 isaacgym、PyTorch、NumPy 1.22、TensorBoard 和 MuJoCo 3.2.3。请先按照 Isaac Gym 官方说明安装 Isaac Gym,再安装本项目。

安装

git clone https://github.com/kai698/Loco-Manipulation.git
cd Loco-Manipulation
pip install -e .
pip install -e rsl_rl

快速开始

训练

当前仓库注册的任务只有 go2w_piper:

python legged_gym/scripts/train.py --task go2w_piper --headless

常用覆盖参数:

python legged_gym/scripts/train.py \
  --task go2w_piper \
  --headless \
  --num_envs 4096 \
  --max_iterations 15000 \
  --seed 1 \
  --run_name baseline

--num_envs、--max_iterations、--seed 和 --run_name 会覆盖配置文件中的对应值。默认训练配置位于 go2w_piper_config.py。

播放 checkpoint

播放脚本会加载最近一次运行的最新模型,也可以通过 --load_run 和 --checkpoint 指定:

python legged_gym/scripts/play.py \
  --task go2w_piper \
  --load_run <run-directory> \
  --checkpoint 15000

播放默认只创建一个环境、关闭噪声和域随机化,并导出 JIT actor、actor state dict 和历史编码器。使用已有 TorchScript:

python legged_gym/scripts/play.py --task go2w_piper --use_jit

MuJoCo 部署

MuJoCo 部署使用 deploy/pre_train/go2w_piper_cost/ 下的 traced_actor.pt 和 traced_hist_encoder.pt,场景位于 deploy/deploy_mujoco/robots/go2w_piper/scene.xml:

python deploy/deploy_mujoco/deploy_mujoco.py

如需替换策略或场景,请修改 deploy_mujoco/configs.py 中的 actor_path、hist_encoder_path 和 asset.file。

项目结构

Loco-Manipulation/
├── legged_gym/
│   ├── envs/base/                 # 通用腿式机器人环境与配置
│   ├── envs/go2w_piper/           # Go2W-Piper 环境、配置、奖励和代价
│   ├── scripts/train.py           # PPO 训练入口
│   ├── scripts/play.py            # checkpoint 播放与策略导出
│   └── utils/                     # 参数解析、任务注册、日志和数学工具
├── rsl_rl/                        # 仓库内维护的 RSL-RL PPO 实现
├── resources/robots/              # Isaac Gym 使用的 URDF 和网格
├── deploy/deploy_mujoco/          # MuJoCo 场景、控制器和部署入口
├── deploy/pre_train/              # MuJoCo 使用的 TorchScript 预训练策略
├── logs/                          # 训练运行、checkpoint 和导出文件
├── setup.py
└── README.md

任务在 legged_gym/envs/init.py 注册:

task_registry.register("go2w_piper", Go2wPiper, Go2wPiperCfg(), Go2wPiperCfgPPO())

新增任务时,需要同时注册环境类、环境配置和 PPO 配置。

训练输出

训练输出目录

训练默认输出目录为:

logs/<experiment_name>/<timestamp>_<run_name>/
├── model_<iteration>.pt
├── events.out.tfevents.*
└── params/
    ├── env.yaml
    ├── train.yaml
    └── go2w_piper_config.py

params/env.yaml 和 params/train.yaml 保存创建该 run 时最终生效的环境与 PPO 配置,包括命令行覆盖后的参数。params/go2w_piper_config.py 是对应的 Python 配置源码快照,便于复现实验时核对配置逻辑。

播放导出文件

播放脚本生成的导出文件位于实验目录(而不是带时间戳的 run 目录)下:

logs/<experiment_name>/exported/
├── policies/policy_1.pt
├── model_actor.pt
└── traced/
    ├── traced_actor.pt
    └── traced_hist_encoder.pt

导出文件说明:

  • policies/policy_1.pt:由 export_policy_as_jit() 生成的完整 actor TorchScript,适合在 C++ 或其他 Python 进程中直接加载推理。
  • policies/model_actor.pt:actor 网络的 PyTorch state_dict,用于重新构造网络、检查权重或进行二次导出;它不是可直接调用的完整 TorchScript 模型。
  • traced/traced_actor.pt:将 actor backbone、privileged encoder 和腿部/机械臂控制 head 组合后的 TorchScript actor,输入为当前 proprioception 与历史 latent。使用 --use_jit 播放时加载此文件。
  • traced/traced_hist_encoder.pt:历史观测编码器的独立 TorchScript。运行时先将历史观测输入该文件得到 latent,再与当前 proprioception 拼接后输入 traced_actor.pt。

运行 play.py 时默认会生成上述文件;--use_jit 只负责加载已有的 traced/ 文件,不会重新导出。

恢复训练

使用 --resume 恢复训练;默认从实验目录选择最近一次运行和最新 checkpoint:

python legged_gym/scripts/train.py \
  --task go2w_piper \
  --headless \
  --resume \
  --experiment_name go2w_piper_cost \
  --load_run <run-directory> \
  --checkpoint 5000

训练日志

训练日志由 TensorBoard SummaryWriter 写入 events.out.tfevents.* 文件,可用以下命令查看:

tensorboard --logdir logs

测试与验证

环境 smoke test 会创建一个环境并执行零动作:

python legged_gym/tests/test_env.py --task go2w_piper --headless --num_envs 1

开源参考

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages