관절값에서 말단의 위치를 구하는 질문
정기구학 또는 순기구학(FK, Forward Kinematics)은 관절값과 기구 모델이 주어졌을 때 말단 프레임을 구하는 문제다. 위치만 구하는지 방향도 구하는지, 베이스와 도구 프레임이 무엇인지 먼저 정한다. 모델이 정확한 기하를 담고 있고 입력 관절의 순서·부호·영점이 맞아야 실제 장치와 비교할 수 있다. FK 계산이 가능하다는 사실은 임의의 목표에 도달하는 관절값을 찾았다는 뜻이 아니다. 그 반대 질문인 IK는 다음 단위에서 다룬다.
DH(Denavit–Hartenberg)는 관절 축과 프레임을 일정한 규칙으로 배치하여 링크 사이 변환을 네 파라미터로 표현하는 방법이다. 표준 DH와 수정 DH는 변환 순서와 프레임 배치가 다르므로 표의 숫자만 가져와 다른 관례의 식에 넣으면 안 된다. 여기서는 표준 DH만 사용하며 i번째 변환 A_i는 i 프레임 좌표를 i−1 프레임으로 바꾸는 것으로 정의한다. 열벡터 규약의 변환 곱은 다음과 같다.
R_z와 R_x는 지정 축 회전, T_z와 T_x는 지정 축 이동을 나타내는 4×4 기본 변환이다. 표준 프레임 배치에서 θ_i는 z_(i−1)축 주위의 회전, d_i는 그 축 방향 거리, a_i는 x_i축을 따라 두 관절 축 사이를 잇는 거리, α_i는 x_i축 주위의 축 비틀림 각이다. θ와 α의 계산 단위는 rad, a와 d는 m다. 축이 평행하거나 만나는 특수한 경우에도 선택한 프레임 정의를 문서화한다. 표의 각 열이 링크 외형의 길이와 자동으로 일치하지는 않는다.
회전 관절에서는 θ_i=q_i+θ_0i처럼 관절 변수 q_i와 고정 영점 오프셋 θ_0i를 구분한다. 직선 관절에서는 d_i가 변수가 될 수 있다. θ와 d를 모든 관절에서 동시에 자유롭게 바꾸는 것이 아니다. 저자 도구의 공식 DH 설명도 표준/수정 관례와 관절 종류를 나누어 다룬다. URDF의 임의 축과 origin을 DH 표에 옮길 때에는 모델 양쪽의 프레임을 맞춰 검증해야 한다.
두 회전 관절에서 식의 의미를 본다
베이스가 고정된 평면 2R 팔을 가정한다. R은 회전 관절이라는 뜻이며 두 축은 모두 +z다. 첫 링크 길이 L1=0.3 m, 둘째 L2=0.2 m, 도구 오프셋은 0이다. 첫 각 q1은 베이스 +x에서, 둘째 q2는 첫 링크 방향에서 둘째 링크까지 잰 상대각이다. 관절 영점 오프셋과 관절 제한은 이번 계산에서 0 또는 없음으로 가정한다. DH 표는 다음과 같다.
그림 M06.02-1. 본문의 L1=0.3 m, L2=0.2 m, q1=0°, q2=90° 자세다. 둘째 링크의 절대 방향은 q1+q2이며 q2는 첫 링크 기준 상대각이다. 도구 오프셋은 0이다. 직접 제작.
| i | a_i (m) | α_i (rad) | d_i (m) | θ_i |
|---|---|---|---|---|
| 1 | 0.3 | 0 | 0 | q1 |
| 2 | 0.2 | 0 | 0 | q2 |
첫 링크의 끝은 L1(cos q1, sin q1)이다. 둘째 링크의 절대 방향은 q1+q2이므로 그 방향의 L2 벡터를 더한다. 말단 위치 (x,y)와 평면 도구 방향 φ는 다음과 같다.
q1=q2=0이면 두 링크가 +x로 펴져 (0.5,0) m다. q1=90도, q2=0이면 둘째 링크도 +y를 향해 (0,0.5) m다. q1=0, q2=90도면 첫 링크는 +x, 둘째만 +y여서 (0.3,0.2) m다. 두 예의 q2=0과 q2=90도를 ‘둘째 링크의 절대 방향’으로 읽으면 계산이 뒤바뀐다.
변형으로 q1=30도, q2=−60도를 넣으면 둘째 절대각은 −30도다. cos 30도=√3/2, sin 30도=1/2이므로 x=(0.3+0.2)√3/2≈0.4330 m, y=0.3/2−0.2/2=0.05 m, φ=−30도다. 길이와 각도를 바꾼 결과가 예상 방향과 맞는지 그림으로 점검한다. 말단 프레임에서 도구가 0.1 m 더 돌출한다면 같은 φ 방향의 벡터를 추가해야 하며 world의 +x에 무조건 더하지 않는다.
바깥 반지름만으로 작업공간을 판단하지 않는다
이상적인 두 링크가 평면에서 제한 없이 회전하고 충돌과 두께를 무시할 때, 베이스에서 말단 원점까지의 거리 ρ는 |L1−L2| 이상 L1+L2 이하다. 가장 먼 경우는 두 링크가 같은 방향으로 펴졌을 때이고 가장 가까운 경우는 반대로 접혔을 때다. 이번 길이에서는 0.1≤ρ≤0.5 m인 고리 영역이 위치 작업공간이다. ρ=0.02 m는 바깥 반지름 안에 있지만 안쪽 구멍에 있어 도달할 수 없다. ρ=0.6 m도 바깥이라 불가다.
경계 0.1 m와 0.5 m는 이 이상 모델에서 위치로는 도달 가능하지만 펼침/접힘 자세는 운동학적으로 특별한 상태이며 임의 방향의 작은 운동을 만들기 어려울 수 있다. Jacobian과 특이점은 M06.03~04에서 설명한다. 실제 관절 범위·자체 충돌·도구 오프셋을 추가하면 작업공간은 달라진다. 위치가 가능해도 원하는 도구 방향까지 동시에 가능한지는 또 다른 질문이다. 평면 2R에 x,y,φ의 세 값을 모두 임의로 지정할 수 있다고 가정하지 않는다.
기존 3.2의 5축 DH 코드는 일반 알고리즘을 배우는 교육용 모델이며 실제 SO-101 치수를 주장하지 않는다. 여러 자세에서 위치와 회전을 기준 모델과 비교하고 관절 순서·영점·도구 프레임까지 확인한다. 선택 보충인 2링크 기구학 위젯은 길이 78/64 mm의 별도 개념 모델이라 안쪽 경계는 14 mm, 바깥은 142 mm다. 본문의 0.3/0.2 m 계산이나 실제 SO-101·동역학 실행과 혼동하지 않는다. 기본 활동은 아래 종이 계산으로 완결된다.