9.56 DH 파라미터 할당의 체계적 방법
1. 체계적 절차의 필요성
데나빗-하텐버그 매개변수를 매니퓰레이터에 할당하는 작업은 단순한 측정이 아니라, 각 링크에 좌표계를 부착하고 그로부터 매개변수를 추출하는 다단계 과정이다. 이 과정이 일관되지 않으면 같은 매니퓰레이터에 대해 사람마다 다른 매개변수가 산출되어 호환성 문제를 일으킨다. 체계적인 할당 절차는 이러한 문제를 방지하고, DH 매개변수의 표준성을 유지한다.
2. 표준 DH의 체계적 할당 절차
다음은 표준 DH 규약에 따른 체계적 할당 절차이다.
2.1 단계: 관절 축 식별
매니퓰레이터의 모든 관절 축을 식별한다. n개의 관절이 있으면 n개의 회전 또는 직선 운동 축이 존재한다. 각 축에 인덱스를 부여한다: z_0, z_1, \ldots, z_{n-1}.
이때 z_i는 i+1번째 관절의 운동 축이다(표준 DH의 인덱싱). 따라서 z_0이 첫 번째 관절의 운동 축, z_{n-1}이 마지막 관절의 운동 축이다.
2.2 단계: 베이스 좌표계 \{0\} 설정
베이스 좌표계의 원점을 선택한다. 통상 매니퓰레이터의 베이스에 있는 첫 번째 관절 위에 또는 그 근처에 위치시킨다. z_0 축은 첫 번째 관절의 운동 축으로 고정된다. x_0과 y_0 축은 편의에 따라 자유롭게 선택할 수 있으나, 통상 작업 영역의 자연스러운 방향으로 설정한다.
베이스 좌표계의 선택은 DH 매개변수 a_1, \alpha_1, d_1, \theta_1에 영향을 준다. 다른 선택은 다른 매개변수 값을 산출한다.
2.3 단계: 좌표계 \{i\} 부착 (i = 1, 2, \ldots, n-1)
각 링크 i에 대해 다음 부착 규칙을 적용한다.
2.3.1 z_i축 설정
z_i는 이미 1단계에서 결정된 i+1번째 관절의 운동 축이다.
2.3.2 x_i축 설정
x_i의 방향은 z_{i-1}과 z_i의 관계에 따라 결정된다.
- z_{i-1}과 z_i가 평행하지 않고 교차하지 않는 경우: 두 축 사이에 유일한 공통 수선이 존재한다. x_i는 이 공통 수선의 방향이며, z_{i-1}에서 z_i를 향한다.
- z_{i-1}과 z_i가 평행한 경우: 공통 수선이 무한히 많이 존재한다. x_i를 그 중 하나로 선택하되, 보통 d_i나 a_i를 0으로 만드는 방향으로 선택한다.
- z_{i-1}과 z_i가 교차하는 경우: 공통 수선이 점이고 그 방향이 정의되지 않는다. x_i를 두 축 모두에 수직한 방향, 즉 z_{i-1} \times z_i 방향으로 설정한다.
2.3.3 원점 설정
좌표계 \{i\}의 원점은 x_i축과 z_i축의 교점이다. 두 축이 교차하지 않으면 공통 수선의 발(foot)이 원점이다.
2.3.4 y_i축 설정
y_i = z_i \times x_i로 우수 좌표계를 형성한다.
2.4 단계: 말단 좌표계 \{n\} 부착
말단 좌표계는 매니퓰레이터의 마지막 링크에 부착되며, 통상 도구 중심점(tool center point, TCP)에 위치한다.
- z_n 축: 말단 도구의 작업 방향(예: 그리퍼의 접근 방향)
- x_n 축: z_{n-1}과 z_n 사이의 공통 수선 또는 그에 수직한 방향
- 원점: TCP 위치
2.5 단계: DH 매개변수 추출
각 링크 i에 대해 인접 좌표계 \{i-1\}과 \{i\} 사이의 변환을 분석하여 4개의 DH 매개변수를 추출한다.
- a_i: z_{i-1}축과 z_i축 사이의 거리(공통 수선의 길이)
- \alpha_i: z_{i-1}축에서 z_i축으로의 비틀림 각도(x_i축을 회전축으로)
- d_i: x_{i-1}축과 x_i축 사이의 거리(z_{i-1}축을 따라)
- \theta_i: x_{i-1}축에서 x_i축으로의 각도(z_{i-1}축을 회전축으로)
회전 관절에서는 \theta_i가 변수이고 직선 관절에서는 d_i가 변수이다.
3. 변형 DH의 체계적 할당 절차
변형 DH의 좌표계 부착 규칙은 표준 DH와 다르다.
3.1 단계: 관절 축 식별
표준 DH와 동일하게 관절 축을 식별하지만, 인덱싱이 다르다. z_i는 i번째 관절의 운동 축이다(변형 DH의 인덱싱).
3.2 단계: 좌표계 \{i\} 부착
좌표계 \{i\}가 i번째 관절에 부착된다. z_i는 i번째 관절의 운동 축이다.
3.3 단계: x_i축 설정
x_i는 z_{i-1}과 z_i 사이의 공통 수선이지만, 표준 DH와 달리 인덱싱이 변형 DH 규약에 따른다.
3.4 단계: 매개변수 추출
변형 DH의 매개변수는 (a_{i-1}, \alpha_{i-1}, d_i, \theta_i)이며, 표준 DH와 인덱싱이 다르다.
4. 평행 축의 처리
연속된 두 관절 축 z_{i-1}과 z_i가 평행한 경우는 자주 발생하며, 매니퓰레이터의 어깨와 팔꿈치가 같은 평면에서 운동하는 경우가 대표적이다. 평행 축은 다음과 같이 처리한다.
4.1 공통 수선의 모호성
평행한 두 직선 사이의 공통 수선은 무한히 많다. 따라서 x_i의 위치를 임의로 선택할 수 있다.
4.2 관례적 선택
공통 수선의 위치를 결정할 때 다음 기준 중 하나를 사용한다.
- d_i = 0이 되도록 x_i의 위치를 x_{i-1}의 직선 상에 선택
- a_i나 d_i 중 하나가 자연스러운 0 또는 단순한 값을 가지도록 선택
4.3 매개변수의 불유일성
평행 축의 처리 방식에 따라 같은 매니퓰레이터의 DH 매개변수가 다를 수 있다. 이는 평행 축의 본질적 특성이며, 어느 처리도 수학적으로 옳다.
5. 교차 축의 처리
연속된 두 관절 축이 한 점에서 교차하는 경우, 공통 수선이 점이 되어 길이가 0이다. 이 경우 a_i = 0이고, x_i는 두 축 모두에 수직한 방향(z_{i-1} \times z_i 또는 그 반대 방향)으로 설정한다. 손목 관절과 같이 한 점에서 만나는 관절들의 처리에 적용된다.
6. 첫 번째 좌표계와 마지막 좌표계의 특별한 처리
6.1 첫 번째 좌표계 \{0\}
베이스 좌표계 \{0\}의 원점과 x_0 축은 자유롭게 선택할 수 있다. 이 선택이 a_1, \alpha_1, d_1, \theta_1에 영향을 준다. 통상 다음 기준으로 선택한다.
- z_0이 첫 번째 관절 축과 일치하도록
- 베이스의 자연스러운 방향에 맞춰 x_0, y_0 설정
- 가능한 한 많은 매개변수를 0으로 만드는 방향으로 선택
6.2 마지막 좌표계 \{n\}
말단 좌표계 \{n\}의 위치와 방향은 응용에 따라 결정된다. 그리퍼의 중심, 카메라의 광학 중심, 도구의 끝 등이 적절한 선택이다. 사용자의 작업 명령(예: “도구 끝을 (x, y, z)에 위치시켜라”)이 어느 점을 가리키는지에 따라 결정된다.
7. 할당의 일관성 검증
DH 매개변수가 올바르게 할당되었는지 검증하는 방법은 다음과 같다.
7.1 알려진 자세에서의 일치성
모든 관절 각이 0(또는 명목 자세)일 때 순기구학으로 계산한 말단 장치 위치가 실제 매니퓰레이터의 위치와 일치하는지 확인한다.
7.2 단순 운동의 검증
한 관절만 단독으로 회전시켰을 때, 말단 장치가 예상대로 움직이는지 확인한다. 다른 관절을 모두 고정하고 한 관절을 일정 각도 변경한 후 위치 변화를 측정한다.
7.3 작업 영역 검증
매니퓰레이터의 모든 가능한 자세를 탐색하여 작업 영역이 실제 매니퓰레이터의 작업 영역과 일치하는지 확인한다.
7.4 실험적 캘리브레이션
레이저 트래커, 외부 측정 시스템 등을 사용하여 실제 말단 장치 위치를 측정하고, 명목 DH 매개변수와의 차이를 계산한다. 큰 차이가 발생하면 할당 오류를 의심한다.
8. 흔한 오류와 회피 방법
8.1 좌표계 부착 오류
x_i 축의 방향 선택이 잘못되어 \theta_i나 \alpha_i의 부호가 반대로 추출되는 오류가 흔하다. 회피 방법은 부착 후 그림으로 좌표계를 시각화하고 일관성을 확인하는 것이다.
8.2 인덱싱 혼동
표준 DH와 변형 DH의 인덱싱을 혼동하면 매개변수의 인덱스가 한 단계 어긋난다. 회피 방법은 사용 중인 규약을 명시하고 일관되게 적용하는 것이다.
8.3 평행 축의 임의 선택
평행 축의 공통 수선을 임의로 선택할 수 있다는 사실을 알지 못하면 매개변수가 부정확해 보인다. 실제로는 어느 선택도 옳으며, 결과 매개변수가 다를 뿐이다.
8.4 단위 혼동
길이 단위(미터 vs. 밀리미터)와 각도 단위(라디안 vs. 도)의 혼동으로 오류가 발생할 수 있다. 회피 방법은 단위를 명시적으로 표기하는 것이다.
9. DH 매개변수 표의 작성
체계적 할당 후 DH 매개변수는 표 형식으로 정리한다.
| 링크 i | 관절 유형 | a_i | \alpha_i | d_i | \theta_i |
|---|---|---|---|---|---|
| 1 | 회전 | a_1 | \alpha_1 | d_1 | \theta_1^* |
| 2 | 회전 | a_2 | \alpha_2 | d_2 | \theta_2^* |
| … | … | … | … | … | … |
별표(*)는 관절 변수를 나타낸다.
10. 자동화 도구의 활용
CAD 모델로부터 DH 매개변수를 자동으로 추출하는 도구가 존재한다. SolidWorks, Catia, NX 등의 CAD 소프트웨어와 일부 로봇 공학 라이브러리는 부품 간의 관계로부터 DH 매개변수를 산출하는 기능을 제공한다. 그러나 자동 추출은 좌표계 부착 규약에 의존하므로, 수동 검증이 필요하다.
11. 참고 문헌
- Denavit, J., & Hartenberg, R. S. (1955). “A Kinematic Notation for Lower-Pair Mechanisms Based on Matrices.” Journal of Applied Mechanics, 22, 215–221.
- Craig, J. J. (2018). Introduction to Robotics: Mechanics and Control (4th ed.). Pearson.
- Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
- Spong, M. W., Hutchinson, S., & Vidyasagar, M. (2020). Robot Modeling and Control (2nd ed.). Wiley.
- Paul, R. P. (1981). Robot Manipulators: Mathematics, Programming, and Control. MIT Press.
version: 1.0