강화학습 연구 실험에 많이 사용되는 시뮬레이션 중에 하나인 Mujoco-py를 설치하는 방법에 대해서 다루려고 한다.
원래 Mujoco는 python을 지원하지 않았지만 OpenAI에서 License를 구입하고 강화학습을 연구하는 사람이 편하게 사용할 수 있또록 Python Library로 만들어서 배포하였다. 하지만 설치가 쪼~~~끔 까다로우니 차근차근 따라오면 좋겠다.
설치 환경은 Ubuntu20.04이며 16.04 시리즈 이상이면 모두 정상 작동한다.
아래 링크는 설치 메뉴얼이고 각 step별로 차근차근 따라가면서 MuJoCo를 설치해 보자.
https://docs.google.com/document/d/1eBvfKoczKmImUgoGMbqypODBXmI1bD91/edit
주의할 점은 윈도우와 VM ware같은 가상 환경은 지원하지 않는다. Mac은 시험해 본 적이 없어서 잘 모르겠고 그냥 운영 체제를 리눅스로 설정하고 안전하게 사용하자.
Mujoco-py를 아나콘다 가상 환경에 넣을 것이기 때문에 Linux로 Anaconda를 설치한다. 이건 뭐 쉬우니 더 설명은 하지 않도록 하겠다.
Anaconda를 다 설치했다면 MuJoCo를 담을 Conda Virtual 환경을 하나 만들자. 그거 만드는 방법은 따로 설명하지 않을 것이므로 모르는 사람은 검색을 통해 배워 오자. (엄청 쉬우니 겁먹지 마시길 )
https://mujoco.org/download/mujoco210-linux-x86_64.tar.gz
이 주소를 입력해 MuJoCo 압축 파일을 받아 오자
terminal를 켜고 mkdir/home/username/.mujoco 를 입력해 mujoco 파일을 담을 Hidden Folder를 하나 만들자. Hidden folder가 보이지 않는 사람은
파일 홈에 들어간 후 숨긴 파일 표시를 누르면 숨겨진 .mujoco 파일을 발견할 수 있다.
아까 다운 받았던 Mujoco 압축 파일을 .mujoco에 압축 해제하자.
이렇게 압축 해제를 완료했다면 우선 첫 단계는 성공적으로 완료하였다.
이 부분이 MuJoCo 설치에서 제일 많이 에러가 나는 부분이고 여기에서 문제가 없으면 거의 다 설치했다고 보면 된다. 딱 정신을 차리도록 하자
우선 파일/홈으로 들어가서
.bashrc 파일을 클릭해 들어가자 그리고 쭉 내려서
conda initialize위와 enable programmable completion 사이에
export LD_LIBRARY_PATH=/home/user_name/.mujoco/mujoco210/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia
export PATH="$LD_LIBRARY_PATH:$PATH"
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
이걸 전체 복사해서 붙여넣기 하자. 여기서 use_name은 본인의 우분투 username을 입력해야 한다.
자 보통은 이러면 무조건 에러가 난다. 왜?? 대부분의 컴퓨터에 libGLEW가 없을 것이기 때문이다.
이유는 두 가지다.
첫 번째 이유 : Nvidia Driver와 Cuda가 없다.
이런 경우는 검색을 해서 자신의 그래픽 카드에 맞는 Nvidia Driver와 Cuda를 설치하고 오자.
두 번째 이유: Nividia Driver와 Cuda는 설치가 되었지만 libGLEW가 설치되지 않아 preload가 잡히지 않는 경우다.
대부분 두 번째 이유로 MuJoCo-py가 실행되지 않을 것이다. 이때는 LibGLEW.so를 설치해주고 LD_PRELOAD에 해당 경로를 지정해주면 된다.
$ sudo apt install libglew-dev libgl-dev
terminal에서 위 명령어를 입력하고 LibGLEW.so를 다운 받자. 그리고
$ echo LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGL.so:/usr/lib/x86_64-linux-gnu/libGLEW.so를 입력해 해당 경로를 지정해 주자.
이제 Terminal를 켜고 source .bashrc를 입력해서 저렇게 문제없으면 제대로 설치하였다. 만약 제대로 되지 않았다면 4번 과정에서 문제가 발생했을 가능성이 높으니 다시 차근차근 설치해 보길 바란다.
이제 Mujoco-py를 담으려고 만들었던 가상 환경에 들어가서 명령어를 하나하나 입력하자
conda create --name mujoco_py python=3.8
conda activate mujoco_py
sudo apt update
sudo apt-get install patchelf
sudo apt-get install python3-dev build-essential libssl-dev libffi-dev libxml2-dev
sudo apt-get install libxslt1-dev zlib1g-dev libglew1.5 libglew-dev python3-pip
git clone https://github.com/openai/mujoco-py
cd mujoco-py
pip install -r requirements.txt
pip install -r requirements.dev.txt
pip3 install -e . --no-cache
끄고 다시 켜자
conda activate mujoco_py
sudo apt install libosmesa6-dev libgl1-mesa-glx libglfw3
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so
pip3 install -U 'mujoco-py<2.2,>=2.1'
cd examples
python3 setting_state.py
최종적으로 이게 나온다면 Mujoco-py를 제대로 설치한 것이다.
https://github.com/pranz24/pytorch-soft-actor-critic
이 사이트를 이용해서 MuJoCo를 직접 실행해보길 바란다.