【CANN训练营机器狗系列】体验rl-robotics实例

举报
JeffDing 发表于 2023/06/13 15:06:33 2023/06/13
【摘要】 体验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

运行效果图:
issgym.png

Train policy in the simulation

python3 legged_gym/legged_gym/scripts/train.py --task a1 --rl_device cuda:0 --sim_device cuda:0

运行效果图:
issgym_train.png

**注:如果在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的驱动。
image.png

这个操作可以自动安装GRID驱动,但是这样以来就不会自动安装cudnn。

解决方法:

  1. 找到CUDA的目录,然后将CUDNN相关的LIBRARY和LIB复制过去
  2. 下载对应版本的 CUDA TOOLKIT,建议使用nvida-smi命令先查看一下现在系统的CUDA版本。然后在安装的时候不要勾选驱动,就勾选一个toolkit就可以了。然后安装cudnn的时候直接复制到/usr/local/[cuda版本]目录下

cuda及cudnn的安装可以参考博客:

https://bbs.huaweicloud.com/blogs/401791

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。