로봇 관절의 위치·속도·토크 제어는 서로 경쟁하는 세 방식이라기보다 안쪽에서 바깥쪽으로 겹치는 제어 루프입니다. 가장 빠른 전류 루프가 모터 토크를 만들고, 그 위의 속도 루프가 회전 속도를 맞추며, 가장 바깥 위치 루프가 목표 각도와 궤적을 따라갑니다. 상위 루프가 빠른 하위 루프를 명령하는 구조라서 각 루프의 센서, 주기와 포화 한계를 구분해야 로봇이 흔들리지 않습니다.
제어 대상은 위치·속도·토크로 나뉜다
위치 제어는 관절 각도 오차를 줄이고, 속도 제어는 회전 속도 오차를 줄입니다. 토크 제어는 모터 전류와 토크 센서를 사용해 원하는 힘을 만듭니다.
ROS 2 Control의 Joint Trajectory Controller도 position·velocity·effort 인터페이스에 따라 명령 처리와 피드백 법칙이 달라진다고 설명합니다.

가장 안쪽 전류 루프가 모터 토크를 만든다
영구자석 모터에서는 전류와 토크가 일정 범위에서 비례하므로 드라이브가 상전류를 빠르게 제어합니다. 전압 한계, 스위칭과 모터 전기 시정수가 응답 속도를 제한합니다.
전류가 목표를 따라도 감속기 마찰과 관성 때문에 출력 토크가 정확히 같지는 않습니다. 관절 또는 손목 힘·토크 센서가 필요한 이유입니다.
속도 루프는 토크 명령으로 회전율을 맞춘다
엔코더 위치 변화에서 속도를 추정하고 목표 속도와의 차이를 전류 또는 토크 명령으로 바꿉니다. 마찰과 외란이 생기면 더 큰 토크를 요구해 속도를 유지합니다.
속도 추정은 미분 때문에 노이즈에 민감합니다. 필터를 강하게 걸면 지연이 커지므로 엔코더 해상도, 샘플링과 제어 대역폭을 함께 정합니다.

