本人針對鏟運機的自主鏟裝問題,基於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