mindstorms_with_matlab_logo.png



안녕하세요? 교주 LGS입니다.

이번 시간에는 Robot의 Trajectory(궤적)에 대해서 간단히 이야기 하겠습니다. ^^

Path와 Trajectory의 차이점은 Kinematics와 Dynamics의 관계와 같다고 보시면 됩니다.

Path는 A지점에서 B지점으로 가는 경로만을 고려하는 것이고 Trajectory는 Path에 대해서 Path + 시간,속도 등등을 함께 고려하는 것을 말합니다.


trajectory0102.png


3차원 공간상에서 Task space에서 Robot의 End-effector를 출발점의 위치,자세,속도,각속도와 도착지점의  위치,자세,속도,각속도를 가지고

trajectory를 생성할 수 있습니다.


trajectory0101.png


통상의 경우 Robot의 End-effector의 trajectory가 관심사이므로 Task space(Cartesian space)에서 End-effector의 trajectory를 생성하신 후 

Inverse Kinematics로  각 조인트의 trajectory를 계산하게 됩니다.

위치와 속도만 고려한다면 3차 다항식으로 충분하구요 가속도까지 고려하여야 한다면 5차 다항식으로 커버할 수 있습니다.

Point to Point가 아니라 특정 경로를 축적해야한다면 path를 잘게 쪼개서 Point to Point로 변환하시면 됩니다.


만약 위치, 속도, 가속도를 고려하여  End-effector의 x방향의 trajectory를 생성한다면 

trajectory를 아래와 같이 시간 t에 관한 5차 다항식으로 쓸 수 있고


trajectory0104.png


위의 식에서 미지수가 A,B,C,D,E,F 6개이므로 A,B,C,D,E,F 를 찾아내려면 6개의 식이 필요합니다.


trajectory0105.png


시간 t=0일 때의 값과 시간 t=T일 때의 값이 위와 같다면 3개의 Initial condition과 3개의 Final condition이 있으므로 다항식의 계수 A,B,C,D,E,F를

쉽게 찾아낼 수 있습니다. 예를 들어 t=0 이라면 S(0) = F = s0로 F를 바로 찾을 수 있겠죠? ^^

선형 연립방정식이므로 matrix 형태로 나타내면 아래처럼 됩니다.


trajectory0106.png


A,B,C,D,E,F를 구하시려면?? 넵 6 x 6 행렬의 역행렬을 양변에 곱해주시면 땡~ o(^o^)o

그러데 실제로는 모터 출력 등의 제약조건이 있으므로 Polynomial(다항식) 보다는 직접 속도 프로파일을 만들어 

motion을 제어하는 경우가 대부분입니다.


간단하게 Bang-Bang Control 이라는 녀석을 소개하고 강의를 마치도록 하겠습니다.

(모터가) A지점에서 B지점으로 가는데 시간이 가장 적게 걸리려면 어떻게 해야 할까요?


모터가 낼 수 있는 가장 큰 힘으로 Bang!! 하고 계속 가속시키다가 어느 순간부터 반대 방향으로 최대의 힘을 Bang!! 하고 주어서

(즉 반대 방향으로 가속시켜서) 원하는 위치에 딱! 정지하게하면 되겠죠? 왜 Bang-Bang Control이라고 하는지 아시겠죠? ^^

말로 풀어 쓴 것을 그래프로 그려보면 아래처럼 될 겁니다.


trajectory0103.png


그래프를 보시면 0초 ~ 2초 사이에 Full 가속하다가 (최대 가속도는 1로 가정하였습니다.) 2초에 다시 반대방향으로 가속을 하는 상황입니다.

아래 속도그래프를 보시면 삼각형처럼 나오구요 0초일때 속도가 0 (즉 정지해있다가) 4초일때 다시 속도가 0으로 정지하내요

맨 아래쪽에 있는 Position 그래프를 보시면 물체(모터)가 실제 어떻게 움직였나를 보실  수 있습니다.


잘 생각해보시면 Point to Point trajectory 생성은 BVP(Boundary Value Problem)이므로 Lagrange Mechanics로 유도한 운동방정식에 

직접 bvp4c 함수를 적용하면 dynamics까지 한꺼번에 해결할 수 있겠죠? o(^o^)o

bvp4c에 대해서는 아래 두 강좌를 참조하세요~

MATLAB 때려잡기 for VIP - Boundary Value Problem (bvp4c)

MATLAB 때려잡기 for VIP - Optimal Feed-forward Control by using bvp4c




다음 시간에 뵈요~ ^^

profile