특이점(Singularity)이란?
다관절 로봇에서 특이점(Singularity)란 간단하게 설명하면 로봇이 이동 중 자신의 다음 자세를 계산하기 어려워하는 위치(또는 점)입니다. 다관절 로봇의 경우 로봇의 끝단을 기준으로 이동하는 동안의 각 관절의 각도를 계산합니다.
예를 들면 아래 그림 1의 상태에서 로봇이 빨간 점으로 이동하고자 할 때, 로봇은 그림 2처럼 다음 자세를 A 자세가 되도록 각 관절을 움직여야 하는 건지 B 자세로 움직여야 하는 건지 판단을 할 수가 없는 상태가 됩니다. 이 위치(또는 점)를 특이점이라고 합니다.
특이점 근처에서는 로봇의 움직임이 평면, 점, 직선에 해당하여 움직임이 원활하지 않고 로봇 끝단의 직선 이동이 유지되지 않을 수 있으며 제어 시 위치 오차가 증가할 수 있습니다. 로봇 관절이 일직선인 경우를 포함하여 그림에서 보는 것과 같이 3가지 경우에 특이점이 발생합니다.
손목 특이점(Wrist Singularity) : 5번 축이 0º에 근접하여 로봇의 손목 부분이 일직선이 되는 경우
- 4, 5, 6번 축은 다관절 로봇을 사람의 팔에 비유했을 때 손목 관절에 해당됩니다.
- 어깨 특이점(Shoulder Singularity) : 1번 축과 6번 축이 동일 선상에 있는 경우
- 1, 2번 축은 다관절 로봇을 사람의 팔에 비유했을 때 어깨 관절에 해당됩니다.
- 팔꿈치 특이점(Elbow Singularity) : 3번 축이 0º에 근접하여 로봇이 일직선이 되는 경우
- 3번 축은 다관절 로봇을 사람의 팔에 비유했을 때 팔꿈치에 해당됩니다.
주의
관절 회전으로 이동하는 수동 및 자동 조작의 경우 특이점의 영향을 받지 않습니다.
- 태스크 이동, MoveL 명령어 등
- 특이점은 로봇의 끝단을 선형으로 이동하는 수동 및 자동 조작 작업 시에만 발생합니다.
- 조인트 이동, MoveJ 명령어 등
- 특이점 영역에서는 힘 제어나 순응 제어가 동작하지 않습니다.
- 선형 모션의 경로가 이 특이점을 경유할 때 특정 축의 회전 속도가 급격하게 빨라지기 때문에 조인트 속력 제한 위반(Joint Speed Limit Violation) 또는 조인트 각도 제한 위반(Joint Angle Limit Violation)으로 에러가 발생할 수 있습니다.
특이점 회피 방법
두산 로봇은 모션 제어시에 특이점을 회피하는 옵션을 제공하고 있습니다. 그러나 특이점 영역에서는 MoveJ 계열의 조인트 이동 명령어를 사용하여 예외 상황이 발생하지 않는 작업을 구성하는 것을 추천합니다.