강화학습 Tips and Tricks Author: Benthebear93[이해구] & Keep9oing[정민재] Reference: https://stable-baselines3.readthedocs.io/en/master/guide/rl_tips.html Stable Baseline 3(SB3)에서 본격적으로 강화학습을 적용하고자 하는 사람들을 위한 팁들과 트릭들을 정리한 포스트의 번역물입니다. 오역이 있을 경우 피드백 환영입니다. Reinforcement Learning Tips and Tricks 이번 글의 목적은 강화학습을 연구하는 데 있어서 도움을 주기 위함입니다. 글에서는 강화학습을 연구하면서 '어떻게 시작하고, 어떤 알고리즘을 선택하고 평가하는지 등'에 대한 일반적인 조언들로 부터 커스텀 ..
반년전에 공부하면서 노션에 정리한 강화학습 내용을 다시 복습할 겸 올리는 중입니다. 팡요랩 유튜브 영상을 보며 정리한 내용이며, 분명히 틀린 내용이 많으니 만약 보시는 분들은 참고용으로만 보시면 좋을 것 같습니다. 강화학습이지만 귀찮으니깐 제어 카테고리에 넣겠습니다. 팡요랩 유튜브 영상 : https://www.youtube.com/watch?v=NMesGSXr8H4 강의 자료 (David silver) : https://www.davidsilver.uk/wp-content/uploads/2020/03/MDP.pdf Dynamic programming Dynamic programming은 어려운 문제를 작은 단위로 나눠서 푸는 방법이다. 작은 단위 문제(subproblem)을 풀고 솔루션과 subprob..
#제어이론 #제어공학 #제어 #임피던스제어 #로봇공학 "Simple" Impedance Control 원시적인 임피던스 컨트롤 적용은 Hogan에 의해서 1985년도에 제시 됐는데 꽤 성공적으로 적용됐다. 여기서 "Simple"은 힘이나 토크 제어가 되는 엑추에이터로 본질적으로 적은 마찰력을 가지는 매커니즘으로 이루어져있다는 뜻이며, output 임피던스를 증가시키려고 모션 피드백을 사용한다. 이 방식은 매커니즘에서 오는 물리적인 임피던스를 보상하려는 일은 하지 않는다. 따라서 실제 output 임피던스은 매커니즘에서 오는 컨트롤러 펄스로 구성되어 있다. 만약 댐핑과 엑추에이터, 환경에 의한 토크로 구성된 다 자유도 로봇을 모델링하게 되면 로봇의 simple impedence controller는 아래와..
K-dimensional Tree는 K 차원으로 공간상의 점들을 정리하는 자료구조 중 하나이다. 이진트리(binary tree)의 종류인데, 제약조건이 추가 됐을 뿐이다. K-d Tree는 range나 nearset neighbor 탐색에 매우 유용하다. Kd tree는 그 공간의 차원에 제한 되는데, 포인트 클라우드는 일반적으로 3차원이므로 여기서 사용하는 kdTree의 차원은 3차원이다. kd tree는 기본적으로 x축을 기준으로 yz 평면에 평행하게 한번, y축 기준으로 한번, z축 기준으로 한번 나누어 이를 Tree 형식으로 만드는 원리이다. 이렇게 계속 나눠서 이진 트리 형태의 구조가 된다. 사진에서는 KdTree를 이용해서 Nearest-Neighbor 방법이 적용되는 모습을 볼 수 있..
단순히 operational space에서 제어하여 특정 위치로 로봇을 이동시키는 목적 외에도 다수의 제어 목적이 있을 수 있다. 예를들어 1. 특정 위치로 로봇팔 끝단을 움직이면서 2. elbow joint 값을 높인 상태로 유지해라 라는 2가지의 목적이 있을 수 있다. 이런 2가지 목적을 달성하기 위해서 문제는 로봇의 자유도에 있다. 만약 operational space가 generalized coordinates과 동일하다면, 즉 만약 operational space가 로봇의 모든 자유도를 제약하고 시스템의 상태가 operational space에 정의 된다면, 1번의 목적을 달성하는 컨트롤러에 대한 성능을 포기하지 않고 2번의 목적을 달성하는 것은 불가능하다. 2링크 로봇팔은 2자유도를 가..
Null space control을 다루기 전에 먼저 Null space 에 대해서 이야기해보자. 기존에 작성해둔 Null space 설명을 가져왔다. "널 스페이스는 컬럼 스페이스와는 전혀 다른 Subspace이다. 선형 방정식 AX=b에서 b가 zero vector일때 즉 AX=0일때 모든 가능한 해 X에 대한 집합이다. 특정 행렬A와 X가 곱해졌는데 그게 0이 나올때 X의 집합, x가 이루는 공간을 Null space라고 한다. 3차원 공간에서 Null space는 직선으로 표현된다고 한다." 쉽게 말해 AX = 0 일 때 가능한 모든 해 X의 집합이 Null space 라고 볼 수 있다. 직관적인 이해를 위해 아래 영상을 참고하자. https://www.youtube.com/watch?..
여느 다른 컨트롤 시스템처럼, 상호작용 시스템도 안정성과 성능 두마리의 토끼를 잡아야한다. 이전 글에서는 안정성 분석이 반드시 시스템 상호작용 할 환경에 대한 고려를 포함 해야 한다는 것을 보였고, 시스템의 port behavior를 조작함으로서 안정성의 원칙이 보장 될 수 있음도 보였다. (물론 블로그 글에는 정리하지 않았다. 너무 복잡해서..) 상호작용 시스템의 성능도 dynamic port behavior로 측정 되므로, 두가지 목적(안정성과 성능)는 target interactive behavior의 구현에서 오류를 최소화 하는 컨트롤러로 동시에 충족될 수 있다. 즉, 어떤 target 상호작용하는 움직임이 있는데, 이에서 오류를 최소화하는 컨트롤러로 안정성과 성능이라는 두마리 토끼를 잡을 수..
반년전에 공부하면서 정리한 강화학습 내용을 다시 복습할 겸 올리는 중입니다.팡요랩 유튜브 영상을 보며 정리한 내용이며, 분명히 틀린 내용이 많으니 만약 보시는 분들은 참고용으로만 보시면 좋을 것 같습니다. 팡요랩 유튜브 영상 : https://www.youtube.com/watch?v=NMesGSXr8H4 강의 자료 (David silver) : https://www.davidsilver.uk/wp-content/uploads/2020/03/MDP.pdf Policies policy pi는 주어진 state에서의 action을 이야기 한다. policy는 agent의 행동을 지정하는데, MDP에서의 Policy는 현재 state와 관련이 있지만 History와는 관련이 없다. 즉, policy는 시간과..