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,具体的后面再谈。
宇树机器人
宇树科技的文档中心有一个简单的安装文档,基本上照着写就行,会遇到一个小问题。
问题与解决
- 在第三步“安装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版本
- 在完成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
加入这个配置后成功运行。
-
修改路径时不需要最后的legged_gym
-
no tensorboard
pip install tensorboard
- 遇到了问题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对应某个计算能力(架构),有个地方有个数值要改成和显卡对应的。正常按照上面操作配置不会出这种问题。
至此,所有问题都得到解决