위치 루프는 속도 또는 토크 목표를 만든다
목표 각도와 실제 각도의 차이를 바탕으로 움직일 속도와 토크를 정합니다. 너무 큰 위치 이득은 빠르게 보이지만 감속기 탄성·통신 지연과 만나 진동을 만들 수 있습니다.
궤적 생성기는 위치 목표를 갑자기 뛰게 하지 않고 속도·가속도·저크 한계 안에서 시간에 따라 연결합니다. 제어기와 궤적 계획을 혼동하지 않습니다.
루프 대역폭은 안쪽이 바깥쪽보다 빨라야 한다
상위 위치 루프는 하위 속도·전류 루프가 거의 즉시 명령을 따른다고 가정합니다. 바깥 루프를 지나치게 빠르게 만들면 이 가정이 깨지고 서로 보상하려다 진동할 수 있습니다.
일반적으로 전류, 속도, 위치 순으로 충분한 속도 차를 둡니다. 구체적 주기는 모터·감속기·센서·통신과 안전 요구에 따라 실험으로 확인합니다.
위치·속도·effort 인터페이스는 하드웨어 의미가 다르다
상위 소프트웨어가 position을 보내도 드라이브 내부에서는 전류 루프까지 닫힐 수 있습니다. effort를 보낸다고 힘 센서 기반의 진정한 출력 토크 제어가 자동으로 되는 것도 아닙니다.
ros2_control 관절 인터페이스는 actuator와 joint 공간의 position·velocity·effort 변환을 분리합니다. 감속비와 효율, 센서 위치를 명시해야 합니다.
| 명령 인터페이스 | 주요 목표 | 필수 피드백 | 잘 맞는 작업 |
|---|---|---|---|
| 위치 | 각도·궤적 추종 | 위치, 선택적 속도 | 픽앤플레이스·이동 |
| 속도 | 회전율 유지 | 위치·속도 | 휠·연속 이송 |
| 토크/effort | 힘·가속 반응 | 전류·속도, 선택적 토크 | 접촉·보행·순응 |
| 위치+토크 | 자세와 접촉 동시 | 위치·속도·힘 | 조립·압착 |
| 임피던스 | 힘-변위 관계 | 상태·토크/힘 | 사람 협업·접촉 |
PID는 오차와 누적과 변화율을 다르게 쓴다
P는 현재 오차에 반응하고, I는 지속되는 오차를 없애며, D는 변화 속도를 감쇠합니다. 마찰 보상과 중력 보상, 목표 속도 feed-forward를 더해 기본 오차를 줄일 수 있습니다.
ROS 2 Control 파라미터 문서는 위치·속도 오차와 feed-forward effort가 명령에 어떻게 합쳐지는지 식으로 제시합니다.
포화와 적분 누적을 처리하지 않으면 복구가 늦어진다
모터 전류와 전압, 속도에는 한계가 있습니다. 출력이 포화됐는데 적분기가 계속 오차를 쌓으면 제한이 풀린 뒤 큰 오버슈트가 생깁니다.
anti-windup, 명령 clamp와 포화 상태 전달을 사용합니다. 상위 위치 루프가 하위 전류 한계를 모르면 달성 불가능한 궤적을 계속 요구할 수 있습니다.
감속기 탄성과 백래시는 단순한 강체 모델을 깨뜨린다
모터축 엔코더가 목표에 도달해도 감속기 뒤 출력축은 하중에 따라 비틀리거나 반전 유격 안에 있을 수 있습니다. 높은 위치 이득은 이 탄성을 자극해 소음과 진동을 만듭니다.
듀얼 엔코더와 토크 센서를 사용하면 모터측과 출력측 상태를 구분할 수 있습니다. 관절 모델에 탄성과 마찰을 포함해 이득을 조정합니다.
제어 성능은 추종·외란·접촉 시험으로 나눠 본다
위치 궤적의 최대·RMS 오차, 속도 단계 응답, 토크 추종과 외부 충격 뒤 복구를 따로 측정합니다. 한 지표를 좋게 만든 튜닝이 다른 지표와 열을 악화시킬 수 있습니다.
NIST 힘 제어 벤치마킹처럼 시험 장치·접촉 강성·목표 파형과 측정 방법을 함께 정의합니다.
| 시험 | 입력 | 측정 | 주요 이상 |
|---|---|---|---|
| 위치 추종 | 궤적·하중 변화 | RMS·최대 오차 | 공진·지연 |
| 속도 단계 | 목표 속도 변화 | 상승·정착·오버슈트 | 필터·포화 |
| 토크 추종 | 정현·단계 토크 | 오차·대역폭 | 마찰·전류 한계 |
| 외란 거부 | 충격·하중 추가 | 복구 시간·최대 편차 | 적분 누적 |
| 접촉 | 다른 강성의 환경 | 힘·안정성·에너지 | 고주파 진동 |
작업에 맞는 제어 모드는 안전 전환까지 포함한다
이동 중에는 위치 궤적, 접촉 직전에는 속도 제한, 접촉 후에는 토크 또는 임피던스 제어를 사용할 수 있습니다. 모드 전환 때 명령과 적분 상태가 뛰지 않도록 bumpless transfer를 설계합니다.
임피던스·어드미턴스 제어와 안전 정지까지 포함해 정상 제어와 제한·정지 경로의 우선순위를 명확히 합니다.
로봇 위치·속도·토크 제어에서 자주 묻는 질문
위치 제어 로봇에는 토크 제어가 없나요?
대부분 드라이브 내부 전류 루프가 토크를 만들지만 사용자가 직접 토크 목표를 주거나 출력 힘을 피드백하는 기능과는 구분해야 합니다.
제어 주기가 빠를수록 무조건 좋은가요?
센서 노이즈·연산 지연·통신과 기계 공진을 함께 고려해야 합니다. 불안정한 빠른 루프보다 검증된 대역폭이 중요합니다.
effort 명령은 실제 관절 토크와 같은가요?
구현에 따라 모터 전류 명령 또는 모델상 effort일 수 있습니다. 감속비·효율·마찰과 센서 위치를 확인해야 합니다.
위치 이득을 높이면 정밀도가 계속 좋아지나요?
탄성·백래시·지연과 포화 때문에 진동과 열이 커질 수 있습니다. 외부 기준 측정과 하중 시험이 필요합니다.
위치에서 토크 제어로 바로 바꿔도 되나요?
명령 연속성·적분기 상태·중력 보상과 안전 제한을 맞춰 충격 없는 모드 전환을 설계해야 합니다.
마지막 확인: 2026년 7월 24일. 제어 구조와 주기·이득은 로봇 드라이브·센서·감속기·통신 구현에 따라 달라집니다. 실제 장비에서는 제조사 제한과 안전 절차 안에서 단계적으로 튜닝해야 합니다.