본문 바로가기

🔧 Mechanical Engineering/Robotics🐊

(Robotics) 정기구학 (Forward Kinematics)-(1)

728x90
반응형

지난 글 요약

 

https://cybernogada.tistory.com/75

 

(Robotics) DH Parameter

동차변환행렬의 개념은 알겠다.(몰랐으면 아래글을 참고하자) 근데 문제는 '그래서 실제로 동차변환행렬을 어떻게 구하냐?'이다. https://cybernogada.tistory.com/74 (Robotics) 동차변환행렬 (Homogeneous Transf

cybernogada.tistory.com

 

링크 좌표계간의 관계를 설정하는 규칙이 있고, 이를 'DH표기법'이라 부른다. 링크 좌표계간의 관계를 규명해야 각 링크의 파라미터로 동차변환을 수행할수있고, 로봇 구조를따라 base ~ end-effector까지 동차변환을 수행해 최종적으로 링크 파라미터로 End-Effector의 위치를 구할수있다. (이 방식이 정기구학(Forward Kinematics)이다.)

 

이제 실제로 DH Parameter를 이용해 좌표계 i-1에서 좌표계 i로 동차변환을 수행해보자

일단 먼저 헷갈리지 말것! 행렬기호가 T로 같으나, 상,하 첨자 모두 붙은것은 동차변환, 하첨자만 붙은것은 병진(Translation)행렬이다. (동차변환행렬 첨자는 원래 좌상단/우하단으로 붙이는게 국룰이나 ppt 수식기능에서 그런 모양의 첨자를 발견못해 그냥 저렇게 썼다.)

T^(i-1~i): 좌표계 i-1에서 i로의 동차변환은, Rz(theta(i)):  z(i-1)축을 회전축으로 theta만큼 회전한후, Tz(d(i)): z(i-1)축 방향으로 di만큼 병진후, Tx(a(i)): x(i)축 방향으로 a만큼 병진후, Rx(alpha(i)) : x(i)축 중심으로 alpha만큼 회전.

이 과정은 아래그림의 빨간색으로 표기된 DH Parameter를 따라 진행되는것이다.....

 

각 행렬의 표기이다. 여기서 의문점! 3차원 회전행렬은 분명 3x3 size였는데? → 맨 마지막행 구성이 [0 0 0 1]인걸 보면 알겠지만 회전/병진을 따로 분리해 동차변환형식으로 표기한것이다. 결국 곱 결과값은 동차변환행렬이 나와야하기에.. 

동차변환행렬 형식을 보면 이해가 된다. 회전행렬은 그냥 회전축기준으로 각도값에만 DH Parameter가 들어간것, 병진행렬은 1열로 각 [x y z]축방향 병진을 DH Parameter로 표현한것이다. 병진행렬의 주대각성분이 1인건 회전행렬 요소를 살리기위한거고..

결국 위의 행렬곱을 계산하면 이렇게 좌표계 i-1에서 좌표계 i로의 동차변환행렬을 얻을수있다. 행렬 내 변수를 보면 모두 DH Parameter로 표현되어있다. 이 Parameter를 잘 찾는연습이 필요하다.

 

이런식으로 말단부의 자세 (자세 means 방위 and 위치)를 구하는 방식이 정기구학이다. base~말단까지의 동차변환행렬을 모두 곱해 나오는 동차변환행렬이 말단의 자세이다. 위에서 봤듯 각 좌표계의 DH Parameter를 잘 구하는 연습이 필요하다. DH Parameter만 구한다면 나머지는 그냥 대입대입계산이다. 

 

파라미터 구하는건 다음글에 이어서...

반응형