Ubuntu22.04下Issac Gym/宇树机器人RL

前置条件

本随笔写作Condition:在本人3050Ti笔记本上配好环境后,再在室友4060笔记本上边配边记录整理所得。

室友的系统已经配好了相应驱动,因此,本随笔内容基于已经安装了NVIDIA显卡驱动的系统。下次搞到没装驱动的系统我再补一个随笔。

在已经安装驱动的电脑上执行

nvidia-smi

可以在右上角看到 CUDA:

这个数字表示驱动所支持的最大CUDA版本,小于它的都能兼容。所以在pytorch官网选择CUDA 12.1不是指这个num=12.1,而是说pytorch相当于在12.1版本的CUDA上运行,所以只有num>=12.1才能正常运行

并且,这个CUDA 12.1并不意味着你需要安装CUDA 12.1,也不意味着你安装了CUDA 12.1,具体的后面再谈。

宇树机器人

宇树科技的文档中心有一个简单的安装文档,基本上照着写就行,会遇到一个小问题。

问题与解决

  1. 在第三步“安装CUDA,PYTORCH”那个指令并不一定能正确安装,并且在安装的时候可以指定numpy=1.23.5(否则numpy版本过高会导致后续运行失败)。建议在pytorch官网根据自己驱动去安装。

比如我的CUDA num 支持到12.2,则我可以使用如下指令之一

第一个

conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

第二个

conda install numpy=1.23.5 pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

第二个比第一个多指定了numpy的版本,一般使用第二个就可以了,否则待会还是需要降低numpy版本

  1. 在完成Issac Gym库的安装后,会提示 "Libpython3.8.so.1.0" 不存在

问题解答参考于stackoverflow的第一个回答

简单的来说就是因为Issac Gym需要调用的python库是在conda环境里面,但是Issac Gym默认调用系统的python库所以报错

解决方式就是把conda环境下的这个文件放到系统的路径下,示例如下

sudo cp ~/anaconda3/envs/rl-go2/lib/libpython3.8.so.1.0 /usr/lib/

这里我室友的电脑不知为啥寄了(有窗口但无响应),我去给他重启但无效。

根据另一篇博客的说明,应该是他开了华硕的独显模式,导致不使用集显,从而设备选择错误。但是实际上他的电脑并没有那个博客所指出的文件。而是在这个路径下

export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json

加入这个配置后成功运行。

  1. 修改路径时不需要最后的legged_gym

  2. no tensorboard

pip install tensorboard
  1. 遇到了问题too many values to unpack (expected 2)

这是由于官方文档get到的rsl库的版本不正确,最新的版本不兼容,需要重新安装

卸载旧版本

pip uninstall rsl_rl

在rsl_rl目录下

git checkout v1.0.2
pip install -e .

6: no module attribute

解决方式:降低setup tools 的版本,到59.3左右

6: 曾经出现过,解决过,但无法复现,无法会议解决方案的

invalid-value for --gpu-architecture

只记得每个型号的GPU对应某个计算能力(架构),有个地方有个数值要改成和显卡对应的。正常按照上面操作配置不会出这种问题。

至此,所有问题都得到解决

posted @ 2024-03-28 21:25  千陌  阅读(612)  评论(0编辑  收藏  举报