본문 바로가기
연구/머신러닝

Intprim Train and Test

by 디어솔 2021. 1. 6.
반응형

Intprim 프레임워크는 observed agent와 controlled agent의 interaction을 학습하기 위한 것이다.

observed(leading) agent는 UR5l로, 인터랙션을 이끈다. 즉, 트래잭토리가 고정되어있다.

controlled agent는 UR5c로, 프레임워크에 의해 컨트롤된다. 즉, inference를 받아 UR5l에 상대적으로 움직인다.

 

학습과 테스트는 아래 과정으로 진행된다.

 

1. 둘의 인터랙션 상황에서 trajectory collect (rosbag)

2. bag -> csv 변환

3. csv 파일로 트레이닝해서 bip 파일과 noise 파일 생성

4. 생성한 bip와 noise만 있으면 시뮬레이션에서 테스트됨

 

CoppeliaSim 관련 자료는 아래 링크에서 확인할 수 있다.

www.coppeliarobotics.com/helpFiles/index.html

 

CoppeliaSim User Manual

 

www.coppeliarobotics.com

 

rosbag으로 인터랙션 데이터 생성 : 두 agent의 trajectory 기록

 

coppelia sim을 켜기 전에 roscore를 켜줘야 한다.

 

전에도 그랬지만, rosbag으로 트레이닝 데이터 얻는 게 한 번에 한 번밖에 안된다,, 이건 interaction application 코드를 봐야 할 것 같다.

 

우선, reset limit time이 8초로 짧아서 20초로 바꿔주었다. (그리고, 움직이는 속도를 빠르게 조절하는 것도 가능하다: 이게 코드로 되면 좋을 텐데.)

 

혹시 시뮬레이터에서만 안 보이고 실제로 path는 기록 중이지 않을까 bag file을 csv로 convert 해서 확인해봤지만, 괜한 기대였다. 한번 움직이고 나면 reset을 해도 로봇이 말을 안 듣는다.

 

 

rosbag -> csv conversion

 

번거롭지만 bag 파일들을 모은 후, 코펠리아심과 인터랙티브 어플리케이션을 끈다.

그 다음, 아래처럼 런치파일에서 코펠리아 컨트롤러 런치파일 인클루드하는걸 커맨트 아웃시키고 저장한다.

 

 

그리고 rosbags -> csv convert를 아래 문서를 따라 진행한다. (시간이 좀 걸린다)

 

 

그러면 아래처럼 csv가 만들어진다

 

 

일반적으로 50~200개의 데이터가 필요하단다,,,8개도 겨우 만들었는데,,,

튜토리얼에서 제공하는 csv 파일들도 포함해서 트레이닝 해야겠다.

 

만들어진 csv 파일 중 멀쩡한걸 고른 후, 트레이닝을 한다.

 

Train

application launch 파일을 실행한 뒤, 아래에서 select demonstration을 선택한다.

 

 

아래 화면에서 csv 들을 선택하고 open을 누른다.

 

 

train demonstration을 선택한 후, export primitive를 선택한다.

 

 

그러면 아래처럼 trained_bip 파일이 만들어진다.

 

 

observation noise를 결정하기 위해 아래와 같이 export observation noise를 누르고 ok 를 선택한다. bias의 의미는 아직 모르겠다. 일단 디폴트값인 1로 했다.

 

여기까지 하면 모델 트레이닝이 끝난 것이다.

 

 

Test

 

leading agent가 인터랙션을 이끌면, controlled agent는 추론을 통해 어떤 trajectory를 execute할지 결정한다.

테스트가 실행되면, experiments.yaml 파일에 있는 controller 파라미터에 특정된 컨트롤이 적용된다. 튜토리얼에서는 ur5l이 임의의 trajectory로 가도록 되어있단다.

 

이전에 interactive_aplication.launch에서 커맨트아웃한 부분을 다시 살려서 coppelia sim controller를 다시 활성화한 후 test를 진행했다. 결과는 아래 동영상~

 

 

다음에는 kuka iiwa7 r800을 controlled agent로 넣어서 테스트해봐야겠다.

댓글