运行OSU双足步行机器人 Cassie 早期实施的用强化学习算法使其站立的源码,由于时间较久,按照github上的说明运行有些错误,故根据自己的实现步骤重新记录
源码地址:
https://github.com/CassieRL/cassierl
运行环境:
Ubuntu18.04
Anaconda3 python3.6
1、下载主仓库和第三方仓库
git clone https://github.com/CassieRL/cassierl.git
git clone https://github.com/CassieRL/ThirdParty.git
2、创建一个文件夹作为工作空间,将步骤1下载的两个仓库放置到工作空间中
3、第三方库配置
1)设置工作空间路径
sudo gedit ~/bashrc
#将下面这行放入.bashrc文件最后
export workspacePath=/path/to/ThirdParty/parentDir #“=”后面的路径改为工作空间的绝对路径
#保存后运行下面命令
source ~/.bashrc
2)Add eigen symlink
sudo ln -s /path/to/ThirdParty/eigen /usr/local/include/eigen #eigen路径设置为自己的路径
3)Build rbdl
cd rbdl
rm -rf build
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release ../
make
4)Build qpOASES
cd qpOASES
make clean; make
4、添加工作空间路径
修改cassierl/src/Cassie2d/FilePath.h
文件中的两个值
MUJOCO_LICENSE_PATH = mjkey.txt的路径
XML_FILE_PATH = cassie2d_stiff.xml所在路径
5、在cassierl文件夹中输入以下命令进行编译
cd src
make clean
make
6、建立一个anaconda的虚拟环境
原仓库中的python3.5.2版本无法安装,因此选用了python3.6版本,最后也可以实现
7、实现上下蹲运动
在刚建立的虚拟环境中运行以下命令,缺少什么就安装什么,如果成功会出现cassie上下蹲的运动画面
cd ../rllab/envs
python3 squatting.py
可能出现的缺失包的安装命令:
theano:pip3 install theano
path:pip3 install path.py
cached_property:pip3 install cached_property
如果没有rllab模块,cd到工作空间(cassierl文件夹同级目录),再运行以下命令:
git clone https://github.com/rll/rllab.git
cd rllab
sudo python3 setup.py install
注意:使用虚拟环境运行时命令前不要加sudo,不然会给系统自带的python安装对应的库,此时依旧会报没有该包的错
如果还有其他的包缺失可以去https://anaconda.org查找对应的安装命令,或者自行百度用其他方法安装
8、安装一些其他的工具来运行RL算法
1)将rllab添加到python包中
cd rllab
python setup.py install
sudo ./scripts/setup_linux.sh
2)上面的命令将rllab里面的scripts
和rllab
文件夹复制到 Python 包内的文件夹中
xxx/anaconda3/envs/envName/lib/python3.6/site-packages/rllab-0.1.0-py3.6.egg #你所创建的虚拟环境包的存放路径
3)删除文件中的语法错误
sudo gedit xxx/anaconda3/envs/envName/lib/python3.6/site-packages/rllab-0.1.0-py3.5.egg/rllab/misc/instrument.py
删除972行config.AWS_EXTRA_CONFIGS
后面模块的代码
4)cd回cassierl文件夹,之后运行
cd rllab/envs
5)在刚刚的虚拟环境中运行
python trpo_cassie.py
如果出现:建议你在 rllab 中编辑你的个人配置文件,则运行下面命令给予权限后再运行上面的命令
sudo chmod +x xxx/anaconda3/envs/envName/lib/python3.6/site-packages/rllab-0.1.0-py3.6.egg/rllab/config_personal.py
6)如果运行成功则会出现训练界面和迭代次数
7)按ctrl+c
可以终止训练,数据保存在rallab库的data文件中(不是cassierl文件夹中用于安装模块的存储库,而是虚拟环境包中的rllab文件夹中)
需要多少次迭代?
请注意,首先 Cassie 会摔倒在地。经过大约 200 次或更多次的迭代,她将能够不侧身摔倒。仔细观察,你会看到她会在垂直于地面的上下方向上摔倒。这是进步。
然而,Yathartha 说 Cassie 至少需要 1000 到 1500 次迭代才能掌握如何站立。她最终会倒下,但她的站立会持续更长时间。
doc文件夹中有相关的原理的说明