相信大家都是因为自己老师的要求,过来学习Raisim,或者之前也已经尝试过一些别的项目(issac,gazebo,webots)之类的。
首先,我想说一下,为什么要使用Raisim
C++
+Python
,这个软件对python
还是比较友好的,但是为了提高你的使用体验,你需要有一定的C++
基础,尤其是强化学习部分,你需要自己动手修改Environment.hpp
如果不太理解C++
的面对对象的概念,以及一些STL
的基本结构(iterator
之类的),使用起来会有一些难度Linux, Win, Mac
友好。目前为止我只尝试了win
和linux
,这两个系统的支持度还都是挺好的,尤其是linux
,对视频的录制很好用,不需要一直盯着屏幕。- 强化学习很快,由于代码完全开放,相较于
Unity
而言,你的自由度更高,你可以很轻松的添加你自己的东西。
其次,我说一下本版本相较于作者的原版本的区别
- 添加了更详细的
log
系统,在gym
文件夹的helper
里添加了logging
系统,使用起来能够在对应的saver.dir
中生成名为train.log
的文件,方便后期查询自己的日志 - 训练过程中自动保存最优的模型,后期会修改把之前的弱鸡模型给删除
- 完善了
runner.py --mode test
模块,在gymtorch
文件夹中,你的runner
可以直接通过运行python yourfilepath(imply it use your path)/runner.py --mode test --weight yourweightpath
在unity
等渲染引擎中展示你的模型
fork
本repo
到你个人的github
中(右上角有一个fork
按钮)- 在你自己的
fork
版本中,选择code
按钮,复制https
链接 - 在你本地打开
powershell
(windows)或者是base/zsh
(linux),然后git clone your-repo-http
(不清楚的自行google
) - 切换到你的目标位置,通常是
raisimLib
编译是C/C++
在执行之前都需要进行的事情,简单来说,就是把做饭需要的菜都放到桌子上,具体执行方式如下
我下边只列出来你需要安装的软件,如果有不会的请自行google
cmake
Eigen
(C++
需要用到)- 编译器
- Linux:
gnu
- Windows:
Visual Studio
(注意不要安装错误了,是紫色的VS,不是蓝色的VSC)
- Linux:
自行google
: 如何将路径添加到环境变量
自行google
: 如何将路径添加到Linux
路径
-
cmake
:添加的路径下需要有cmake.exe
文件 -
eigen
:添加的路径需要有Dense.hpp
文件 -
WORKSPACE
:这个变量指向的是RaisimLib
的位置,这个路径在windows中需要单独列出来,在环境变量中直接新建,而不是通过path
建立 -
LOCAL_INSTALL
:这个变量指向的是你希望在那里部署你的库文件, 建议直接在raisimLib
下新建文件夹,命名为raisim_build
,然后指向这个位置即可
- 让你的终端切换到
raisimlib
文件夹 - 创建
build
文件夹,并切换进去 - 参考官方文档的建议,运行对应的命令,如果你不想编译
python
,就把-DRAISIM_PY=ON
删掉(他的python
好像作者自己都不喜欢用)
- 点这里申请你的激活文件
- 写自己的信息
- 通过提供的
google drive
获取软件,读取你的机器码 - 将机器码复制进去,然后申请
license
就可以了(他们会给你的邮箱发一个activation.raisim
)
- 在你的根目录(
linux
就是~/
,windows
是c:users/xxx(你的账户)/
),创建一个文件夹,命名为.raisim
,将activation.raisim
复制进去即可。
生成的example
就在你创建的build
文件夹下,进去就可以找到类似alingo
之类的二进制文件,你需要通过chmod +X ./alingo
运行即可
如果你是通过VS建立的项目,这个路径通常在RasimLib/raisim/win32/bin
里,会有一大堆的exe
,点击运行即可
如果你是要学习RaisimGymTorch
进行强化学习,那就需要理解以下几个基本概念
setup.py
(raisimlib/raisimgymtorch/
) 对所有的环境进行编译,生成在python中可以使用的库Environment.hpp
这个文件定义了你的机器人与环境作用的方式- 执行你的
action
- 计算
reward
- 更新
observation
- 执行你的
runner.py
这个文件是你的python
的主框架- 记录
log
- 更新
observation
- 记录
state-action
对 对应函数为ppo.step
ppo
计算 对应的函数是ppo.act
- 生成
action
- 更新
model
- 记录
cfg.yaml
定义超参数num_envs
:子空间的数量(开多空间)eval_per_iters
:执行多少个iters
之后会记录并展示
有问题发Issue
,觉得ok的话,点一个star
,tks!