작성자 : 김한결 / 석박통합과정 (gksruf621@postech.ac.kr)
MJCF에 대해 친절하게 다룬 글이 아닙니다. 대충 어떤 흐름으로 개발 하는지만 살펴주세요.
최종 목표: 나만의 Manipulator task를 mujoco에서 만들자
Baxter를 Mujoco 환경에서 사용해보고자 하는데 XML 파일을 mujoco로 simulator로 실행해보니 control이 되지 않는다. (만들어진 것만 쓴 폐해...)
MJCF와 mujoco environment에 대한 이해가 필요하다고 생각해 처음부터 차근차근 공부한다 생각하며 기록을 남기려고 한다.(robotsuite를 사용하는 방법도 있지만 최대한 library dependency를 줄이고자 한다)
이번글은 다음 영상을 축약한 내용이다.
https://www.youtube.com/watch?v=j1nCeqtfySQ
준비 사항 : mujoco 설치
1. 디렉토리 이동 : /home/[컴퓨터 이름]/.mujoco/mujoco200/bin
2. 명령어 입력 : ./simulate
- 아래와 같은 화면이 켜짐
3. xml file 만들기(아래 코드 복붙해서 만드시면 됩니다)
<mujoco>
<worldbody>
<light diffuse=".5 .5 .5" pos="0 0 3" dir="0 0 -1"/>
<geom type="plane" size="1 1 0.1" rgba=".9 0 0 1"/>
<body pos="0 0 1">
<joint type="free"/>
<geom type="box" size=".1 .2 .3" rgba="0 .9 0 1"/>
</body>
</worldbody>
</mujoco>
Joint="free" ->6DOF
geom type="box" -> 박스모양
참고로 plane은 size z축의 영향을 받지 않음
4. 3번에서 만든 xml을 2번에서 켜진 화면에 드래그앤드랍
5. XML reference document에서 추가할 수 있는것 테스트하기
예를들어 orientation을 바꾸고 싶다면 document에서 해당 부분을 찾은 후 적용해주자
<body pos="0 0 10" euler = "0 30 0">
위와 같이 해주면 30도 기울어진 상태에서 시뮬레이터가 실행된다.
mujoco는 angle defalut를 degree로 잡고 있는데 compiler를 radian로 바꿔주면 된다.
<mujoco>
<compiler angle="radian"/>
<worldbody>
<light diffuse=".5 .5 .5" pos="0 0 3" dir="0 0 -1"/>
<geom type="plane" size="1 1 0.1" rgba=".0 0.9 0 1"/>
<body pos="0 0 1" euler = "0 -0.5 0">
<joint type="free"/>
<geom type="box" size=".1 .2 .3" rgba="0.9 .0 0 1"/>
</body>
</worldbody>
</mujoco>
여러가지 추가
<mujoco>
<compiler angle="radian"/>
<visual>
<headlight ambient="0.5 0.5 0.5"/>
</visual>
<asset>
<material name="white" rgba="1 1 1 1"/>
</asset>
<option gravity="0 0 -1"/>
<worldbody>
<light diffuse=".5 .5 .5" pos="0 0 3" dir="0 0 -1"/>
<geom type="plane" size="1 1 0.1" rgba=".0 0.9 0 1"/>
<!--Object 1-->
<body pos="0 0 1" euler = "0 -0.5 0">
<joint type="free"/>
<inertial pos="0 0 0.3" mass="1" diaginertia="0.01 0.01 0.01"/>
<!--geom type="box" size=".1 .2 .3" rgba="0.9 .0 0 1"/-->
<geom type="box" size=".1 .2 .3" material="white"/>
</body>
<!--Object 2-->
<body pos="0 0 1.5" euler = "0 -0.5 0">
<joint type="free"/>
<inertial pos="0 0 0.0" mass="1" diaginertia="0.01 0.01 0.01"/>
<!--geom type="box" size=".1 .2 .3" rgba="0.9 .0 0 1"/-->
<geom type="sphere" size=".1" rgba=".5 0.5 0 1"/>
</body>
</worldbody>
</mujoco>
영상이 생각보다 딥하지 않아서 여기까지가 끝이다.
actuator나 stl을 load하는 방식에 대해서는 언급하지 않기 때문에 다른 영상이나 글을 참고해야할 것 같다.
'Others' 카테고리의 다른 글
Mujoco 환경 세팅 - 참고용 (0) | 2022.06.29 |
---|---|
MJCF 파일 분석(5) - 나만의 Manipulator task를 mujoco에서 만들자 (0) | 2022.04.03 |
MJCF 파일 분석(4) - 나만의 Manipulator task를 mujoco에서 만들자 (0) | 2022.03.29 |
MJCF 파일 분석(3) - 나만의 Manipulator task를 mujoco에서 만들자 (0) | 2022.03.29 |
MJCF 파일 분석(2) - 나만의 Manipulator task를 mujoco에서 만들자 (0) | 2022.03.29 |