직렬 사슬의 식을 병렬 구조에 그대로 옮기지 않는다
직렬 팔은 베이스에서 말단까지 관절과 링크가 이어지는 열린 경로를 대표한다. SO-101 사례에서는 팔 자세를 만드는 5개 관절과 그리퍼 구동기 1개를 구분한다. 구동기 수가 6이라는 사실은 팔이 임의의 6차원 말단 자세를 만들 수 있다는 뜻이 아니다. 관절 프레임·축·영점·도구를 고정한 모델에서 FK와 제한을 검사한다. 기존 교재의 교육용 DH 치수를 실제 장치의 명세로 대체하지 않는다.
그림 M06.06-1. 각 칸은 서로 다른 역할/근거다. 나란히 비교할 항목이며 위아래가 시간 순서를 뜻하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.
델타는 여러 다리가 베이스와 움직이는 플랫폼을 함께 연결하는 병렬 구조의 대표다. 전형적인 3병진 델타는 플랫폼 방향을 유지하는 링크 구성과 여러 수동 관절을 포함한다. 수동 관절이 보인다고 모두 독립적인 모터 명령 변수를 더하지 않는다. 닫힌 연결을 동시에 만족해야 한다. 회전축이 추가된 변형도 있으므로 델타라는 이름만으로 항상 3자유도라고 단정하지 않는다. 저자 폐루프 자료는 이런 변형과 제약을 구분한다.
폐루프를 읽는 최소 예로, 플랫폼 방향이 고정된 가상 모델에서 한 다리의 끝점 거리 조건을 보자. 움직이는 플랫폼 중심은 p, 그 중심에서 연결점까지의 고정 벡터는 b_j, 구동 관절값 q_j에 따른 팔꿈치 점은 a_j(q_j)다. 모두 같은 베이스 프레임의 m 단위 좌표이며 j는 다리 번호다. 아래쪽 연결 길이를 L_j라고 하면 필요한 조건 하나는 다음과 같다.
합성 후보에서 p=(0,0,−0.2) m, b_j=0, a_j=(0.1,0,0) m, L_j=0.2 m라면 왼쪽은 0.1²+0.2²=0.05 m², 오른쪽은 0.04 m²다. 이 다리의 거리 조건부터 어겨 후보를 제외한다. 플랫폼 중심이 그럴듯해 보인다는 이유로 다른 연결을 무시할 수 없다. 한 조건을 만족해도 나머지 다리와 수동 관절·플랫폼 자세·특이점·충돌 조건이 남는다. 이 축약식은 실제 델타 전체의 해석 모델을 대체하지 않는다.
그림 M06.06-2. 직렬 팔은 베이스에서 말단으로 하나의 사슬을 따른다. 이 델타 연결 개념도는 세 다리가 같은 플랫폼을 함께 제약하는 차이를 보인다. 초록 이중선은 평행한 하부 링크 쌍의 역할을 나타내며 실제 3D 배치/관절 축/치수·운동 해를 정하는 도면은 아니다. 직접 제작.
원시 count가 모델의 관절각이 되는 계약
엔코더 count는 정한 디코딩 방식의 숫자다. 모델의 0 rad는 기계적 기준 자세이며 전원을 켰을 때의 숫자 0이나 특정 제조사 중간 숫자와 자동으로 같지 않다. 증분형과 절대형의 범위·wrap·재시작 의미도 확인한다. 다음은 모터 축을 측정하는 가상 회전 센서의 단순 변환이다.
c는 현재의 연속으로 해석한 count, c0는 모델 영점의 count, N은 모터 1회전당 최종 디코딩된 count다. i는 모터 회전/관절 출력 회전의 크기 비율, s는 출력 관절의 양의 방향을 맞추는 +1 또는 −1이다. q는 rad다. 이 예는 전달이 이상적이고 영점 기준이 같은 경우다. 센서가 이미 출력 축을 읽으면 그 축의 N을 쓰며 기어비를 다시 나누지 않는다. 드라이버가 이미 보정한 각도를 제공하는 경우에도 같은 보정을 중복 적용하면 안 된다.
가상 축의 c0=2048,N=4096,i=1,s=−1이라고 정하자. c=1536이면 c−c0=−512, 부호를 적용한 회전 비율은 512/4096=1/8이므로 q=π/4=45도다. c=2560이면 반대로 q=−π/4다. 부호는 엔코더 숫자의 증가가 모델의 양의 방향과 같은지 결정한다. 이 4096과 2048은 교육용 가정이며 SO-101의 모든 설정과 단위 계약을 보장하는 숫자가 아니다.
영점을 2000으로 잘못 쓰면 실제 영점 기록 c=2048에서도 q=−48×360/4096=−4.21875도가 나온다. 부호만 잘못 두면 c=1536이 −45도로 뒤집힌다. N을 2048로 잘못 쓰면 같은 512count 차이를 90도로 환산하여 배율 오류가 생긴다. 모터 측 기어비 i=2인 다른 모델이라면 512count의 출력각은 22.5도가 되지만, 센서가 어느 축을 읽는지 확인하지 않고 이 값을 실제 장치에 적용하지 않는다.
기준점에 맞춘 것과 검증한 것을 나눈다
보정에는 알려진 기준과 모델 버전이 필요하다. 가상 기준 기록이 c=2048에서 q=0, c=1024에서 q=+90도라면 위 영점과 음의 부호, 출력 1회전당 유효 4096count가 이 두 기록과 맞는다. 그러나 센서가 모터 쪽이라면 N과 i의 곱만으로 같은 출력 스케일이 나올 수 있다. 두 기록만으로 센서 해상도와 기어비를 각각 독립 추정했다고 주장하지 않는다. 제조사 문서와 센서 위치 정보가 추가로 필요하다.
맞춤에 쓰지 않은 별도 기준 c=1536/q=45도를 비교하면 새 자세에서 일관성을 확인할 수 있다. 잘못된 영점 2000의 후보는 40.78125도를 예측하여 기준에서 −4.21875도 벗어난다. 이 오차의 모양은 단서지만 한 점으로 모든 비선형성·백래시·열 변화·정확도를 검증한 것은 아니다. 반전 방향과 부하·다른 자세·기준 측정의 불확실성이 추가될 수 있다. 본 단위에서는 이미 주어진 가상 기록을 비교할 뿐 실제로 팔을 움직여 자료를 수집하지 않는다.
SO-101의 공개 모델 자료에는 관절 범위 중앙을 가상 영점으로 쓰는 모델과 수평으로 편 자세를 영점으로 쓰는 모델이 구분되어 있다. 서로 다른 모델과 캘리브레이션 파일을 섞으면 같은 숫자가 다른 물리 자세를 뜻한다. 그리퍼의 정규화된 개폐값도 팔의 회전각 rad와 별도 의미일 수 있다. 공식 모델 README의 영점과 그리퍼 주의를 읽고 적용 파일 버전을 남긴다. ‘그리퍼 100’에 각도 변환을 무조건 적용하지 않는다.
최종 점검표에는 로봇/모델 개정, 관절 이름과 순서, 단위·부호·영점·센서 축·count 정의·전달비, 보정에 사용한 기준과 별도 검증 기록, 시각과 관절 한계를 남긴다. 이름 순서를 바꾼 배열은 모든 개별 숫자가 정상이어도 다른 관절에 연결될 수 있다. 기존 3.4의 Leader–Follower 경로는 이 계약을 이해한 뒤 읽는 상세 연결이며, 실제 보정이나 구동은 이 기본 활동의 범위가 아니다.