좌표계(Coordinate system)를 두 번 이동과 회전을 해 보겠습니다.
우선, 좌표계 이동을 왜 하는 걸까요?
로봇 팔 끝에 달려있는 말단장치(end-effector, 공구계)를 작업 대상물 앞에까지는 주로 3개의 link를 움직여 데려다 줍니다. 말단장치는 방향과 미세 위치를 조절하며 작업을 합니다. 말단장치의 세부적인 조절을 기저계(Base, 로봇팔이 고정되어 있는 원점) 중심으로 제어하려면, 계산량이 많아지고 알고리즘에 착오를 일으킬 가능성도 있습니다.
그래서 좌표를 말단장치까지 옮기고, 작업을 하기 위한 세부적인 조절은 이동된 좌표를 중심으로 하게 됩니다. 계산이 훨씬 단순해지고 오류 가능성이 현저히 줄어 듭니다.
아래에 조립작업중인 로봇을 보면 참고가 될 겁니다.
(이미지 출처 : 유니버셜 로봇 www.universal-robots.com/ko/제품/ur3-로봇)
<과제>
2차원 평면에서 기준 좌표계를 회전과 이동을 2회 해 보겠습니다(이동좌표계 중심으로).
우선 기준 좌표계 모습입니다.
원점(x, y)은 (0.0, 0.0)으로 설정했습니다.
Z축 중심으로 45도 회전합니다.
rot(z, 45)
이동 좌표계 중심으로 x축을 따라 0.5 많큼 이동합니다. 기준 좌표계 중심이 아님에 주의 필요합니다.
trans(0.5, 0)
언뜻 보기에는 y축으로도 이동한 것처럼 보일 수도 있으나, 이동 좌표계 관점으로는 x축으로만 이동했습니다 trans(x, y = 0.5, 0)
이동 좌표계를 -30도 회전(시계방향)해 보겠습니다.
rot(z, -30)
마지막으로 이동 좌표계 중심으로 x축을 따라 0.4 많큼 이동합니다.
trans(0.4, 0)
전체적인 회전과 이동 경로를 보겠습니다
rot(z, 45) trans(0.5, 0) rot(z, -30) trans(0.4, 0)
사실 이 그림은 2link 로봇의 기저부(Base)에서 말단부(End-effector) 까지를 이동 좌표계로 나타내 본 것입니다.
곱하기는 행렬로 변환하여 곱하기 합니다.
위 행렬곱으로 나온 결과를 그래프로 표현하면 됩니다.