방법은 간단합니다. 제가 (1,0,0)에 마킹을 해놓았는데요, 앞으로 이 공을 어지럽게 돌릴 것입니다. z축으로 30도, x축으로 45도, y축으로 -120도, z축으로 60도, x축으로 90도, z축으로 -30도... 자, 과연 지금 점은 지금 어느 위치에 마킹되어있을까요?
갑자기 웬 야바위냐고요? 왜냐하면 로봇을 움직이는데엔 관절의 회전에 대한 이해가 필수적이기 때문이죠. 여러분, 주먹을 앞으로 뻗고 싶다고 여러분의 관절도 고무고무하며 늘어나는게 아닌건 아시죠?ㅋ 여러분의 단순한 동작은 사실은 여러 회전이 교묘히 복합된 결과랍니다. 따라서 관절의 회전과 주먹 끝의 움직임의 관계를 이해하는 것, 그것이 바로 Kinematics의 첫걸음이랍니다~
오! 기적이네요! ㅎㅎㅎ 한번 더 돌리니까 두 각의 합(1)만큼 돌아갔어요!ㅎㅎㅎ 의심많은 저도 이젠 이 회전 식을 믿기로 했답니다ㅋ 그런데 이거 너무 복잡한거 아닌가요? 그래서 앞으로는 이 식을 행렬(matrix)을 이용해 표현하려고요. x를 R1으로 돌리면 x' = R1x, 이것을 다시 R2로 돌리면 x'' = R2 x' = R2 R1 x가 되는 것이죠. 여기서 주의할 점은 나중에 돌리는 회전행렬들이 앞 쪽에 곱해진 다는 점입니다. 각 축에 대한 회전행렬을 정리하면 다음과 같습니다.
따라서 야바위 게임의 정답 역시 저런 형태의 회전행렬들을 계산기에(사실 쬐~끔 좋은 계산기에ㅎㅎㅎ) 넣고 enter를 치면 해.결.되는 것이죠ㅋ Matlab느님께 정답을 한번 물어볼까요?(2)
이제 야바위의 승리를 위해 남은 것은 좋은 계산기를 준비하는 일 뿐입니다ㅎㅎㅎ 사실 rotation matrix와 관련해서는 orthonormal matrix가 어떻고, special orthogonal group, SO(3)가 어떻고 등 할 말이 너무나 많은데요, 오늘의 수학은 이 정도로 정리하는 것으로 하고, 응용에 대한 예를 한번 살펴보도록 하죠.
출처 : http://www.cambridgeincolour.com/forums/thread11489.htm |
나를 둘러싼 아름다운 풍경을 카메라에 모두 담고싶은데 그게 잘 안될 때가 있죠? 요즘나온 카메라 중에는 image stitching 기능을 제공하는 카메라들이 있는데요, 이 기능을 활용하시면 여러 장으로 나누어 찍은 사진들을 자동으로 붙여준답니다. 과연 어떻게 하는 것일까요?
여기에 가장 핵심적인 역할을 하는 것이 바로 rotation matrix 입니다. 여러분이 찍은 사진에는 분명 겹치는 부분이 있을거예요. 하지만 겹치는 부분을 그냥 찾으려고하면 안찾아질 것입니다. 왜냐하면 여러분은 다음 사진을 찍기위해 이미 카메라를 회전시켰을테니 말이죠. 따라서 찍은 사진행렬(3)에 카메라를 회전시킨 각도에 해당하는 회전행렬을 곱해준 뒤, 이 중에서 매칭되는 부분을 찾는 것입니다. (카메라 회전 각도나 매칭되는 부분은 어떻게 찾나고요? 궁금하시면 이 분야를 전공하시면 되요~ㅎㅎㅎ 나중에 비전에 대해 다룰 때 또 이야기를 해보도록 하죠!) 암튼 중요한 것은, 여러분은 오늘 여러분야에서 긴요하게 쓰이는 엄청 중요한 개념에 대해 배우셨다는 것입니다 :D
(1) 계산의 마지막 과정에서는 삼각함수의 덧셈정리가 사용되었습니다.
(3) 사진의 이미지는 각 pixel에 RGB값을 할당한 행렬로 볼 수 있습니다.
* 제 글은 RSS로도 구독하실 수 있습니다. http://t-robotics.blogspot.kr/feeds/posts/default
댓글 없음:
댓글 쓰기