Robotics RL Setup Tutorial
2월 26일 공개된 Open AI의 robotics를 위한 environment인 FetchSlide 등을 설치하는 튜토리얼이다. 주변에 설치 과정이 조금 까다롭다고 하는 사람들이 있어서 그분들을 위해 준비해 보았다. (현재 계속 업데이트 중이다.)(Ubuntu 16.04 기준)
글을 쓰고 있는 이 시점 openai의 새 environment가 update된지 14일 정도가 지났다. 따끈따끈한 최신 버전으로 받아서 설치하도록 하자.
14일 전 공개된 robotics environment들. 아직 따끈따끈하다.
GYM 설치하기
git clone https://github.com/openai/gym.git
cd gym
pip install -e .
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
pip install -e '.[all]'
pip install 'gym[all]'
baselines 설치하기
HER 알고리즘 등을 사용하기 위해서 최신 버전으로 업데이트해보자.
git clone https://github.com/openai/baselines.git
cd baselines
pip install -e .
MuJoCo 설치하기
분명히 mjmodel.h
파일이 없다는 에러가 뜰 것이다. 그 이유는 MuJoCo는 pip로 설치하는 것이 아니고 다음의 웹사이트에서 따로 설치해야 하기 때문이다. (http://www.mujoco.org/)
이제 몇 가지 선택지가 있는데,
- 당신은 학생인가? —> 축하한다. 당신은 공짜로 사용가능하다.
- 아니면 기업 소속 연구원인가? —> 축하한다. 회사에서 라이선스를 구입해 준다면.
MuJoCo는 학생의 경우 1년 단위로 무료 라이선스를 제공한다. ac.kr 또는 다른 edu가 붙은 이메일로 메일을 보내보자. 나의 경우 회신이 오는데 삼일 정도 걸렸다.
/home/{username}/.mujoco/
디렉터리에 mjpro150
을 넣어주고, mjkey.txt
를 .mujoco/bin
에 넣어준다. 이제 bin
폴더 안에서
./simulate ../model/humanoid.xml
을 실행해보자. 작동하는가?
# export LD_LIBRARY_PATH=$HOME/.mujoco/mjpro150/bin:$LD_LIBRARY_PATH
GLEW initialization error: Missing GL version
다음과 같은 에러가 뜬다면: GLEW initalization error: Missing GL version
python에서 LD_PRELOAD
를 이용하여 미리 다른 라이브러리들을 먼저 로드하는 것이 필요할 수 있다.
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-384/libGL.so
즉 실제로는
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-384/libGL.so python -m baselines.her.experiment.train
vglrun을 쓴다면
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-384/libGL.so vglrun python -m baselines.her.experiment.train
와 같은 방법으로 해결할 수 있다.
patchelf 관련 문제
“GLEW initialization error”가 뜬다면 patchelf의 문제를 생각해 볼 수 있다. 내부적으로 patchelf의 –add-needed 옵션을 사용하게 되는데, patchelf 0.8버전에는 이 옵션이 없어 에러가 날 수 있다. NixOS PatchELF에서 받아서 컴파일하던지 해서 0.9 버전으로 받아서 다시 해보자.