Skip to content

用 isaacgym 复现 LocomotionWithNP3O

项目简介

该项目可以实现上下楼梯,越障,训练算法采用了带约束的 PPO,可以在设置奖励的基础上进一步通过约束 cost 代价函数的方式实现对智能体的训练。向项目原作者致谢!

项目原作者视频里展示的方案是类似 himloco 的单阶段训练方案,一样用到了对比学习。

  • 与 himloco 的 swav 算法 不同,项目原作者用了 barlow twin 算法,后者没有 prototype 的概念
  • 同时项目原作者的对比学习目标不是拉近 history 和未来 t+1 的 latent 的相似度,而是拉近 t:t-5 与 t+1:t-4 之间的差异(公用 mlp encoder 与对比学习论文的结构设计更是吻合)
  • 项目原作者的方案 2000 轮能收敛到 terrain level 6,效果还不错
  • 项目原作者是业余爱好,所以没有发表论文,小伙伴们可以去项目原作者的 Github issue 进行交流。

注意

下文中的操作在 ROS2GO 512G ISAAC 特别定制版本中有效,不再另行通知。使用 Isaac gym 的方式是基于/home/tianbot/.isaacgym 这一 Python3.8 环境安装的,所以 请勿随意删除 ~/.isaacgym~/isaacgym_ws 的任意出厂内置文件,否则可能会造成原本内置好的 isaacgym 训练环境崩溃!!!!!!

提示

如果希望在终端中直接使用 Isaac Gym,首先需要执行以下命令,无需自己重新再配置环境:

bash
source ~/.isaac_env_toolkit && isaac_gym_env

切换到.isaacgym 虚拟环境

如果希望在终端中直接使用 Isaac Gym,首先需要执行以下命令,无需自己重新再配置环境,无需 pip install 安装此项目:

bash
source ~/.isaac_env_toolkit && isaac_gym_env

提示

使用如下命令检查 pip 和 python 的安装路径,确认使用的是虚拟环境中的 pip 和 python

bash
which pip
which python
whereis pip
whereis python
pip --version

注意

如需安装新的依赖项,请自行确定是否会破坏已经内置的环境,如果由于操作不当,造成环境依赖出现问题,请及时在相关售后群里提问,或参考 timeshift 恢复操作进行恢复

bash
pip --version
pip list # 查看当前 pip 下已安装的模块

训练策略

注意

运行下述操作时,无需自己重新再配置环境,无需 pip install -e 安装此项目:

bash
cd ~/isaacgym_ws/src/LocomotionWithNP3O_raw
python train.py --task=go2N3poHim --num_env=1024 --headless # set env num

策略演示

bash
cd ~/isaacgym_ws/src/LocomotionWithNP3O_raw
python simple_play.py --task=go2N3poHim