본문 바로가기

Quadruped Robot

(10)
Quadruped 만들고 싶다. #2 BLDC-Motor (회의 내용 ②) #INTRO BLDC-Motor를 사용하는데, 지하에 남아있는 모터를 사용하게 됐다. 사용하는 모터와 esc의 데이터 시트는 아래와 같다. http://dl.djicdn.com/downloads/e305/en/E305_User_Manual_v1.00_en.pdf 제어 방식에 대한 설명하기 앞서, 꼭 프로펠러를 제거하고 테스트하길 바란다. 아무것도 모르고 조립된 상태로 테스트하면 손가락 잘린다. 이런 고출력 모터를 처음 사용해봐서 잘 몰랐는데, 카카오톡방의 조언을 받아 다치지 않고 안전하게 실험이 가능했다. 1. Arduino로 제어하기 배선은 pdf를 참조하였다. 여기에는 9V의 건전지를 사용해서 테스트를 했고, Arduino는 Mega를 사용했다. (Uno도 관계없음) 막연하게 파워주고 pwm신호를 흘..
Quadruped 만들고 싶다. #1 모델 선정하기 (회의 내용 ①) #INTRO LINC사업단과 연구지원을 받으며 모델을 제작할 기회가 왔다. 새로운 모델을 제작하기 앞서 유투브를 활용하여 좋은 모델을 얻을 수 있었다. GitHub - open-dynamic-robot-initiative/open_robot_actuator_hardware Contribute to open-dynamic-robot-initiative/open_robot_actuator_hardware development by creating an account on GitHub. github.com 여기서 하드웨어에 대한 정보를 전부 얻을 수 있었는데 아무래도 모터 드라이버, 보드, 모터는 전부 동일하게 따라 하기엔 무리가 있으니 그에 걸맞게 모델을 수정해서 만들어보려 한다. #STEP 파일 수정 홈페..
Quadruped 공부 하고 싶다. #6-3 [Task1 - PPO: Cartpole with Pytorch③-3] #PPO with Cartpole in Pytorch Sim2Real을 하기 이전에, 어떻게 Env와 Agent가 소통을 하는지 직접적으로 코드를 짜서 구현해보는 Task를 진행해본다. 추후에 Isaac-Gym에서 이 부분을 커스텀하게 만들어야 하는데 굉장히 복잡할 거 같아서 좀 무섭지만, 그래도 부딪히고 볼 생각이다. 좌측에 Directory를 보면 우리가 일전에 구현한 PPO_torch.py와 이제 만들게 될 GYM_torch.py를 한 폴더에 넣어주고 from PPO_torch import Agent를 통해 파일을 불러온다. utils코드는 단순하게 성능지표를 png파일로 저장해주는 기능이므로 크게 다룰 것이 없다고 생각한다. Algorithm의 Structure를 위주로 설명해 보고자 한다. Op..
Quadruped 공부 하고 싶다. #6-2 [Task1 - PPO: Cartpole with Pytorch③-2] #PPO with Cartpole in Pytorch 일전에 이어서 올린다는 게 예약을 삭제로 했던 거 같다. 블로그를 정리하다가 지금에서야 발견해서 다시 써보려고 한다. 지난번 내용을 간략하게 정리하면, Algorithm을 완성시키기 위해서는 1. PPOMemory (Observated Data Processing) Simulation에서 Observation 된 6가지의 Data에 대해 읽고 버릴 필요가 있다. 그래서 해당 부분을 class PPOMemory를 통해 Data 저장, 추가, 삭제 만들어주었고 Deep-Learning을 위해 Batch function도 만들어준 것을 볼 수 있다. PPOMemory에서의 키워드는 두가지로 정리된다. DRL(Deep-Reinforcement-Learning..
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를 추가했다는 내용은 추후 내가..
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..