본문 바로가기

About my life/Undergraduate Researcher

webots simulation DQN

728x90
반응형

으아 ....진짜 쉬운 게 아니었구나 .. 머리속으로는 되게 만만해보였거든,,, 강화학습도 짜여져 있는 코드 순서대로 읽으면서 이해하는 건 할만 했거든... 구현해야될 기능들이 많아질 수록 머리가 복잡해지고 그래서 새하얀 A4에 구현해야될 순서를 하나부터 열까지 다 적어서 이해했다는.... 코드뿐이 아니라 webots 자체만으로도 정말 얼마나 많은 시간을 투자했는 지 모르겠구려 ..

 

1. webots simulation 자체 공부 (어떻게 원하는 데이터를 뽑을 지, webots에는 어떤 기능이 있는 지, 제어하고 싶은 로봇에는 어떤 장치들이 있고, 그 장치들을 어떻게 제어할 지 등등)

-> 이거 진짜 며칠을 걸린지 모르겠다. webots doc 보고는 잘 모르겠어서 머리 쥐어 짜다가, 이것 저것 해결해보려고 했던 것들이 모여서 하나의 아이디어가 돼서 최종 해결책이 되었고 이렇게 되기까지 수많은 시행착오가 있어서 시간이 오래 걸림.

 

2. 원하는 데이터로 만들기 위한 작업 (각도면 라디안 -> 도, 절대 위치 -> 상대 위치, heading 각도 좌표변환행렬로 좌표축 돌리기, state를 one step 이 아닌 three-step으로 세 장면을 모아서 one state로 만드는 작업 등등)

-> 코드 성능 자체는 내가봐도 누가봐도 별로다. 현재 목표는 구현.

 

3. dqn in python 구현 but tensorflow gpu 가속을 이용하여. (tensorflow 로 만들어진 dqn 을 참고하여 코드 짜기, reward design, action 종류, state 어떤 걸로 할 지, 하이퍼파라미터 설정 등등)

 

4. 현재는 학습이 잘 안돼서 원인 파악 중. 모든 게 다 처음이라 변수도 많고, 생각해봐야할 게 많아서 print 를 이용하여 하나 둘씩 체킹하면서 하는 중이다. 

 

5. 가장 쉬운 동작인 목적지에 도달하는 게 된다면 그 다음에는 장애물도 추가해보고, 멀티 로봇으로도 해볼 생각이다. ___ 추가적으로 코드 주석은 완성된 후에 하나씩 적을 생각이다. (처음부터 적었다가 다 뜯어고칠 때 다 망가짐..ㅠ)

 

-> 느낀점 : 코드를 이렇게 길게 구현해본 건 처음이었는데, 긴 코드들이 서로 얽히고 얽혀 있어서 하나를 뜯어 고치면 다 고쳐야하고 고쳐야 될 부분이 어딘 지도 너무 방대해서 잘 모른 적도 있었다. 자꾸 코드 구현 해보면서 뜯어고치기 편하게 코드 작성할 수 있는 능력을 가질 것이고, 알고리즘이나 자료구조에 대해서는 틈틈이 공부를 해서 나중에는 정말 나중에는 성능업그레이드 까지 할 수 있는, 성능 좋고 의사소통 쉬운 뜯어고치기 편리한 코드를 작성하는 능력을 가질 것이다.

 

728x90
반응형

'About my life > Undergraduate Researcher' 카테고리의 다른 글

[Journal] Progress report  (0) 2023.06.26
[Journal] Outline  (0) 2023.06.26
Webots error  (1) 2023.02.14
Present Path  (0) 2023.02.08
Long Short-Term Memory (LSTM)  (0) 2023.02.06