어떤 작업에서 잃는 방향인가
특이점은 Jacobian이 해당 로봇과 작업에서 달성할 수 있는 최대 rank보다 낮아지는 자세다. rank는 독립적으로 만들 수 있는 순간 속도 방향의 수로 이해할 수 있다. 평면 위치 (x,y)를 제어하는 2R 팔의 2×2 위치 Jacobian은 보통 rank 2지만, 두 링크가 펴지거나 접히면 rank 1이 될 수 있다. 임의의 두 평면 속도 성분을 독립적으로 만들던 능력 하나를 잃는다. 관절 자체가 고장 났다는 뜻은 아니다.
그림 M06.04-1. 펼친 2R 팔은 말단 (0.5,0) m에 도달하지만 현재 Jacobian의 x방향 일차 속도 성분은 0이다. 특이점과 작업공간 밖 목표를 같은 뜻으로 읽지 않는다. 직접 제작.
작업의 차원이 중요하다. 관절이 적은 로봇이 임의의 6차원 말단 운동을 못 한다는 사실과, 그 로봇의 평소 최대 rank에서 추가로 떨어지는 특이 자세는 구별한다. 직사각형 Jacobian에 정방행렬의 determinant를 무조건 적용하지도 않는다. 이 단위는 평면 위치 작업의 2×2 경우를 계산한다. 저자 특이점 설명도 최대 가능한 rank와 작업 방향을 기준으로 한다.
M06.03의 2R Jacobian에서 두 열을 전개하면 다음 행렬식이 나온다. L1,L2는 링크 길이(m), q2는 둘째 상대각(rad)이다. J의 민감도 단위는 m/rad이므로 determinant의 단위 스케일은 m²/rad²다.
L1=0.3 m, L2=0.2 m에서 q2=90도면 determinant는 0.06이고, q2=0 또는 180도면 0이다. q1=q2=0인 펼침 자세의 J는 첫 행이 (0,0), 둘째 행이 (0.5,0.2)다. 어느 관절 속도를 넣어도 현재의 x방향 일차 속도는 0이다. 그런데 말단 위치 (0.5,0) m는 바깥 경계에서 도달 가능한 점이다. 따라서 ‘특이점이라 그 위치에 도달할 수 없다’라는 설명은 틀리다. 반대로 (0.6,0) m는 작업공간 밖이라 기하적으로 불가하다. 둘을 같은 실패 사유로 쓰지 않는다.
특이점 근처에서는 작은 말단 속도도 큰 관절 속도를 요구할 수 있다. q1=0, q2=5도에서 determinant는 약 0.005229다. 이 자세에 x속도 0.01 m/s와 y속도 0을 정확히 요구하면 선형 속도식을 풀어 q1 속도 약 0.3810 rad/s, q2 속도 약 −0.9547 rad/s를 얻는다. q2=90도에서 같은 요구는 (0,−0.05) rad/s다. 목표 속도만 보고 작은 동작이라고 결론 내릴 수 없는 이유다. determinant의 크기는 길이와 단위에도 영향을 받으므로 모든 로봇에 같은 숫자 임계값을 적용하지 않는다. DLS는 증분을 조절하는 도구이지만 잃은 운동 방향이나 장치의 한계를 없애지는 않는다.
위치가 맞는 해도 관절 조건을 통과해야 한다
목표 (0.3,0.2) m에는 M06.03에서 구한 A=(0도,90도), B≈(67.380도,−90도)의 두 해가 있다. q1 범위를 [−45도,45도], q2 범위를 [−100도,100도]로 가정하면 A는 범위 안이고 B는 q1 한계를 넘는다. 이는 기하 해가 없다는 뜻이 아니라 이번 관절 제한 아래 B를 쓸 수 없다는 뜻이다. A도 충돌과 도구 방향·속도 조건은 아직 미검사다.
q2의 범위를 [−80도,80도]로 더 좁히면 A와 B 모두 제외된다. A의 90도를 임의로 80도로 잘라 ‘제한을 지킨 IK 해’라고 부르면 안 된다. FK를 다시 계산하면 (0.334730,0.196962) m로 목표와 차이가 약 (0.034730,−0.003038) m다. 제한을 맞추면서 원래 목표를 잃은 것이다. 목표를 수정하는 정책이라면 수정 사실과 허용 오차를 명시해야 한다. 원래 목표의 정확한 해라는 표시로 남기지 않는다.
기하 해가 여러 개인 경우에는 범위·충돌·도구 자세·잔차를 검사한 후보 중에서 선택한다. 수치 IK의 초기값을 현재 관절 근처로 두는 것이 가까운 분기를 얻는 데 도움이 될 수 있지만 반드시 그 분기나 전역 최적 경로를 보장하는 것은 아니다. 각 후보의 종료 상태와 검증 범위를 기록하고, 후보가 모두 탈락하면 조용히 임의의 해를 보내지 말고 보류 이유를 남긴다.
가까운 끝점과 이동 가능한 경로는 다르다
목표 위치가 조금씩 변해도 매번 IK 분기를 무작위로 고르면 관절값이 크게 뛸 수 있다. 현재 q=(2도,88도)에서 A=(0도,90도)의 변화는 (−2도,+2도)다. 반면 B로 바꾸면 q1은 약 +65.380도, q2는 −178도 바뀐다. 두 후보의 위치가 같아도 경로와 속도 요구는 다르다. 단순 관절 거리 기준을 쓸 때에도 관절별 단위·가중치와 제한을 정해야 한다.
가상 갱신 간격이 0.02 s이고 관절 변화가 2도라면 평균 속도 크기는 100도/s≈1.745 rad/s다. ‘각도는 2도뿐’이라는 설명으로 속도 제한을 넘길 수 없다. 실제 가속도·jerk·구동기 추종과 충돌은 더 확인해야 한다. 두 끝점이 범위 안이어도 그 사이의 경로가 장애물을 피하고 모든 제약을 지키는 것은 아니다. IK 해의 유효성과 궤적 계획의 유효성을 구분한다.
각도 표현의 wrap도 주의한다. 실제로 제한 없이 연속 회전하는 한 관절에서 179도와 −179도는 표현 경계를 사이에 둔 가까운 방향일 수 있어 짧은 변화는 +2도다. 그러나 하드 한계가 [−180도,180도]인 제한 관절에서는 그 방향으로 180도를 넘어가는 경로를 자동 허용할 수 없다. 케이블 감김과 다회전 상태도 숫자 표현만으로 사라지지 않는다. 주기적인 수학 각도와 실제 가능한 이동을 분리한다.
선택 2링크 위젯은 78/64 mm의 다른 기하 모델이다. 안쪽 14 mm와 바깥 142 mm의 도달 경계 및 펼침/접힘을 관찰하는 보충으로 쓸 수 있다. 이 단위의 0.3/0.2 m 수치나 실제 SO-101의 충돌/동역학 검증을 대신하지 않는다. 기존 3.3 IK에 연결할 때도 해·제약·경로를 따로 판정한다.