本人针对铲运机的自主铲装问题,基于OpenAI gym开发了一个强化学习环境gym-lhd。其系统环境大致要求为:
- 系统 == Ubuntu18.04LTS 下载
- Anaconda(python == 3.6) 官网
- GCC:5.0 安装
- mujoco == 200官网
- mujoco-py == 2.0.2.9安装
- gym == 0.15.3安装
- 其他:'pandas','py-game','matplotlib'
本文以此为例,记录整个安装过程以供参考。
Anaconda
- 官网下载安装脚本
- 打开终端,进入脚本保存的目录(如
Downloads
) - 在该目录下运行安装脚本,按提示进行安装(多用
Tab
自动补全) - 重启终端生效
cd Downloads/
bash Anaconda3-2021.05-Linux-x86_64.sh
- 创建名为drl(自定)的python3.6环境,并激活环境
conda create -n drl python=3.6 anaconda
conda activate drl
GCC
可以参考这篇博客进行gcc多版本的控制,相信你会用得上
mujoco (开源啦!)
如何获得Computer id
?
下载申请页面提供的程序,打开终端并进入该目录cd Downloads/
,修改权限sudo chmod a+x getid_linux
,运行./getid_linux
- 安装
mujoco200及之前的版本:到Roboti LLC下载,并且提供了免费密钥下载
mujoco210及之后的版本[以下称为“开源版本”]:到原mujoco官网下载,不需要密钥
打开终端,将文件解压并复制到新建目录.mujoco/
下(以mujoco200为例)
mkdir ~/.mujoco
cp mujoco200.zip ~/.mujoco
cd ~/.mujoco
unzip mujoco200.zip
(开源版本忽略)将下载的mjkey.txt
,复制到.mujoco/
中
cp ~/Downloads/mjkey.txt ~/.mujoco
cp ~/Downloads/mjkey.txt ~/.mujoco/mujoco200/bin
- 添加环境变量
sudo echo "export LD_LIBRARY_PATH=~/.mujoco/mujoco200/bin:$LD_LIBRARY_PATH" >> ~/.bashrc
sudo echo "export MUJOCO_KEY_PATH=~/.mujoco:$MUJOCO_KEY_PATH" >> ~/.bashrc #开源版本忽略本条命令
source ~/.bashrc
测试
cd ~/.mujoco/mujoco200/bin/
./simulate ../model/humanoid.xml
mujoco-py
最简单的当然是用PIPpip install mujoco-py==2.0.2.9
。这里主要介绍从源码安装:
cd ~/
git clone https://github.com/openai/mujoco-py.git
#由于openai已经停止维护mujoco-py,开源版本需要使用新地址:git@github.com:nimrod-gileadi/mujoco-py.git
cd nujoco-py/
sudo apt-get update
sudo apt-get install libgl1-mesa-dev libgl1-mesa-glx libosmesa6-dev
python3-pip python3-numpy python3-scipy
pip3 install -r requirements.txt
sudo apt-get install patchelf
sudo apt-get install libglu1-mesa-dev mesa-common-dev
sudo echo "export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:$LD_PRELOAD" >> ~/.bashrc
conda activate drl
sudo python3 setup.py install
测试
python3
import mujoco_py
import os
mj_path, _ = mujoco_py.utils.discover_mujoco()
xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
model = mujoco_py.load_model_from_path(xml_path)
sim = mujoco_py.MjSim(model)
print(sim.data.qpos)
# [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
sim.step()
print(sim.data.qpos)
# [-2.09531783e-19 2.72130735e-05 6.14480786e-22 -3.45474715e-06
# 7.42993721e-06 -1.40711141e-04 -3.04253586e-04 -2.07559344e-04
# 8.50646247e-05 -3.45474715e-06 7.42993721e-06 -1.40711141e-04
# -3.04253586e-04 -2.07559344e-04 -8.50646247e-05 1.11317030e-04
# -7.03465386e-05 -2.22862221e-05 -1.11317030e-04 7.03465386e-05
# -2.22862221e-05]
gym
最简单的当然是用PIPpip install gym==0.15.3
。这里主要介绍从源码安装:
cd ~/
git clone https://github.com/openai/gym.git
cd gym/
git checkout 0.15.3
apt-get install -y python-numpy python-dev cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python-opengl libboost-all-dev libsdl2-dev swig Pillow libglfw3-dev
pip install -e '.[all]'
测试
pytest