[22.6.25 수정] 최근 Google Deepmind에서 Mujoco를 인수하여 무료로 배포하였고 몇달이 지난 지금 기대했던대로 python 바인딩을 해주었다. 이에 맞게 포스팅을 업데이트하였다. (이전 설치방법들은 포스팅의 아래쪽에 그대로 있음) 

 

현재 집필중인 meta-learning 도서의 코드 마무리를 위해, 윈도우, 리눅스, 맥 모두에서 알고리즘들이 잘 동작하는지 테스트 하던 중, 몇달 사이 딥마인드에서 mujoco의 python binding을 해두었단 사실을 알게되었다.

항상 mujoco-py 때문에 번거로웠는데 이젠 라이센스조차 필요없이 심플하게 사용가능한 python 패키지가 되었다.

 

 1. OpenAI gym & MuJoCo 설치

pip install gym==0.24.1
pip install mujoco==2.2.0

(윈도우)

윈도우는 다음 패키지를 추가로 설치해준다.

pip install imageio>=2.1.2

 

2. mujoco 패키지 설치 확인

프롬프트에서 python을 입력해 python을 실행 한 후, 아래 코드를 실행시킨다.

import random
from gym.envs.mujoco.half_cheetah_v4 import HalfCheetahEnv
env = HalfCheetahEnv()

for _ in range(100):
	env.render()
	action = [random.randint(0,1) for _ in range(env.action_space.shape[0])]
	_, _, _, _ = env.step(action)

env.close()

 

잘 설치가 되었으면, 랜덤하게 생성된 action에 의해 100step 동안 치타가 꿈틀거리는것을 볼 수 있다.

 

 

 


아래는 예전 포스팅

2년쯤 전에 어떻게 설치해서 사용하던 MuJoCo인데 최근 새로나온 Meta RL 알고리즘을 구현 해보고자 실행하니 사용기한이 만료됐다고 하여 새로 설치를 해야했다. 작년엔 연구실에서 만든 가상환자 gym 환경을 써온터라 잊고 있었는데 mujoco student licence는 1년마다 갱신을 해줘야 한다. 사실 DQN A2C 가 나올 시기만 해도 cartpole이나 간단한 Atari 환경에서 알고리즘 테스트가 주로 이루어졌다면, 불과 1~2년 사이에 RL이 크게 발전해서 이젠 복잡한 3D 환경에서의 알고리즘 검증이 필수가 되고 있다.

 

[21.12.02 수정] 최근 Google Deepmind에서 Mujoco를 인수하여 무료로 배포하였고 이에 맞게 포스팅을 업데이트하였다. (이전 설치방법은 포스팅의 아래쪽에 그대로 있음) 

 

1. 무료 라이센스 발급

https://www.roboti.us/license.html에 접속해서 파란색 Activation key 링크를 눌러 무료 라이센스파일 'mjkey.txt'를 다운 받는다

 

License

Free license DeepMind has granted Roboti LLC license to provide an unlocked activation key for legacy versions of MuJoCo (2.0 and earlier). This key is available to everyone on the terms of the free license below. It expires on October 18, 2031. Activation

www.roboti.us

 

2. MuJoCo 다운로드

이번엔 https://mujoco.org/download 이 링크로 들어가 파란색 Windows 버튼을 눌러 MuJoCo 파일을 다운받는다.

 

MuJoCo — Download

Free, unrestricted, precompiled binaries are available under the Apache 2.0 license. The latest version of MuJoCo is 2.1.0. Binaries for platforms other than x86-64 are not yet available. If you require these, please let us know by filing an issue on GitHu

mujoco.org

 

3. MuJoCo 엔진 설치

받은 파일의 압축을 풀면 mujoco210이란 폴더가 생긴다. 이 폴더를 C:\Users\[본인계정] 에 ".mujoco" 란 새폴더를 만들고 그 안에다 옮긴다. 다운받은 무료라이센스 키 mjkey.txt 를 C:\Users\[본인계정]\.mujoco 에 옮긴다.

 

잘 설치 됐는지, 그리고 라이센스가 정확한지를 확인하기 위해 프롬프트에서 해당폴더로 이동하여

C:\Users\[본인계정]\.mujoco\mujoco210\bin> simulate ../model/humanoid.xml

