一、项目更新
近期重新git clone isaac gym的强化部分(具体见系列第5篇)时发现官方的github库有跟新,git clone下来后发现多了若干个task,在环境配置上也有一定区别。
例如新旧两版工程项目的setup.py
区别如下:
git clone新项目后直接在之前配置好的环境中运行,会有报错如下:
Error executing job with overrides: ['task=Cartpole']
Traceback (most recent call last):
File "train.py", line 146, in launch_rlg_hydra
runner = build_runner(RLGPUAlgoObserver())
File "train.py", line 137, in build_runner
model_builder.register_model('continuous_amp', lambda network, **kwargs : amp_models.ModelAMPContinuous(network))
AttributeError: module 'rl_games.algos_torch.model_builder' has no attribute 'register_model'
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
根据新项目的setup.py
的提示添加了如下的环境:
ip install rl-games==1.5.2
pip install gym==0.24.1
pip install pyvirtualdisplay
添加后可以运行新的工程项目。
二、benchmark框架梳理
给出的tasks实例位于如下路径:
~/IsaacGymEnvs/isaacgymenvs/tasks
执行命令为:
python train.py task=task名称
2.1 task相关程序构成
每一个task主要由三个文件构成:
-
主程序:
task名.py
在tasks文件夹下以task名称命名task名.py
的文件是主体程序,包含程序主要设计,环境生成,奖励函数,控制模块等等; -
强化学习算法配置文件:
task名PPO.yaml
位于~/isaacgymenvs/cfg/train
主要是包含强化学习相关的配置参数 -
task参数文件:
task名.yaml
位于~/isaacgymenvs/cfg/task
主要包含此task的名称,训练环境数量,需要用到的初始参数,加载的各类模型(urdf文件等)路径;以及仿真环境sim信息(轴向、重力、physx相关系数等)
2.2 训练后得到文件
训练后,生成的模型文件位于~/isaacgymenvs/runs/task名
文件夹内包含nn
,summaries
.config.yaml
三个文件
其中config.yaml
为本次训练的环境参数(env)、仿真参数(sim)、训练参数(train)等;
nn
文件夹内为后缀为.pth
的模型文件,可以用命令进行回放(相关指令见之前博文或官网);每一定周期内会生成一个过程文件,名称为last_task名_ep_x_rew_x.pth
,其中x为相关参数;有一最优参数保留的模型文件名称为task名.pth
,在终端可以看到.pth
文件的打印与更新提示
2.3 task主程序逻辑图
个人绘制,如有错误还请见谅,欢迎指出,随时交流
撰写自己的task时,模板位于~/isaacgymenvs/tasks/base/vec_task.py
,所有程序根据此车程序进行子类化。