티스토리 뷰

카테고리 없음

특이점 (singularity)

Job Designer 2017. 1. 7. 17:11

빠른 속도와 높은 정밀도, 그리고 넓은 이동범위까지, 다양한 장점을 자랑하는 로봇암이지만 약점이 한 가지 있습니다. 그것은 바로 특이점(singularity)![각주:1]



특이점이란?


특이점은, 쉽게 설명하면, 로봇이 불편해하는 포즈라고 할 수 있습니다. 


작업영역 내에서 로봇의 엔드이펙터는 거의 모든 위치에 도달할 수 있습니다. 하지만, 모든 위치에서 모든 자세를 표현할 수 있는 것은 아닙니다. 아주 극단적인 예로, 로봇암을 쭉 뻗어 작업영역의 경계에 위치할 때, 엔드이펙터가 밖을 향하는 자세는 가능하지만 안쪽을 향하는 자세를 취하기는 어렵습니다.




특정 위치에서 어떤 자세를 취하기 어려운 경우, 소위, 각이 안 나온다 싶을 때, 로봇이 특이점 근처에 있을 가능성이 클 것입니다. 


기구학 관점에서 보면, 직교 공간의 어떤 위치 자세에 대하여 역기구학을 계산하는데, 해(조인트 각도)를 구하기 어려운[각주:2] 영역이 특이점 구간, 즉, 역기구학 실패 영역이 될 것입니다. 


특이점 영역에서는 직교 좌표계에서 한개 혹은 그 이상의 자유도를 잃게 됩니다. 그러다보니 특정 방향으로 직선 이동이 제한됩니다. 조금 더 수학적인 설명은 각주를 참고하세요.[각주:3]



특이점 분류 


로봇역학의 바이블이라 불리는 Introduction to Robotics [각주:4]에서는 특이점을 크게 두 가지로 분류합니다.[각주:5] 


첫 번째는 workspace-boundary singularities 라고 하여, 작업영역 부근에서 특이점이 형성된다고 합니다. 쭉 뻗게 되면 아무래도 자유도가 줄어들겠죠?


다른 하나는 workspace-interior singularities 라고 하는데, 일반적으로 두개 혹은 그 이상의 조인트 축 방향이 일치할 때 발생한다고 합니다. 



실제 산업용 로봇의 특이점


실제 산업용 로봇에서 어떤 포즈가 특이점인지 궁금하실텐데요. 사실, 산업용 로봇 제조사 마다 디자인이 다를 수 있고, 특이점 패턴 또한 차이가 있을 수 있습니다. 유니버설 로봇[각주:6]의 특이점 영역을 한번 알아보겠습니다.


먼저, 베이스 축을 중심으로 한 원통형 영역이 대표적인 특이점 구간입니다. 엔드 이펙터가 직선 경로로 이 영역을 지나가려 할 경우, 특이점 에러가 발생하거나 특정 조인트가 홱 돌려 하다 조인트 속도 에러가 발생할 것입니다. 그래서 제품 작업영역 도면을 보면 원통형 영역을 제한 사항으로 표시합니다.


원통형 영역: 직선 경로 이동이 제한됨



두 번째는 작업영역 경계입니다. 로봇암을 쭉 뻗은 상태에서 더 뻗으려 하거나, 엔드이펙터 위치를 유지하면서 자세를 변경하려 할 경우, 특이점 에러가 발생할 것입니다. 사람도 팔을 최대한 뻗은 상태에서 더 뻗으려 하면 어깨가 빠지고 관절이 손상되듯이 로봇도 아프겠죠?


작업영역 경계까지 뻗은 로봇암



마지막으로 5번째 축이 0˚ 혹은 180˚인 경우 입니다. 무려 4개의 축이 같은 방향을 가리키게 되어 특정 방향에 대한 자유도를 잃게 됩니다. 아래 그림에서는 현재의 자세를 유지하면서 왼쪽 위치로 이동하기 어렵습니다. 


다수의 축 방향이 일치하는 포즈



특이점 회피 방법


특이점 구간에서도 로봇이 문제없이 움직이는 가장 쉬운 방법은, 조인트 공간 상의 경로로 이동하는 것입니다. 시작위치와 목표위치가 모두 조인트 각도로 주어진다면, 특이점 문제에 마주하지 않을 것입니다. 운동을 하다가 특히 힘든 타이밍에 잠시 휴식을 취하면 기운이 나듯, 직선 경로로 움직이더라도 특이점이 예상되는 구간 만큼은 조인트 경로로 이동하면 로봇이 좋아할 것입니다.


하지만, 작업 특성 상 로봇이 반드시 직선 경로로 이동해야 하는 경우가 있을 것입니다. 이 경우에는 작업 레이아웃 변경 및 툴 형상 설계를 통해 특이점을 회피할 수 있습니다. 예를 들어, 위의 그림 다수의 축 방향이 일치하는 포즈 에서 'L' 형태의 툴을 사용한다면, 왼쪽으로 이동하는데 문제가 없을 것입니다.





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


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




  1. 특이점은 특정 제조사의 로봇에만 국한된 문제라기 보다는, 모든 로봇암이 가지고 있는 한계라고 보시면 좋을 것 같습니다. [본문으로]
  2. 해를 구할 수 없다면, 해가 없거나 해가 무수히 많기 때문일 것입니다. [본문으로]
  3. 로봇이 동작하려면 속도가 있어야겠죠? 조인트 속도를 직선 속도로 변환하기 위해 자코비안 행렬을 곱해줍니다. 반대로 직선 속도로부터 조인트 속도를 구하려면 자코비안의 역행렬을 곱해줘야겠죠. 여기서, 자코비안의 역행렬이 존재하려면 non-singular여야 합니다. 자코비안 행렬이 singular 이면, rank를 잃게 되고, 이는 직선 공간에서 한개 혹은 그 이상의 자유도를 잃게 된다는 것을 의미합니다. [본문으로]
  4. Introduction to Robotics: Mechanics and Control, by John J. Craig [본문으로]
  5. Wikipedia 에서 industrial robot을 검색하면 singularity 설명이 있습니다. 여기에서 참조한 블로그는 wrist, shoulder, elbow singularity 로 구분합니다. 동영상이 있어서 이해하기 좋으니 참조하세요. (http://coro.etsmtl.ca/blog/?p=107) [본문으로]
  6. 유니버설 로봇은 오프라인 시뮬레이터를 무상으로 제공합니다. (https://www.universal-robots.com/download/?option=26266#section16597) [본문으로]
댓글