본문 바로가기

아이작

(13)
시뮬레이션 오답 노트. #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주간을 소모했으며, 처음부터..
Quadruped 공부 하고 싶다. #6-1 [Task1 - PPO: Cartpole with Pytorch③-1] #PPO with Cartpole in Pytorch DRL에서 가장 쉬운 예제 CartPole과 Isaac에 쓰이는 Pytorch & PPO의 주제가 겹쳐 해당하는 예제를 토대로 PPO를 분석해보려 한다. 일단 원본 코드[1]에서는 slow error가 나서 일부 수정을하고, Rendering 기능이 따로 없어서 내가 조금 편집한 코드를 올려본다. 그리고 코드를 참조하면서 Pytorch지식이 부족한 부분을 Z_Torch_Example로 공부해 봤다. https://github.com/miercat0424/Cartpolev1-PPO-pytorch/tree/main/My_PPO GitHub - miercat0424/Cartpolev1-PPO-pytorch: Pytorch PPO for Cartpole Ex..
Quadruped 공부 하고 싶다. #5 [Task1 - Proximal Policy Optimization ②] #Proximal Policy Optimization PPO에는 두 가지 큰 타이틀이 존재한다고 한다. 이 두 개를 두고 PPO를 설명한다. 1. The Clipped Surrogate Object 2. Multiple Epochs for Policy Updating PPO에서 Clipped가 핵심 내용이라고 보는데 이부분은 다음 Cartpole PPO③에서 더 자세하게 다루겠다. 성능 부분의 요약은 맨 밑 줄 Conclistions of Clipped Surrogate Object를 참고하면 된다. - 요약 : 간단한 코드이며 안정적인 학습을 이룬다. 그만큼 epoch이 증가하는 것이 특징. 이 부분도 Cartpole③ 코드를 병행하면서 이해하는 것이 더 효과적이므로 다음에 보충 설명하겠다. 중점적으로..
Quadruped 공부 하고 싶다. #4 [Task1 - Policy-Gradient (for PPO)①] #Policy-Gradient Proximal Policy Optimization (PPO)를 배우기 전에 사전 지식으로 Policy - Gradient에 관한 용어 정리가 필요했다. 일반적인 Deep-Learning과는 다르게 Gradient descent가 아닌 'ascent'이다. 이상적인 action의 확률을 뽑기 위해 SoftMax로 출력을 하며 해당 action의 확률을 높이는 방향으로 학습하는 것이 직관적으로 옳기 때문에 ascent라고 한다. 이 부분을 (-) 부호를 붙여 표현하기도 한다. 위 설명을 통해 강화 학습에서 어떤 것을 중점적으로 업데이트하며, Exploration 중 Agent가 좋지 못한 길로 빠졌을 때, 이에 대한 reward 값이 어떻게 조정되어 다시 좋은 길로 수정되는지..
Quadruped 공부 하고 싶다. #3 [Learning to Walk in Minutes Using Massively Parallel DRL] #Intro 본격적으로 Quadruped를 분석하기 앞서 논문[1]을 읽고 어떤 task들을 큰 틀로 잡을지 생각해보기로 했다. 현재 문제는 내 알고리즘을 어떻게 넣을지? 이 부분이 해결이 안 됐는데. 아래 내용들을 토대로 접근해 보려 한다. #DRL Algorithm - PPO (Task 1) 먼저 어떤 정책을 기반으로 알고리즘이 구현됐는지 알아보는 것이 우선이라고 생각한다. 강화 학습에서 state, action이 sim과 어떤 방식으로 상호작용 하는지 알아내는 것이 첫 목표이다. 그래서 Proximal Policy Optimization에서 필요한 지식이 무엇이고 어떻게 Agent와 소통하는지 알아보는 것이 우선이라 생각한다. 그리고 일부 상황에 맞게 다른 Reward를 추가했다는 내용은 추후 내가..
시뮬레이션 하고 싶다. #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에 초점을 맞추다가 취리히 공대에서 오픈된 코드를 하나 발견할 수 있었다. 아직은 참조된 논문은 읽어보지 못 했지만,..
Quadruped 공부 하고 싶다. #2 [Trajectory Planning with High-Speed Trot Gait] #1 Leg Trajectory Planning for Quadruped Robots with High-Speed Trot Gait 1. 전체 구조 논문[1]이 21페이지 정도 되다 보니 읽는데 시간이 좀 걸린 거 같다. 근데 정리하려고 보니까 생각보다 내용의 반복이 많고, 그래프로 비교하는 것이 훨씬 직관적이어서 글로 쓸 내용은 별로 없었다. 2. 간략한 내용 이번 내용은 Simulation에서 Coding을 어떻게 어떤 방향으로 왜 해야 하는지에 대해 알 수 있다. Trajectory를 왜 분석하고, 이를 기반으로 어떤 것을 응용할 수 있는지 알 수 있었는데, Trajectory를 구하는 방법에는 Spline과 Bezier가 대표적인 거 같다. MIT Cheetah에서는 Bezier Curve 방식을..
Quadruped 공부 하고 싶다. #1 [Quadruped Robot] #1 Inverse Kinematic Analysis Of A Quadruped Robot 프로젝트 초점이 4족 보행으로 옮겨가면서, 새롭게 공부를 시작하는 중이다. 기구학 쪽에 그렇다 할 지식이 없었는데, 일전의 Manipulation을 들으면서 배운 Position, Rotation, Tranformation, Pose 등의 개념을 이해하고 좌표계의 설정과 Matrix 연산에 대해 공부한 경험으로 Inverse Kinematic Analysis Of A Quadruped Robot [1] 논문을 읽는데 큰 어려움이 없었다. [Reference] [1] Muhammed Arif Şen, Veli Bakırcıoğlu, Mete Kalyoncu, "Inverse Kinematic Analysis Of A..