训练和演示
Wiki-GRx-Gym提供了一个用于训练 GR1 在复杂地形上行走的环境,基于 NVIDIA Isaac Gym,以及苏黎世联邦理工 Legged Robotics 团队的 legged_gym 和 rsl_rl 库。
参考链接
安装步骤
0. 安装 Ubuntu 20.04
1. 安装英伟达驱动
- 通过 Ubuntu 20.04 自带的“软件与更新”应用程序安装英伟达驱动。
- 在终端使用命令
nvidia-smi确认是否能查看 GPU 和 CUDA 信息。如下所示:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.125.06 Driver Version: 525.125.06 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------|
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | Off |
| 0% 42C P8 25W / 450W | 709MiB / 24564MiB | 1% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1032 G /usr/lib/xorg/Xorg 53MiB |
| 0 N/A N/A 1666 G /usr/lib/xorg/Xorg 239MiB |
| 0 N/A N/A 1805 G /usr/bin/gnome-shell 125MiB |
| 0 N/A N/A 2171 G /usr/lib/firefox/firefox 205MiB |
| 0 N/A N/A 2847 G ...RendererForSitePerProcess 45MiB |
| 0 N/A N/A 3721 G ...RendererForSitePerProcess 20MiB |
+-----------------------------------------------------------------------------+
2. 使用 Conda 部署
-
安装 Anaconda:
-
创建 Conda 环境
wiki-grx-gym:conda create -n wiki-grx-gym python=3.8
conda activate wiki-grx-gym -
安装 Isaac Gym:
cd ./IsaacGym_Preview_4_Package/isaacgym/python/
pip install -e . -
安装 rsl_rl:
cd ./rsl_rl
pip install -e . -
安装 legged_gym:
cd ./legged_gym
pip install -e . -
安装其他依赖:
# 部分函数使用了旧变量类型,numpy 大于 1.24 版本会报错
pip install numpy==1.20.0
# tensorboard 用于显示训练过程
pip install tensorboard
pip install protobuf==3.20.3
3. 使用 Docker 部署
默认 Dockerfile 支持 NVIDIA RTX 4090。
-
准备 Docker 训练环境并构建镜像:
cd rl_docker
bash build.sh -
运行镜像:
bash run.sh -g <gpus, should be num 1~9 or all> -d <true/false>
# 示例:bash run.sh -g all -d true -
更多用法和故障排除请查看
./rl_docker/README.md
4. 开始训练
cd legged_gym/legged_gym/scripts
python ./train.py --task=GR1T1 --headless
5. 演示
cd legged_gym/legged_gym/scripts
python ./play.py --task=GR1T1 --num_envs=25
注意事项
此处训练代码仅展示如何控制机器人腿部行走,机器人身体被设置为固定。
如果希望控制机器人身体移动,需要修改以下文件:
- URDF 文件:
./legged_gym/legged_gym/resources/robots/gr1t1/urdf/GR1T1.urdf - 配置文件:
./legged_gym/legged_gym/envs/gr1t1/gr1t1_config.py