를 실행해본다. 설치가 잘 됐으면 MuJoCo 실행과 함께 힘없이 쓰러지는 humanoid를 볼 수 있다.

 

4. mujoco-py 설치

MuJoCo를 python에서 실행하려면 OpenAI에서 만든 mujoco-py를 설치해주어야 한다.

우선 프롬프트 창에 SET PATH=C:\Users\[본인계정]\.mujoco\mujoco210\bin;%PATH%; 를 입력해 path를 설정해준다.

프롬프트 창에서 pip install mujoco-py를 입력해 설치한다.

 

4. mujoco-py 동작 확인

프롬프트에서 python을 입력해 python을 실행 한 후, 아래 코드를 한줄 씩 실행시킨다.

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]

잘 설치가 되었으면, 위와같이 전부 0이던 휴머노이드의 state가 sim.step() 이 후엔 바껴있는것을 확인가능하다. 

 


아래는 더 예전 포스팅

1. 무료 라이센스 발급

https://www.roboti.us/license.html에 접속해서 MuJoCo Personal License:1 year의 파란색 창에 개인 정보를 입력하고 license를 요청한다.

 

MuJoCo

License types:     Trial     Personal     Institutional MuJoCo Trial License: 30 days We invite you to register for a free trial of MuJoCo. Trials are limited to one per user per year. After registration you will receive an email with your activation key a

www.roboti.us

그럼 하루 안에 personal account가 메일로 발급된다.

이를 가지고 다시 위 링크에 접속해 MuJoCo Personal License:1 year의 빨간색 창에 발급된 account number와 computer id를 입력하며 register computer를 클릭해 본인의 컴퓨터를 등록한다. computer id는 빨간색 창에서 win64 를 클릭해 프로그램을 다운받아 실행하면 알 수 있다.

 

그럼 메일로 라이센스 파일인 mjkey.txt 가 바로 발급된다. (1년짜리 이므로 발급일을 대충 기억해 두자)

 

2. MuJoCo 다운로드

이번엔 https://www.roboti.us/index.html 이 링크로 들어가 빨간색의 MuJoCo 창에서 mjpro 150 win64를 다운받는다.

 

MuJoCo

MuJoCo 2.0 was released on October 1, 2018. The list of changes is below. MuJoCo    (formerly MuJoCo Pro) MuJoCo is a dynamic library with C/C++ API. It is intended for researchers and developers with computational background. It includes an XML parser, mo

www.roboti.us

2.0.0의 최신 버전도 있지만, 아쉽게도 MuJoCo는 더이상 윈도우를 지원 안해 1.5.0 를 받아야 한다. (사용엔 큰 문제 없다.)

 

3. MuJoCo 엔진 설치

받을 파일의 압축을 풀면 mjpro150이란 폴더가 생긴다. 이 폴더를 C:\Users\[본인계정] 에 ".mujoco" 란 새폴더를 만들고 그 안에다 옮긴다. 또한 메일로 발급받은 mjkey.txt 를 C:\Users\[본인계정]\.mujoco\mjpro150\bin 안에다 옮긴다.

그리고 C:\Users\[본인계정]\.mujoco 에도 복사한다.

 

잘 설치 됐는지, 그리고 라이센스가 정확한지를 확인하기 위해 프롬프트에서

C:\Users\[본인계정]\.mujoco\mjpro150\bin> simulate ../model/humanoid.xml

를 실행해본다. 설치가 잘 됐으면 힘없이 쓰러지는 humanoid를 볼 수 있다.

 

4. MuJoCo-py 설치

프롬프트 창에 SET PATH=C:\Users\[본인계정]\.mujoco\mjpro150\bin;%PATH%; 를 입력해 path를 설정해준다.

https://github.com/openai/mujoco-py/archive/1.50.1.0.zip 이 링크에서 설치 파일을 받아 C:\Users\[본인계정]\.mujoco 에 압축을 풀어준다. 설치를 위해 프롬프트에서

C:\Users\[본인계정]\.mujoco\mujoco-py-1.50.1.0> python setup.py install

을 실행해 설치를 마무리 한다.

 

4. MuJoCo-py 동작 확인

프롬프트에서

C:\Users\[본인계정]\.mujoco\mujoco-py-1.50.1.0> python examples\body_interaction.py

을 실행해 mujoco 화면이 정상적으로 팝업되는지를 확인한다.

 

 

+ Recent posts