갤러리
MIT 모드 이해하기 — Kp·Kd·토크 명령은 어떤 역할을 하나
로봇 관절 액추에이터 깊이 읽기 — 제2편
MIT 모드 이해하기 — Kp·Kd·토크 명령은 어떤 역할을 하나
목표위치, 목표속도, Kp, Kd와 토크 명령값을 하나의 CAN 프레임에 담는 MIT 모드의 기본 원리와 8바이트 데이터 구성을 설명합니다. 예시 제품: GSA56 시리즈
먼저 확인해 주세요
MIT 모드는 관절의 위치, 속도와 토크 명령을 조합할 수 있는 제어방식입니다. 그러나 MIT 모드 지원만으로 사람과의 충돌 안전이나 기능안전이 확보되는 것은 아닙니다. 사람과 접촉할 수 있는 장비에는 별도의 하드웨어 비상정지, 기계적 제한, 신뢰할 수 있는 토크 제한과 위험성 평가가 필요합니다.Kp와 Kd의 데이터 입력 범위는 안전한 권장 설정 범위와 같은 의미가 아닙니다. 실제 튜닝은 모터 본체를 확실히 고정한 상태에서 낮은 이득과 제한된 전류로 시작해야 합니다.
MIT 모드는 목표위치와 목표속도, 위치·속도 오차에 대한 이득과 피드포워드 토크 명령을 하나의 프레임으로 전달하는 방식입니다. 위치오차에 비례하는 복원 성분과 속도오차에 비례하는 감쇠 성분을 조합해 관절의 반응을 조절할 수 있습니다.
이 글에서는 MIT 모드의 일반적인 물리적 의미와 GSA56 매뉴얼에 기재된 CAN 프레임의 비트 구성을 나누어 설명합니다. 실제 드라이버 내부의 연산 순서, 토크 환산 방식, 포화 및 제한 로직은 펌웨어에 따라 달라질 수 있으므로 제공 프로그램과 실기 동작을 함께 확인해야 합니다.
1. MIT 모드를 이해하기 위한 기본 제어 관계
MIT 계열 제어는 일반적으로 다음 관계로 이해할 수 있습니다. GSA56 프레임에는 아래 관계에 필요한 위치, 속도, Kp, Kd와 토크 명령값이 포함되지만, 실제 드라이버 내부의 연산 순서와 제한 로직은 펌웨어 사양을 따라야 합니다.
내부 토크 명령값 Tcmd = Kp × (목표위치 − 현재위치) + Kd × (목표속도 − 현재속도) + t_ff
프레임으로 전달되는 값은 목표위치 p_des, 목표속도 v_des, Kp, Kd와 토크 명령 t_ff입니다. 일반적인 MIT 제어 관계에서는 위치와 속도 피드백을 이용해 위치오차 및 속도오차에 대응하는 토크 명령을 만들고, 이 값이 모터 전류 제어의 목표로 사용됩니다.
매뉴얼 기준 위치 단위는 rad, 속도 단위는 rad/s로 표기되어 있으며 1rad는 약 57.3°입니다. Kp와 Kd의 물리 단위는 일반적인 임피던스 제어 관계에서 각각 N·m/rad와 N·m·s/rad로 해석할 수 있습니다.
다만 제품 프로그램에서 사용하는 실제 단위, 기준축과 스케일은 펌웨어 및 파라미터 설정을 우선 확인해야 합니다.
다만 제품 프로그램에서 사용하는 실제 단위, 기준축과 스케일은 펌웨어 및 파라미터 설정을 우선 확인해야 합니다.
단위와 기준축을 먼저 확인하세요: 아래 설명은 위치, 속도와 토크 명령이 감속기 출력축 기준의 rad, rad/s와 N·m로 환산된다는 전제입니다.
실제 통신값이 모터 입력축 기준인지 출력축 기준인지, 감속비와 KT_OUT 설정이 어떻게 반영되는지는 제공 프로그램과 실기 동작으로 확인해야 합니다. 기준축이나 환산계수가 다르면 같은 숫자를 입력해도 실제 위치, 속도와 토크가 달라집니다.
실제 통신값이 모터 입력축 기준인지 출력축 기준인지, 감속비와 KT_OUT 설정이 어떻게 반영되는지는 제공 프로그램과 실기 동작으로 확인해야 합니다. 기준축이나 환산계수가 다르면 같은 숫자를 입력해도 실제 위치, 속도와 토크가 달라집니다.
2. Kp — 위치오차에 대한 복원 성분
Kp는 목표위치와 현재위치의 차이에 비례하는 토크 명령 성분을 만듭니다. 관절이 목표위치에서 멀어질수록 더 큰 복원 성분이 발생합니다. 일반적으로 Kp가 높으면 위치오차에 더 강하게 반응하고, 낮으면 외력에 상대적으로 부드럽게 반응합니다.
이론 예시 — Kp=20으로 해석할 경우
위치오차가 0.1rad라면:
Kp 성분 = 20 × 0.1 = 2N·m
※ 이 계산은 Kp가 N·m/rad 단위로 적용되고 해당 값이 출력축 토크 기준으로 환산된다는 전제의 이론 예시입니다. 실제 출력은 전류 제한, 토크 제한, 감속기 효율, 마찰과 보호 설정의 영향을 받습니다.
같은 위치오차에서 Kp를 100으로 해석하면 수식상 10N·m의 내부 토크 명령값이 계산됩니다. 하지만 제품의 명목 최대토크가 7N·m라면 실제 출력은 모터와 드라이버의 전류 또는 토크 제한에 걸릴 수 있습니다.
정확히 어느 값에서 어떤 방식으로 포화되는지는 전류 제한, KT_OUT, 감속비 관련 설정과 펌웨어의 제한 로직을 확인해야 합니다.
정확히 어느 값에서 어떤 방식으로 포화되는지는 전류 제한, KT_OUT, 감속비 관련 설정과 펌웨어의 제한 로직을 확인해야 합니다.
매뉴얼에 기재된 Kp 데이터 범위는 0~500입니다. 이 값은 프레임에서 표현할 수 있는 입력 범위이며 모든 부하에서 500까지 안전하게 사용할 수 있다는 뜻은 아닙니다. 실제 튜닝은 낮은 값에서 시작해 위치 응답, 진동, 전류와 온도를 함께 확인하면서 단계적으로 조정해야 합니다.
3. Kd — 속도오차에 대한 감쇠 성분
Kd는 목표속도와 현재속도의 차이에 비례하는 토크 명령 성분을 만듭니다. 위치 제어에서 Kp만 사용하면 목표 부근을 반복해서 지나치는 진동이 발생할 수 있으며, Kd는 이러한 움직임을 감쇠시키는 역할을 합니다.
매뉴얼 주의사항
위치 제어 시 Kd를 0으로 설정하지 않도록 안내되어 있습니다. 감쇠가 부족하면 진동이나 발진이 발생하고 모터와 기구에 충격을 줄 수 있습니다.
위치 제어 시 Kd를 0으로 설정하지 않도록 안내되어 있습니다. 감쇠가 부족하면 진동이나 발진이 발생하고 모터와 기구에 충격을 줄 수 있습니다.
매뉴얼에 기재된 Kd 데이터 범위는 0~5입니다. 이 범위 역시 프레임에서 표현할 수 있는 값의 범위이며 그대로 권장 튜닝 범위를 의미하지는 않습니다.
목표 부근에서 진동한다고 Kd만 무조건 높여서는 안 됩니다. Kd가 과도하면 속도 피드백의 노이즈가 토크 명령에 크게 반영되거나 움직임이 지나치게 둔해질 수 있습니다.
낮은 Kp·Kd와 제한된 전류에서 시작해 작은 단계로 조정하고, 진동이 지속되면 부하 관성, 기구 유격, 고정 상태, 엔코더 노이즈와 제어주기를 함께 점검해야 합니다.
낮은 Kp·Kd와 제한된 전류에서 시작해 작은 단계로 조정하고, 진동이 지속되면 부하 관성, 기구 유격, 고정 상태, 엔코더 노이즈와 제어주기를 함께 점검해야 합니다.
4. t_ff — 미리 더하는 피드포워드 토크 명령
t_ff는 위치오차나 속도오차와 별도로 더해지는 토크 명령값입니다. 중력처럼 방향과 크기를 미리 계산할 수 있는 부하를 보상하거나 특정한 토크 명령을 직접 더하는 용도로 활용할 수 있습니다.
예를 들어 수평 자세에서 계산된 출력축 기준 정적 중력토크가 2.35N·m이고, 제품의 t_ff 단위가 출력축 기준 N·m로 설정되어 있다면 좌표계의 토크 방향과 부호에 맞춰 이에 대응하는 t_ff를 검토할 수 있습니다.
단위와 기준축이 확인되지 않은 상태에서 2.35를 그대로 입력해서는 안 됩니다. 실제 중력토크는 관절 각도에 따라 달라지므로 일정한 값을 모든 자세에 그대로 적용해서도 안 됩니다.
단위와 기준축이 확인되지 않은 상태에서 2.35를 그대로 입력해서는 안 됩니다. 실제 중력토크는 관절 각도에 따라 달라지므로 일정한 값을 모든 자세에 그대로 적용해서도 안 됩니다.
중력보상값이 정확하면 Kp가 중력부하에 대응하기 위해 만들어야 하는 정상상태 오차를 줄일 수 있습니다. 그러나 질량과 무게중심의 모델 오차, 감속기 마찰과 효율 등의 영향이 있으므로 t_ff를 적용했다고 항상 처짐이 완전히 사라지는 것은 아닙니다. 실제 장비에서는 낮은 값에서 시작해 관절 방향, 움직임, 전류와 온도를 확인해야 합니다.
5. 파라미터 조합에 따른 수식상 동작
| 동작 해석 | 대표 설정 | 일반적인 제어 관계 |
| 위치·임피던스 제어 | p_des 지정, Kp·Kd 사용, 필요 시 t_ff 추가 | 위치오차 + 속도오차 + 피드포워드 |
| 속도 추종 관계 | Kp=0, Kd≠0, v_des 지정 | Tcmd = Kd × (목표속도 − 현재속도) + t_ff |
| 토크 명령 중심의 관계 | Kp=0, Kd=0, t_ff 지정 | 수식상 Tcmd = t_ff |
※ 위 표는 일반적인 MIT 제어 관계가 GSA56 펌웨어에도 동일하게 적용된다는 전제에서 파라미터 조합을 해석한 것입니다. 제품의 공식 독립 제어모드를 추가로 의미하지 않으며, 실제 동작은 낮은 명령값으로 확인해야 합니다. 제품의 별도 위치속도 모드와 속도 모드는 프레임 형식과 내부 제어 구조가 다를 수 있습니다.
토크 명령 시험 시 주의
무부하 상태에서 일정한 토크를 명령하면 모터가 계속 가속할 수 있습니다. 시험 시에는 모터 본체를 확실히 고정하고 출력축 접근을 차단한 뒤 낮은 토크와 전류 제한부터 시작하세요. 출력축을 완전히 구속한 상태를 오래 유지하면 과열될 수 있으며 즉시 정지할 수 있는 수단을 준비해야 합니다.
무부하 상태에서 일정한 토크를 명령하면 모터가 계속 가속할 수 있습니다. 시험 시에는 모터 본체를 확실히 고정하고 출력축 접근을 차단한 뒤 낮은 토크와 전류 제한부터 시작하세요. 출력축을 완전히 구속한 상태를 오래 유지하면 과열될 수 있으며 즉시 정지할 수 있는 수단을 준비해야 합니다.
6. 다섯 값을 8바이트에 담는 방법
클래식 CAN 데이터 필드는 최대 8바이트, 즉 64비트입니다. GSA56의 MIT 명령 프레임은 위치 16비트, 속도 12비트, Kp 12비트, Kd 12비트와 토크 명령 12비트로 구성됩니다.
16 + 12 + 12 + 12 + 12 = 64비트
| D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 |
| 위치 상위 8bit | 위치 하위 8bit | 속도 상위 8bit | 속도 하위 4bit + Kp 상위 4bit | Kp 하위 8bit | Kd 상위 8bit | Kd 하위 4bit + 토크 상위 4bit | 토크 하위 8bit |
각 실수값은 설정된 최솟값과 최댓값 사이에서 정수 코드로 선형 변환됩니다. 제공 매뉴얼 예시의 기본 범위는 위치 ±12.5rad, 속도 ±45rad/s, 토크 매핑값 ±18, Kp 0~500, Kd 0~5입니다.
TMAX ±18은 데이터 매핑 범위입니다. 제품이 실제로 ±18N·m를 출력할 수 있다는 의미가 아닙니다. 토크 필드의 물리 단위와 기준축은 KT_OUT 및 감속비 관련 설정을 확인해야 하며, 실제 출력 가능한 토크는 제품의 정격·최대토크, 전류 제한, 온도와 보호 설정을 따릅니다.
n비트 선형 매핑에서 사용할 수 있는 정수 코드는 0부터 2n-1까지입니다. 양 끝값을 포함한 일반적인 변환 관계는 다음과 같습니다.
정수값 = (입력값 − 최솟값) ÷ (최댓값 − 최솟값) × (2n − 1)
속도 25rad/s, 범위 −45~+45rad/s, 12bit일 경우:
(25 − (−45)) ÷ 90 × 4095 = 3185 = 0xC71
※ 실제 구현에서는 제공된 float_to_uint와 uint_to_float 함수의 반올림, 절삭 및 포화 처리 방식을 그대로 따르는 것이 안전합니다.
기본 매핑 범위를 기준으로 한 코드 간격은 다음과 같습니다.
위치: 25rad ÷ 65,535 = 약 0.000381rad, 약 0.0219°
속도: 90rad/s ÷ 4,095 = 약 0.0220rad/s
토크 매핑값: 전체 범위 36 ÷ 4,095 = 약 0.00879
위치 명령의 코드 간격은 14bit 엔코더의 이론 분해능과 비슷한 크기입니다. 다만 이것은 데이터 표현 단계의 간격을 비교한 것이며 실제 위치 정확도나 응답 성능을 보장한다는 뜻은 아닙니다.
송신 코드와 드라이버의 범위값은 반드시 일치해야 합니다. PMAX, VMAX와 TMAX 등의 범위가 서로 다르면 같은 정수값을 서로 다른 물리량으로 해석해 명령과 피드백에 일정한 배율 오차가 발생할 수 있습니다. 통신값이 일정한 비율로 어긋난다면 범위, 단위, 기준축과 감속비 관련 설정을 먼저 확인하세요.
7. 피드백 프레임에서 확인할 수 있는 값
피드백 프레임에는 제공 매뉴얼 기준으로 현재 위치 16비트, 속도 12비트, 토크 12비트와 드라이버 온도, 모터 내부 온도 및 에러코드가 포함됩니다.
위치, 속도와 토크값은 설정된 PMAX, VMAX와 TMAX 범위를 사용해 복원해야 합니다. 상위 제어기의 변환 범위와 드라이버의 설정값이 다르면 피드백을 잘못된 값으로 해석하게 됩니다.
토크 피드백은 관절이 사용하는 토크의 추세와 부하 변화를 관찰하는 데 활용할 수 있습니다. 다만 실제 출력축 토크센서의 직접 측정값인지, 전류와 토크계수로 환산한 추정값인지는 펌웨어 사양을 확인해야 합니다.
감속기 마찰, 효율, 온도와 가속토크의 영향을 받을 수 있으므로 정밀한 힘 측정이나 안전 감지에는 별도의 힘·토크센서가 필요할 수 있습니다.
감속기 마찰, 효율, 온도와 가속토크의 영향을 받을 수 있으므로 정밀한 힘 측정이나 안전 감지에는 별도의 힘·토크센서가 필요할 수 있습니다.
8. MIT 모드 핵심 정리
| 항목 | 확인할 내용 |
| 기본 관계 | 일반적으로 Tcmd = Kp×위치오차 + Kd×속도오차 + t_ff로 해석. 실제 내부 연산과 제한 로직은 펌웨어 확인 |
| Kp | 위치오차에 대한 복원 성분. 데이터 범위 0~500은 안전한 권장 설정 범위가 아님 |
| Kd | 속도오차에 대한 감쇠 성분. 위치 제어 시 0으로 설정하지 않도록 매뉴얼에서 안내 |
| t_ff | 피드포워드 토크 명령. 입력 전 물리 단위, 기준축, KT_OUT와 감속비 설정 확인 |
| 프레임 | 16+12+12+12+12=64bit. 상위 제어기와 드라이버의 매핑 범위를 동일하게 설정 |
| 안전 | 낮은 이득과 전류 제한에서 시작. 무부하 토크 명령, 출력축 구속 및 사람 접근에 주의 |
한 줄 결론: MIT 모드는 관절의 위치, 속도와 토크 명령을 하나의 프레임에서 조합할 수 있게 하지만 데이터 입력 범위가 곧 안전한 튜닝 범위나 실제 출력 성능을 의미하지는 않습니다. 단위와 기준축을 먼저 확인하고 낮은 설정값에서 시작해 전류, 온도와 기구 응답을 실기에서 확인해야 합니다.
다음은 제3편 · CAN 버스 실전 설계입니다. 제어모드별 CAN ID, 피드백 프레임, 다축 ID 배치와 통신 타임아웃을 설명합니다.
MIT 모드 적용 검토가 필요하신가요?
관절 부하, 관성, 목표 동작속도, 제어주기, 전원전압과 필요한 동작 특성을 남겨주시면 설정 전에 확인할 항목을 안내해드립니다. Kp와 Kd의 최종값은 장비마다 달라지므로 원격 안내만으로 확정할 수 없으며 실제 장비에서 낮은 값부터 시험해야 합니다.
총 댓글 0
로그인을 하셔야 댓글을 등록하실 수 있습니다.
| 번호 | 제목 | 작성자 | 날짜 |
|---|
| 번호 | 이미지 | 제목 | 날짜 | 작성자 | 조회 |
|---|---|---|---|---|---|
| 54 |
무게 계산부터 모델 선정, 배선, 비 감지 자동화까지 — 전동 개폐 만드는 법
|
2026.08.21 | |
355 | |
| 53 |
밀고 당기는 일이라면 — IP67 방수 리니어액추에이터 LM4075-P 활용 가이드
|
2026.08.21 | |
284 | |
| 52 |
감속비를 고르면 다른 모터가 됩니다.IP68 완전방수 유성기어 DC모터 PGM45 — 하나의 모터로 1,600rpm부터 12rpm까지
|
2026.08.21 | |
192 | |
| 51 |
IP65 · IP66 · IP67 · IP68, 뭐가 다른가
|
2026.08.20 | |
411 | |
| 50 |
소음이 스펙이 되는 순간
|
2026.08.20 | |
25 | |
| 49 |
고추력 리니어액추에이터 선정 가이드
|
2026.08.20 | |
210 | |
| 48 |
마그네틱 기어펌프 완전 가이드
|
2026.08.20 | |
301 | |
| 47 | 회전부 케이블 꼬임, 슬립링 없이 해결하기 — 로터리 중공축 감속모터 선정 가이드 (BLDC·엔코더·스텝용 17종) | 2026.08.16 | |
67 | |
| 46 |
이물질 섞인 액체는 에어펌프 석션으로 — 진공 흡입 설계 가이드
|
2026.08.14 | |
121 | |
| 45 | 아두이노로 이 액추에이터를 제어하려면 어떻게 하나요? | 2026.08.13 | |
22 | |
| 44 | 리니어 액추에이터를 사려는데, 움직이려면 뭐가 더 필요한가요? | 2026.08.13 | |
27 | |
| 43 | 진공펌프·에어펌프 선정 — 0.5~84L/min, -100kPa까지 전 대역 대응합니다 | 2026.08.12 | |
60 | |
| 42 |
항공부품 제조사 납품 사례 — 서보실린더 다축 EtherCAT 구성과 5.5kW 대용량 축 LM-TW095 / LM-TW180
|
2026.08.11 | |
356 | |
| 41 |
자잠(셀프락)으로 버틸 수 없는 조건
|
2026.08.10 | |
87 | |
| 40 |
웜감속기, 사이즈에 따라 구조가 달라집니다
|
2026.08.10 | |
121 |
한국어
영어
중국어
일본어












