Ubuntu20.04配置DRLoco

引言

DRLoco是DeepMimic在pytorch上的版本,相当于DeepMimic的简化版,对理解强化学习和PPO算法很有帮助
github源码地址详见https://github.com/rgalljamov/DRLoco
安装和说明文档详见https://drloco.readthedocs.io/en/latest/
本文将按照说明文档的步骤配置环境并运行该项目,虽然说明文档已经写得比较详细,但是在配置过程中依然出现了不少问题,所以这里依据我配置的步骤做一个整理。

安装Anconda

因为我之前配置其它环境已经安装好了,所以在这里就不再赘述

创建虚拟环境

创建并激活名为drloco的虚拟环境

conda create -n drloco python=3.7
conda activate drloco

创建并激活虚拟环境

在虚拟环境中安装pytorch

需要安装对应cuda版本的pytorch
运行命令

nvidia-smi

可以查看显卡驱动的版本:
显卡驱动及cuda版本
显示的cuda版本一般是最适合显卡驱动的版本,我装的cuda是最适合的版本,所以依照显示的结果在pytorch官网上找到对应的pytorch版本。
由于pytorch官网上没有对应的cuda11.4的版本,查阅资料并测试后发现,对应cuda11.3的pytorch1.10.1可以使用1,所以运行以下命令:

conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge

等待一段时间之后,即可安装完成

安装MuJoCo和mujoco-py

mujoco的安装过程非常简单,即下载,解压,添加环境变量3步,可以参考其它教程,很容易就可以完成,接下来重点记录mujoco-py的安装,此为mujoco-py的官方网址
输入命令:

$ pip3 install -U 'mujoco-py<2.2,>=2.1'

等待一段时间后即可安装完成
安装完成mujoco-py示意图

安装Stable-Baselines 3

输入命令

pip install stable-baselines3[extra]

等待一段时间后即可安装完成,官方文档说这里可能报错,但我这里没报错,很顺利就安装完成了。

安装seaborn:

依次输入以下命令:

conda install seaborn
conda install -c conda-forge wandb

全程y,等待一段时间后即可安装完成
安装完两个包之后

复制DRLoco源代码

主页将源代码克隆下来

git clone https://github.com/rgalljamov/DRLoco.git

但上述命令只能克隆master分支,无法克隆剩下的分支,所以会导致无法进行后续步骤
输入以下命令克隆docs分支

  1. 进入克隆好的文件
cd /home/**/DRLoco
  1. 查看所有分支
git branch -a

发现有2个分支master和docs,而此时的分支为master
输入命令:

git checkout -b docs origin/docs

切换分支,之后可以进行以下的步骤

检查安装是否成功

打开DRLoco下的scripts文件夹,在该文件夹下运行run.py

python run.py

出现错误:ModuleNotFoundError: No module named 'gym'
错误1
安装gym包,输入命令

pip install gym

继续尝试运行run.py,出现错误:Cython.Compiler.Errors.CompileError: /home/zl/anaconda3/envs/drloco/lib/python3.7/site-packages/mujoco_py/cymj.pyx,查阅资料发现需要更换Cython版本,输入命令:

pip install Cython==3.0.0a10

尝试运行run.py,出现错误:ModuleNotFoundError: No module named 'gym_mimic_envs',缺少名叫gym_mimic_envs的包,这个包不是官方的包,发现在克隆的文件内部路径~/DRLoco/mujoco有这个包,所以运行setup.py文件进行安装,进入该文件,输入以下命令:

python setup.py install

尝试运行run.py,出现错误:ModuleNotFoundError: No module named 'scripts',scripts这个包虽然可以通过pip命令安装,但是之前尝试过安装之后依然会发生错误,所以推测这里的缺少的包是文档本身的包,因此将scripts文件夹复制到缺少包的路径中/home/**/anaconda3/envs/drloco/lib/python3.7/site-packages,再次尝试运行run.py,出现错误:OSError: /home/zl/anaconda3/envs/drloco/lib/python3.7/site-packages/nvidia/cublas/lib/libcublas.so.11: undefined symbol: cublasLtGetStatusString, version libcublasLt.so.11
输入命令:

pip uninstall nvidia_cublas_cu11

再次尝试运行run.py,出现错误:ModuleNotFoundError: No module named 'scipy',输入命令:pip install scipy,尝试运行run.py,出现错误:FileNotFoundError: [Errno 2] No such file or directory: '/home/zl/anaconda3/envs/drloco/lib/python3.7/site-packages/assets/mocaps/loco3d/loco3d_guoping.mat',找不到以上文件,进入虚拟环境相关路径发现从assest文件开始就没有了,而克隆的文件中恰好有assests文件,所以将assests文件复制到相关目录。再次尝试运行run.py,出现错误:TypeError: __init__() missing 1 required positional argument: 'observation_space',查阅资料,发现导致这个问题的原因是gym版本过高,输入以下命令:

pip uninstall gym
pip install gym==0.14.0

再次尝试运行run.py,出现错误:OSError: File /home/zl/anaconda3/envs/drloco/lib/python3.7/site-packages/gym_mimic_envs-0.5-py3.7.egg/gym_mimic_envs/mujoco/assets/walker_165cm_65kg.xml does not exist,意思是缺少一个文件,打开相关路径:发现在/home/zl/anaconda3/envs/drloco/lib/python3.7/site-packages/gym_mimic_envs-0.5-py3.7.egg/gym_mimic_envs/mujoco下没有assests文件,将/home/zl/DRLoco/mujoco/gym_mimic_envs/mujoco下的assests文件复制到相关路径,再次尝试运行run.py,得到了仿真结果:
仿真结果

在pycharm中得到结果

不想每次运行都要打开命令行,想在pycharm运行得到结果
在pycharm打开项目,设置编译器,运行run.py,出现错误:

Exception: 
Missing path to your environment variable. 
Current values LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:/home/zl/.mujoco/mujoco210/bin
Please add following line to .bashrc:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia

输入grdit ~/.bashrc,发现环境变量已经添加,问题应该是pycharm不能识别已经在系统中添加的环境变量,所以应该在pycharm中单独添加,点击pycharm右上角向下箭头,edit configuration,点击左上角加号,点击python,如下图所示:
Bebugged Configurationscripts设置为当前路径,Working Direction设置为项目路径,编辑环境变量:
编辑环境变量
在下方的变量中可以找到名为LD_LIBRARY_PATH的变量,发现已经添加了mujoco的路径,在变量值的后面加:$LD_LIBRARY_PATH:/usr/lib/nvidia,两个同名变量之间用冒号隔开,运行run.py,发现mujoco-py卡死且在terminal出现了以下错误:ERROR: GLEW initalization error: Missing GL version,这个错误在官方文档中有提及,需要在环境变量文件中添加:export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/x86_64-linux-gnu/libGL.so,但在文件中已经添加,且在命令行可以运行,所以是pycharm的原因。
依然在pycharm的环境变量处添加名为LD_PRELOAD,值为/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/x86_64-linux-gnu/libGL.so的环境变量,便可以顺利通过pycharm运行出结果。

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值