본문 바로가기

Isaac Gym

시뮬레이션 하고 싶다. #3-2 [Make Custom Gym (Part 2)]

728x90

#1 Isaac Gym에서 Simulation 만들기 2

[이전 요약]

아직 보이지는 않지만, 우리는 원하는 env를 만들고, 해당 env에 들어가는 Actor 또한 설정하였다.

근데 Simulation도 안 켜지고 아무런 현상 없이 터미널에 주석 몇 개만 나오고 끝이 난다.

그래서 오늘은 직접 Viewer를 설정하여 Simulation을 완성해보자.

 

6,7. Viewer 만들기

그림 1. [6. Simulation과 Keyboard], [7. Simulation 종료]

#6-1

그림 1. 에 기재된 바와 같이 첫째로 Viewer를 만든다. 

 

#6-2

이후에 Simulation 내에서 키보드와 마우스를 사용하고 싶으면 subscribe_viewer_keyboard_event라는 함수로부터 정의가 필요하다.

공식문서에 따르면 [NVIDIA docs -> API Reference -> Python API -> python Gym API]

그림 2. Viewer Commands

위와 같이 활용이 가능하다고 한다. 

 

#6-3

Line 165부터 Simulation을 볼 수 있게 만들어주는 코드인데,

Line 169 ~ 180 까지는 Simulation 내에서 추가적으로 필요한 기능이 있다면 해당 형식을 참고하여 삽입하면 된다.

Line 182 ~ 이후까지는 Simulation을 보기 위해서 필수적인 동작이다.

 

#7 

Viewer가 끝난다고 해서 Simualtion이 끝나는 것이 아니기 때문에 코드로 정확하게 Simulation을 종료시키기 위한 코드들이다.

 

# Result

이렇게 코드를 완성하고 나면, 드디어 우리가 원하는 Simulation을 간단하게 만들 수 있다!

 

※ 참조 2022.01.07 자 이후로 Part1을 일부 수정하였다.

Custom 모델이 중력을 받지 않아서 왜 이러지 했는데, 알고 보니 제자리 고정 코드가 들어가 있었다.

그리고 모델이 너무 작거나 클경우를 조절할 수 있게 코드 내에 Scale 기능을 집어넣었다.

그리고 #4-1의 'asset_file' Parameter의 urdf 경로만 변경하면 내가 원하는 모델을 넣을 수 있다. 

 

그래서 코드를 실행시키면! 

그림 3. Custom 모델 Isaac Simulation

내가 만든 모델이 Simulation에 들어간 것을 확인할  수 있다! 

아래 터미널을 보면 마우스 클릭을 할 때 마다 어디부분을 클릭했는지, (x,y)좌표로 나오는 것을 볼 수 있다.

또한 'R'키를 누르면 Reset이 되는것도 볼 수 있다.

 

그림 4. Viewer GUI 기능들

Custom모델을 urdf로 변환하는 과정은 Youtube에 많이 나와있다. 

근데 Isaac에서 제공하는 Import URDF라는 프로그램이 따로 있더라

나는 모델을 만들 때 CATIA나 SolidWorks를 활용해서 만드는데,

urdf 변환 툴은 ROS에서 제공하는 에드온 밖에 없어서 SolidWorks밖에 활용하지 못하고 있다.

근데 Isaac Import URDF를 한번 사용해보고 유용하면 간단한 리뷰를 남겨보려 한다. 

 

어쨌든 이렇게 간단한 모델을 만들어 봤고, 오류사항이나 추가 기능이 궁금하다면 같이 공유하고 싶다.

전체 코드가 필요하다면 한번 올려보겠당.