본문 바로가기
ROBOTICS/Simulator: Gazebo&MuJoCo

MuJoCo | MuJoCo 설치

by 누워있는말티즈 2024. 6. 19.

Mujoco(Multi-Joint Dynamics-with-Contact)는 물리적 현상을 자연스럽게 나타내는 시뮬레이터 즉 물리엔진으로 C기반으로 작성되어 있으며 최근 OpenAI가 인수하여 python-binding을 해두어 간단하게 사용할 수 있는 python package가 되었다.

오늘은 이 mujoco를 ubuntu 20.04, python 3.10.12(conda) 환경에 설치해본다.

공식 git은 아래 링크에 걸어둔다.https://github.com/openai/mujoco-py

 

GitHub - openai/mujoco-py: MuJoCo is a physics engine for detailed, efficient rigid body simulations with contacts. mujoco-py al

MuJoCo is a physics engine for detailed, efficient rigid body simulations with contacts. mujoco-py allows using MuJoCo from Python 3. - openai/mujoco-py

github.com

 

 

1. 먼저 MuJoCo 2.1의 바이너리 파일을 다운로드 받는다.

파일은 올려둔다. 이거 쓰면 된다.

mujoco210-linux-x86_64.tar.gz
4.18MB

 

2. 바이너리 파일을 설치 폴더로 옮겨야 한다.

mkdir ~/.mujoco
cd FILE_EXTRACT_PATH
mv mujoco210 ~/.mujoco/mujoco210

 

3. bashrc에 경로를 등록해준다.

# open bashrc file
vim ~/.bashrc

#copy and paste below at the end
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/minjun/.mujoco/mujoco210/bin

#ctrl+x,y 누르고 나와서
source ~/.bashrc

 

4. 이제 python3에서 실행해본다.

python3를 실행하고 `import mujoco_py`를 실행해본다. 아무 에러가 없이 컴파일 되면 성공이다.

 

4.1 에러 잡기(1)

아래와 같은 에러가 뜰 수 있다.

이건 python-binding에 의해 cython 버전이 안맞는게 문제다. cython을 버전다운시켜야 한다. 

pip3 install 'cython<3'

 

4.2 에러 잡기(2)

이런 에러도 뜰 수 있다.

이건 아래로 해결한다.

sudo apt install patchelf

 

4.3 에러 잡기(3)

나는 안떴는데 이거로 해결되는 에러도 있다.

fatal error: GL/osmesa.h: No such file or directory

 sudo apt install libosmesa6-dev

 

5.테스트

import mujoco_py
# running build_ext
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.  1.4 1.  0.  0.  0.  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)
# [-1.12164337e-05  7.29847036e-22  1.39975300e+00  9.99999999e-01
#   1.80085466e-21  4.45933954e-05 -2.70143345e-20  1.30126513e-19
#  -4.63561234e-05 -1.88020744e-20 -2.24492958e-06  4.79357124e-05
#  -6.38208396e-04 -1.61130312e-03 -1.37554006e-03  5.54173825e-05
#  -2.24492958e-06  4.79357124e-05 -6.38208396e-04 -1.61130312e-03
#  -1.37554006e-03 -5.54173825e-05 -5.73572648e-05  7.63833991e-05
#  -2.12765194e-05  5.73572648e-05 -7.63833991e-05 -2.12765194e-05]

 

주석처럼 뜨면 성공이다.

반응형

'ROBOTICS > Simulator: Gazebo&MuJoCo' 카테고리의 다른 글

Gazebo에 STL 장애물 업로드  (0) 2024.06.07

댓글