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
1. 먼저 MuJoCo 2.1의 바이너리 파일을 다운로드 받는다.
파일은 올려둔다. 이거 쓰면 된다.
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 |
---|
댓글