티스토리 뷰

카테고리 없음

기구학 (kinematics)

Job Designer 2017. 1. 7. 17:01

두 개의 공간 포스팅에서 로봇에는 조인트 공간과 직선 공간이 있다고 말씀드렸습니다. 동일한 로봇 포즈에 대하여 각각의 공간은 서로 다른 방식으로 표현하기 때문에, 두 공간 사이에서 좌표를 변환하는 계산이 필요하고, 이를 기구학(kinematics)이라고 합니다.[각주:1] 





정기구학 (forward kinematics)


로봇의 각 조인트는 특정한 각도를 갖는데, 현재의 조인트 각도는 각 조인트의 엔코더 센서에 의해 알 수 있습니다. 다시 말하면, 조인트 공간의 각도는 직접적으로 확인할 수 있습니다.


우리는, 로봇의 또 다른 중요한 공간인 직선 공간에서의 현재 좌표 또한 알고 싶을 것입니다. 로봇암의 경우, 직선 공간 상에서 우리가 관심있는 정보는 끝단의 엔드이펙터(end-effector)[각주:2] 위치와 자세입니다.



이제, 우리가 이미 알고 있는 조인트 공간의 각도 값으로부터 직선 공간의 엔드이펙터 위치와 자세를 얻어보려 합니다. 이때 사용되는 계산을 정기구학(forward kinematics)이라고 합니다.[각주:3]


조인트 각도가 정해지면 로봇 엔드이펙트는 반드시 어딘가에 위치할 것입니다. 이렇듯, 정기구학의 특징은 반드시 해가 존재한다는 점입니다. 즉, 조인트 각도가 정해지면, 우리는 엔드이펙터의 위치와 자세를 계산할 수 있습니다.



역기구학 (inverse kinematics)


반대로, 직선 공간 위에 있는 로봇 엔드이펙터의 위치와 자세를 조인트 각도로 변환하는 계산을 역기구학(inverse kinematics)라고 합니다.[각주:4]


우선, 로봇의 목표 위치를 지정할 때 조인트 각도 대신 엔드이펙터의 위치 및 자세를 기록할 수 있습니다. 하지만 실제 로봇이 움직이기 위해서는 모터가 각 조인트 각도를 움직여야 합니다. 결국 역기구학을 계산하여 조인트 목표 각도를 알아야 합니다.


이동 경로가 직선일 경우, 먼저 직선 공간 상에서 경로를 계획하는데요, 로봇을 동작시키려면 역기구학 계산을 통해 직교 좌표계 값으로부터 조인트 좌표계 각도 값을 계산해야겠죠?


계산의 측면에서 역기구학은 정기구학보다 다소 복잡할 수 있습니다. 역기구학의 경우, 여러 개의 해가 존재할 수도 있고, 해가 존재하지 않을 수도 있습니다.[각주:5] 이로 인해 로봇을 동작하는데 제약이 있을 수 있습니다. 특히 로봇암의 경우 특이점(singularity)[각주:6]이라는 문제가 존재하는데요, 이는 별도의 포스팅 특이점 (singularity) 을 참조하시기 바랍니다. 



----------------


잘못된 내용이나 질문 있는 분들은 편하게 댓글 달아 주세요. 감사합니다.


  1. 기능적인 측면에서, 기구학은 서로 다른 두 언어 사이의 통역/번역과 유사한 것 같습니다. [본문으로]
  2. 로봇암의 끝단에 툴을 장착하는데, 일반적으로 툴이 작업하는 의미있는 부분인 TCP(tool center point)가 엔드이펙터가 됩니다. [본문으로]
  3. 본 블로그의 취지에 따라, 수학식을 포함한 복잡한 설명은 생략합니다. 관심 있으신 분들은 로봇역학 교재 혹은 Wikipedia를 참조하시기 바랍니다. (https://en.wikipedia.org/wiki/Forward_kinematics) [본문으로]
  4. 역기구학 또한, 수학식을 포함한 구체적인 정보는 로봇역학 교재 혹은 Wikipedia를 참조하세요. (https://en.wikipedia.org/wiki/Inverse_kinematics) [본문으로]
  5. 이차 방정식의 해가 두 개인 원리를 생각해보세요. [본문으로]
  6. Singularity라는 단어가 인공지능 분야에서는 조금 다른 의미로 사용되는 것 같습니다. [본문으로]
댓글