딥러닝 (22) 썸네일형 리스트형 Simulation to Real. #3 [Acrobot-하드웨어 만들기 ①] MODEL & SUPPORTER 일전에 모델을 만들고 나서, OSC로 간이 테스트를 해보니까 Rotary의 무게가 생각보다 많이 나가서 Motor의 기저부가 요동치는 모습을 보였다. 그래서 강철판 위에다가 고정시키기 위해, Motor Supporter를 제작하게 됐다. 23시간에 걸쳐서 Supporter가 제작이 됐는데, 3D Printer 오차를 고려해서 1.5mm 정도 내경을 더 키웠다. 그러고 나서 모터를 끼우는데 바로 뿌셔졌다. 그래도 FRONT_SUPPORTER는 나름 잘 들어맞아서 SUPPORTER 한 개만 써도 모델 자체의 반동은 잡을 듯하다. 모터의 앞부분 내경과 뒷부분 내경이 1mm 정도의 차이가 존재하는데, 3D 프린터의 오차를 고려해서 조이는 형식으로 설계한 것이 이런 부분에서 큰 도.. Simulation to Real. #1 [Acrobot Simulation-모델 만들기] #Intro 그간 열심히 이론을 공부하면서 어떤 DRL 방식을 최신 트렌드로 사용하고 있는지 또 어떻게 들어가는지 알아봤다. 근데 말로만 하면 솔직히 누가 못하나 직접 만들어보는 과정이 중요하다고 생각해서 Acrobot을 만들어 보려고 한다. 다른 명칭으로는 Two-inverted-Pendulum같은 말들도 있는데 OpenAI-Gym에서 사용되는 Acrobot이라는 명칭을 따서 만들어 볼 예정이다. 1. Observation Acrobot을 강화학습 할 때 필요한 요소는 6가지로 나타난다. 요약하면 우리가 필요한 정보는 첫 링크의 θ1과 중간 링크의 θ2의 정보가 필요하다. 첫 번째 joint는 Actuator를 사용해야 하므로, Motor로 만들고 두 번째 joint는 Rotary Encoder만 사용.. 시뮬레이션 오답 노트. #6-2 [Quadruped Robot Failed - DRL] #Intro 저번에 이어서 오늘은 왜 내가 대학원에 가야하는가에 대한 정답을 얻은 계기를 써보려 한다. 열심히 해봤는데 큰 벽이 느껴진다기 보단 세상에는 정말 재밌고 엄청난 기술이 많구나 라는걸 느끼게 된다. 2. Reinforcement Learning Custom Model을 Simulation에 넣어보니 inertial문제도 해결 했겠다. 부푼 기대를 가지고 코드에 내 모델을 직접 넣는데, 그 이전에 코드가 어떻게 흘러가는지 이해할 필요가 있었다. 일단은 코드를 작성할 때 내가 원하는 모델을 강화학습 시키기 위해서는 위와같은 구조를 이해하고 Train할때 어떤 파라미터들을 건드려야 하는지 분석 할 필요가 있었다. Custom 모델을 넣기 위해 Adding a New Env 부분을 참조하여 코드를 일.. 시뮬레이션 오답 노트. #6-1 [Quadruped Robot Failed - Custom Model] #Intro 그간 4족 보행 task를 수행해 보고자 많은 노력을 기울여 봤다. 가장 큰 task로는 두가지를 주제로 잡았는데 1.나의 Custom Model을 어떻게 시뮬레이션에 넣을까? 2. Quadruped Robot을 어떻게 강화학습과 접목시킬까? 오늘은 그간 뭘 하고 지냈고 어느 포인트에서 이렇게 오래 막혔는지 단계를 나눠서 설명하고 나의 한계점과 개선 방안에 대해 검토해 보았다. 1. Custom Model #URDF Background Simulation에 모델을 넣는 경험은 기본적으로 CAD파일을 연다와 많이 달랐다. 앞선 간단한 tutorial들을 통해 어느정도 익혔다고 생각했지만 URDF라는 포멧은 생각보다 많은 지식을 요구했다. 이 부분을 익히기위해 거의 2주간을 소모했으며, 처음부터.. 시뮬레이션 하고 싶다. #5-1 [Tensor API-Rigid Body States] #Intro Quadruped Robot 중 하나인 a1을 해석하기 위해서 기본적인 디버깅을 할 수 있어야 하지 않을까 하는 생각에 gym에서는 data가 어떤식으로 흘러가는지 알아보고자 했다. 간단한 예제로 시작하기 위해 기본적으로 제공되는 dof_controls.py를 사용했다. 디렉터리 isaacgym/python/example/dof_controls.py #Dof_controls.py 1) 코드 실행 방법과 결과 (directory 맞추고) python dof_controls.py 2) 코드 열어보기 Line 88~104 : env0-빨간색(red) Line 106~121 : env1-연두색(green) [env2 : 파란색(blue), env3 : 노란색(yellow)] Line 91,92의 c.. 시뮬레이션 하고 싶다. #4-2 [Isaac Gym Environments for Legged Robots-Cassie] #Intro 다른 예제인 Cassie를 간략하게 해 봤다. 일전의 Anymal에서 train.py의 명령어 중 task만 조금만 변경하면 바로 된다. #Usage-train.py python train.py --task=cassie 잘 보니까 Total time도 나왔는데 약 17분 정도가 걸린다. #Usage-play.py python play.py --task=cassie 이 외에도 여러 모델들을 지원하니, 한번씩 열람해보는 것도 좋아 보인다. 시뮬레이션 하고 싶다. #4-1 [Isaac Gym Environments for Legged Robots-Anymal] #1 Intro https://github.com/leggedrobotics/legged_gym GitHub - leggedrobotics/legged_gym: Isaac Gym Environments for Legged Robots Isaac Gym Environments for Legged Robots. Contribute to leggedrobotics/legged_gym development by creating an account on GitHub. github.com Nvidia에서 제공하는 다양한 Tutorial을 리뷰하기 앞서, 공동의 목표가 잡힌 Quadruped Robot에 초점을 맞추다가 취리히 공대에서 오픈된 코드를 하나 발견할 수 있었다. 아직은 참조된 논문은 읽어보지 못 했지만,.. 시뮬레이션 하고 싶다. #3-2 [Make Custom Gym (Part 2)] #1 Isaac Gym에서 Simulation 만들기 2 [이전 요약] 아직 보이지는 않지만, 우리는 원하는 env를 만들고, 해당 env에 들어가는 Actor 또한 설정하였다. 근데 Simulation도 안 켜지고 아무런 현상 없이 터미널에 주석 몇 개만 나오고 끝이 난다. 그래서 오늘은 직접 Viewer를 설정하여 Simulation을 완성해보자. 6,7. Viewer 만들기 #6-1 그림 1. 에 기재된 바와 같이 첫째로 Viewer를 만든다. #6-2 이후에 Simulation 내에서 키보드와 마우스를 사용하고 싶으면 subscribe_viewer_keyboard_event라는 함수로부터 정의가 필요하다. 공식문서에 따르면 [NVIDIA docs -> API Reference -> Python A.. 시뮬레이션 하고 싶다. #3-1 [Make Custom Gym (Part 1)] #1 Isaac Gym에서 Simulation 만들기 본 내용은 NVIDIA에서 제공되는 Programming-Simulation Setup를 참조하여 만들었습니다. 1. Simulation Setup & gymapi (개요) Isaac에서는 비교적 간단한 방법으로 Simulation을 구현할 수 있다. 전체적인 내용을 다루면 글이 길어지기 때문에 Part별로 나눠서 설명하고자 한다. (그림 1.) Isaac의 특징에 대해 설명을 하고 이어서 gymapi의 기능과 어떻게 모델을 넣고, 어떻게 값을 조정하는지 알아본다. 일단 첫 구성은 그림 2. 에서 나타낸 바와 같이 아이작 짐 Sim의 연산을 위해 하드웨어들을 지정하는 과정이 필요하다. 2. Simulation Parameters 설정하기 이후 Simu.. 시뮬레이션 하고 싶다. #2-2 [Environments, Training, and Tips] #1 Isaac Gym (Part 2: Environments, Training, and Tips) 1) Reinforcement Learning 다양한 예시들을 Repository에 모아두시고 링크를 달으시면서 시작하신다. 해당 튜토리얼을 따라 하기 위해 isaacgym 디렉터리에서 Git을 가져왔다. $ git clone https://github.com/Denys88/rl_games GitHub - Denys88/rl_games: RL implementations RL implementations. Contribute to Denys88/rl_games development by creating an account on GitHub. github.com 근데 직접 깔아보니 공식문서를 보면 다른 링크.. 이전 1 2 3 다음