DH Parameter Calculator
데나빗-하텐버그 파라미터/순기구학 계산기
DH Parameter Calculator 소개
DH 파라미터 레퍼런스는 직렬 로봇 매니퓰레이터 기구학을 기술하는 데나빗-하텐버그 컨벤션을 다루는 종합 로보틱스 가이드입니다. 표준 DH 표기법(1955년, Rz-Tz-Tx-Rx 변환 순서)과 Craig의 수정 DH 컨벤션(Rx-Tx-Rz-Tz 역순), 두 방식의 핵심 차이(좌표계가 링크 끝/시작에 부착), 그리고 두 컨벤션의 4x4 동차 변환 행렬을 요소별 공식과 함께 완전히 설명합니다.
기구학 섹션에서는 순기구학(조인트 변수로부터 연쇄 변환 행렬 T_0n = T_01 * T_12 * ... * T_{n-1,n}을 통해 엔드이펙터 위치/자세 계산)을 Python/NumPy 및 MATLAB/Robotics Toolbox 구현과 함께 다룹니다. 역기구학은 해석적 방법(기하학적, 대수적, 3축 교차 Pieper 방법), 수치적 방법(Newton-Raphson, 야코비안 의사역행렬), 특이점에서도 안정적인 감쇠 최소 자승법(DLS)과 적응형 lambda를 설명합니다.
실제 사용 가능한 로봇 DH 파라미터 테이블을 수록합니다: PUMA 560(6DOF 산업용 표준), Universal Robots UR5(6DOF 협동 로봇, 수정 DH), SCARA(4DOF, 프리즈매틱 조인트 포함), Stanford Arm(6DOF RRP 구조), 교육용 2-DOF 평면 팔과 3-DOF 공간 팔 예제(순기구학/역기구학 완전 유도 포함). 좌표계 설정 규칙, 평행축/교차축 특수 케이스, 여유 자유도 로봇의 작업 공간 분석까지 포함됩니다.
주요 기능
- 4개 파라미터 정의와 변환 순서 비교가 포함된 표준 DH(1955)와 수정 DH(Craig) 컨벤션
- 두 DH 컨벤션의 요소별 공식이 포함된 4x4 동차 변환 행렬 완전 유도
- 실행 가능한 코드 예시가 포함된 Python(NumPy) 및 MATLAB(Robotics Toolbox) 순기구학 구현
- 해석적(기하학, Pieper), 수치적(야코비안 의사역행렬), DLS(적응형 감쇠) 등 역기구학 방법론
- 회전/직선 조인트별 야코비안 행렬 구성과 특이점 검출(det(J)=0, rank(J)<6)
- PUMA 560, UR5(수정 DH), SCARA, Stanford Arm, 2-DOF 평면 팔, 3-DOF 공간 팔의 DH 테이블
- 평행축, 교차축, 기저 좌표계, 말단 좌표계 등 특수 케이스를 다루는 좌표계 설정 규칙
- 불완전, 완전, 여유(7DOF) 자유도 로봇 구성을 다루는 DOF 및 작업 공간 분석
자주 묻는 질문
표준 DH와 수정 DH 컨벤션의 차이는 무엇인가요?
표준 DH(1955년)는 Rz(theta)-Tz(d)-Tx(a)-Rx(alpha) 순서로 변환하며 좌표계가 링크 끝(distal)에 부착됩니다. 수정 DH(Craig)는 Rx(alpha)-Tx(a)-Rz(theta)-Tz(d) 역순이며 좌표계가 링크 시작(proximal)에 부착됩니다. 최종 엔드이펙터 위치/자세는 동일하지만 중간 좌표계가 다르며, 한 모델에서 두 방식을 혼용해서는 안 됩니다.
DH 파라미터 4개는 무엇인가요?
표준 DH에서는 d_i(z_{i-1} 축 방향 링크 오프셋), theta_i(z_{i-1} 축 기준 조인트 회전각), a_i(x_i 축 방향 링크 길이), alpha_i(x_i 축 기준 비틀림각)입니다. 수정 DH에서는 첨자 인덱스가 변경되어 alpha_{i-1}, a_{i-1}을 사용하고, d_i와 theta_i는 z_{i-1} 대신 z_i를 기준으로 합니다.
어떤 로봇의 DH 테이블이 수록되어 있나요?
PUMA 560(6DOF, 표준 DH, mm 단위 링크 치수), UR5(6DOF, 수정 DH, 협동 로봇), SCARA(4DOF, 프리즈매틱 조인트 d_3), Stanford Arm(6DOF RRP, 프리즈매틱 조인트 d_3), 2-DOF 평면 팔(FK/IK 해석해 완전 유도), 3-DOF 공간 팔(RRR, x/y/z FK 방정식)의 완전한 DH 테이블을 제공합니다.
순기구학은 코드로 어떻게 구현되나요?
NumPy를 사용한 Python 구현을 제공합니다: dh_matrix() 함수가 theta, d, a, alpha로 한 조인트의 4x4 변환을 계산하고, forward_kinematics() 함수가 행렬 곱(T = T @ dh_matrix(...))으로 모든 조인트 변환을 연쇄합니다. Peter Corke의 Robotics Toolbox를 사용한 MATLAB 구현(Link 객체와 fkine() 메서드)도 제공합니다.
어떤 역기구학 방법이 다뤄지나요?
세 가지 접근법을 다룹니다: (1) 기하학적 접근, 대수적 풀이, 3축 교차 Pieper 방법을 포함한 해석적 방법(빠르고 모든 해를 구하지만 특정 구조에만 적용). (2) Newton-Raphson과 야코비안 역행렬/의사역행렬을 사용하는 수치적 방법. (3) dq = J^T * (J*J^T + lambda^2*I)^{-1} * dx 공식의 감쇠 최소 자승법(DLS)으로 적응형 lambda를 통해 특이점 근처에서도 안정적입니다.
야코비안 행렬은 어떻게 설명되나요?
야코비안 J(6xn)는 관절 속도를 TCP 속도에 매핑합니다: v = J(q) * dq. 회전 조인트 i의 열은 [z_{i-1} x (p_n - p_{i-1}); z_{i-1}], 직선 조인트 i의 열은 [z_{i-1}; 0]입니다. det(J)=0 또는 rank(J)<6일 때 특이점이 발생하며, 해당 배치에서 하나 이상의 자유도를 상실합니다.
좌표계 설정 규칙은 어떻게 작동하나요?
z_i 축은 조인트 i+1의 회전/이동 축과 정렬하고, x_i 축은 z_{i-1}에서 z_i로의 공통 수선 방향(교차하면 z_{i-1} x z_i 방향)을 따릅니다. 특수 케이스로 평행축(alpha_i=0, x_i 자유 선택), 교차축(a_i=0), 기저 좌표계(q1=0일 때 x_0과 x_1 일치), 말단 좌표계(보통 마지막 축 방향 정렬)가 있습니다.
작업 공간 분석 섹션은 어떤 내용인가요?
자유도와 작업 공간을 다룹니다: 6DOF 이상은 3D 공간에서 완전한 위치+자세 제어, 6 미만은 불완전 자유도, 6 초과는 여유 자유도입니다. 도달 가능 작업 공간은 엔드이펙터가 도달할 수 있는 모든 위치, 능숙 작업 공간은 모든 방향에서 접근 가능한 영역입니다. KUKA iiwa 같은 7DOF 여유 자유도 로봇의 무한 역기구학 해, 특이점 회피, 장애물 회피 최적화 능력을 설명합니다.