【CANN训练营机器狗系列】体验rl-robotics实例
实例介绍
一种基于学习的四足机器人运动控制器,可部署在华为Atlas 200I DK A2上。它包括Unitree A1和DeepRobotics Lite3上模拟到真实开发所需的所有组件。
实例代码仓地址
https://gitee.com/HUAWEI-ASCEND/quadruped-robot/tree/master/rl-robotics
实验环境
Ubuntu:20.04
Torch版本:1.10
Python版本:3.8
CUDA:11.4
GPU:Nvida T4 14G
准备实验环境
git clone 实验代码仓
git clone https://gitee.com/HUAWEI-ASCEND/quadruped-robot
安装pytorch
pip3 install torch==1.10.0 torchvision==0.11.1 torchaudio==0.10.0 -f https://download.pytorch.org/whl/cu114/torch_stable.html
注:如果使用GPU环境,需要根据实际的CUDA版本去官网找寻对应版本的安装包安装,如果是其他版本的cuda将cu114替换成需要的版本即可
安装环境依赖
sudo apt install libyaml-cpp-dev libeigen3-dev liblcm-dev libglm-dev
安装依赖库
pip3 install transformations matplotlib gym tensorboard cupy
下载Isaac_GYM
官网下载地址:https://developer.nvidia.com/isaac-gym/download
注:需要注册nvidia并成为会员,整个过程不需要付费
下载后解压放到实验代码仓quadruped-robot/rl-robotics
目录下
安装Isaac_GYM
cd isaacgym/python
pip install -e .
安装rsl_rl包
rsl_rl包位于代码仓目录下rl-robotics/rsl_rl文件夹内
cd rsl_rl
pip install -e .
安装legged_gym包
legged_gym包位于代码仓目录下rl-robotics/legged_gym文件夹内
cd legged_gym
pip install -e .
下载预训练模型
下载预训练模型放到项目目录下的legged_gym/logs/rough_a1/pre-trained 文件夹中和legged_gym/logs/rough_lite3/pre-trained
A1目录中的下载命令:
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Atlas%20200I%20DK%20A2/DevKit/models/23.0.RC1/cann/A1_deploy.om -O legged_gym/logs/rough_a1/pre-trained/A1_deploy.om
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Atlas%20200I%20DK%20A2/DevKit/models/23.0.RC1/cann/A1.pt -O legged_gym/logs/rough_a1/pre-trained/A1.pt
LITE3的下载命令
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Atlas%20200I%20DK%20A2/DevKit/models/23.0.RC1/cann/Lite3.pt -O legged_gym/logs/rough_lite3/pre-trained/Lite3.pt
编译SDK
# Unitree A1
cd ./legged_gym/legged_gym/envs/a1/a1_real/unitree_legged_sdk
# After entering the SDK directory, compile the code
mkdir build && cd build
cmake .. && make
cp *.so ../../
# DeepRobotics Lite3
cd ./legged_gym/legged_gym/envs/lite3/lite3_real/deeprobotics_legged_sdk
# After entering the SDK directory, compile the code
mkdir build && cd build
cmake .. && make
cp *.so ../../
Run controller in the simulation
python3 legged_gym/legged_gym/scripts/play.py --task a1 --rl_device cuda:0 --sim_device cuda:0 --load_run ${model_dir} --checkpoint ${model_name}
例如:
python3 legged_gym/legged_gym/scripts/play.py --task a1 --rl_device cuda:0 --sim_device cuda:0 --load_run /home/jeffding/quadruped-robot/rl-robotics/legged_gym/logs/rough_a1/pre-trained --checkpoint A1.pt
运行效果图:
Train policy in the simulation
python3 legged_gym/legged_gym/scripts/train.py --task a1 --rl_device cuda:0 --sim_device cuda:0
运行效果图:
**注:如果在CPU环境运行需要将上两段命令中cuda:0
替换成cpu
,另外T4 16G的显卡可能不能训练,会爆内存,可以考虑添加--headless
不开启GUI训练,可能对显存占用会好一点
附录
整个编译过程中会遇到一些库报错,把解决的步骤记录在这一块
Boost库安装
编译SDK的过程中有概率提示BOOST库头文件找不到,这时候需要安装boost库
sudo apt-get install libboost-all-dev
安装Eigen3
sudo apt install libeigen3-dev
安装ninja
sudo apt install ninja-build
安装numpy
pip install -U numpy==1.23.5
安装inputs库
pip install inputs backports.weakref backports.cached_property filterpy
计算卡相关
使用类似于T4 V100这类计算有可能会出现play模式加载不出图像,一直处于黑屏模式,这需要安装计算卡GUDI驱动。
如果使用华为ECS的话可以按一下步骤操作
创建的时候再选择完操作系统的时候勾选上自动安装驱动,并且选择带GRID的驱动。
这个操作可以自动安装GRID驱动,但是这样以来就不会自动安装cudnn。
解决方法:
- 找到CUDA的目录,然后将CUDNN相关的LIBRARY和LIB复制过去
- 下载对应版本的 CUDA TOOLKIT,建议使用
nvida-smi
命令先查看一下现在系统的CUDA版本。然后在安装的时候不要勾选驱动,就勾选一个toolkit就可以了。然后安装cudnn的时候直接复制到/usr/local/[cuda版本]
目录下
cuda及cudnn的安装可以参考博客:
- 点赞
- 收藏
- 关注作者
评论(0)