[로봇 하드웨어 06] - 액추에이터 (5): 백래시
기어 유격, 예압과 하모닉 드라이브의 lost motion이 정밀도와 외력 추정을 무너뜨리는 과정
로봇 팔을 한 방향으로 천천히 움직이다가 반대로 돌려보면, 모터는 먼저 움직이는데 링크는 잠시 멈춰 있는 구간이 나타날 수 있습니다. 제어기는 이미 위치 명령을 바꿨고 모터 엔코더도 변화를 보고하지만, 출력축의 반대쪽 치면이 닿기 전까지 관절에는 원하는 운동이 전달되지 않습니다.
이 구간을 흔히 백래시(backlash)라고 부릅니다. 하지만 실제 액추에이터에서 관측하는 방향 전환 오차에는 치면의 기하학적 유격뿐 아니라 축·베어링·기어의 탄성, 마찰, 조립 오차와 히스테리시스가 함께 들어 있습니다.[1,2] 이들을 전부 한 개의 dead zone으로 부르면 왜 같은 로봇의 오차가 하중과 시간에 따라 달라지는지 설명하기 어렵습니다.
기어에 왜 일부러 틈을 남기나
서로 맞물리는 두 기어를 이론 형상 그대로 빈틈없이 만들면 정밀할 것 같지만, 실제 기계는 그렇게 움직이지 않습니다. 적절한 clearance가 필요한 이유는 꽤 현실적입니다.
- 모든 치형에는 가공 오차와 pitch 오차가 있습니다.
- 축과 베어링에는 편심, runout과 조립 공차가 있습니다.
- 하중이 걸리면 치, 축, 하우징이 탄성 변형합니다.
- 온도가 바뀌면 서로 다른 재료와 부품이 다른 양만큼 팽창합니다.
- 윤활막이 들어가고 오염 입자가 빠져나갈 공간이 필요합니다.
최악 공차에서도 치면이 끼이거나 간섭하지 않도록 보장하려면 어느 정도의 유격을 둬야 합니다. 너무 작으면 효율과 수명이 떨어지고 열이 나며, 감속기가 특정 위치에서 끼이거나 과도한 저항을 보일 수 있습니다. 너무 크면 방향 전환 때 lost motion과 충격이 커집니다. 백래시는 단순히 “가공을 싸게 해서 생긴 결함”이 아니라 제조 가능성, 윤활, 열과 신뢰성 사이의 설계 여유이기도 합니다.
백래시, 탄성, 히스테리시스는 같은 것이 아닙니다
입력각 $\theta_m/N$과 출력각 $\theta_j$의 차이를 transmission deflection이라고 두겠습니다.
\[\delta=\frac{\theta_m}{N}-\theta_j\]가장 단순한 backlash model은 폭 $2b$ 안에서 전달 토크가 거의 없고, 양쪽 치면에 닿은 뒤 강성 $k$가 생기는 piecewise 관계입니다.
\[\tau_t(\delta)= \begin{cases} k(\delta-b), & \delta>b \\ 0, & |\delta|\le b \\ k(\delta+b), & \delta<-b \end{cases}\]이 식은 $\delta$가 정해지면 $\tau_t$가 하나로 결정되는 memoryless dead-zone 모델입니다. 실제 전달계에서는 치면 접촉 전에도 seal, bearing과 grease의 마찰이 있고, 접촉 후에는 tooth·shaft·housing이 비선형으로 휘어집니다. 접근 방향에 따른 loop를 나타내려면 다음처럼 치면 접촉 상태를 내부 변수로 포함해야 합니다.
\[\tau_t=f(\delta,z),\qquad z\in\{-1,0,+1\}\]$z$는 각각 음의 치면 접촉, 자유 유격 구간과 양의 치면 접촉을 나타냅니다. 반대 방향으로 돌아갈 때 같은 경로를 되짚지 않으면 torque–deflection 곡선에 hysteresis loop가 생깁니다.[1–3]
용어를 구분하면 진단이 쉬워집니다.
| 현상 | 의미 |
|---|---|
| backlash | 반대 치면이 접촉하기 전의 기하학적 유격 |
| compliance | 토크에 의해 발생하는 탄성 변형 |
| friction | 운동 시작과 지속을 방해하는 내부 저항 |
| hysteresis | 접근 방향과 과거 하중에 의존하는 토크–변위 loop |
| lost motion | 정해진 reversal 시험에서 측정된 전체 입력–출력 위치 손실 |
| kinematic error | 회전 위치에 반복적으로 동기화되는 전달 오차 |
Lost motion에는 backlash뿐 아니라 탄성 변형, 마찰 이력과 조립 변형이 포함될 수 있습니다. 따라서 데이터시트의 “zero backlash”와 실제 torque reversal에서 측정한 lost motion은 같은 숫자가 아닐 수 있습니다. 제조사와 감속기 종류마다 backlash, hysteresis loss와 lost motion의 시험 정의가 다를 수 있으므로 측정 절차와 하중 조건을 함께 확인해야 합니다.
스프링으로 양쪽 치면을 잡으면 끝날까
split gear 또는 anti-backlash gear는 한 기어를 두 장으로 나누고 두 half를 비틀림 스프링으로 서로 반대 방향에 예압합니다. 한쪽은 앞 치면, 다른 쪽은 뒤 치면을 누르므로 무부하에서는 양방향 contact가 유지됩니다.
이 방식은 positioning stage처럼 하중이 작고 방향 전환 정밀도가 중요한 곳에서 매우 유용합니다. 다만 유격을 “삭제”한다기보다 스프링 힘으로 두 접촉을 유지하는 것입니다.
- 예압이 커질수록 치면 마찰과 bearing load가 증가합니다.
- 마찰과 sliding이 늘면 효율, 온도와 마모가 나빠집니다.
- 외력 토크가 예압 토크를 넘으면 한쪽 기어가 unload되어 단일 치면 접촉으로 전환되며, 이후 하중 반전에서 lost motion이 다시 나타날 수 있습니다.
- 스프링의 피로와 마모로 preload가 시간이 지나며 변합니다.
휴머노이드의 무릎이나 엉덩이처럼 큰 양방향 토크와 충격을 받는 관절에서는 “스프링을 강하게 만들면 된다”가 간단한 해답이 아닙니다. 예압 자체를 유지하기 위해 치면과 베어링이 계속 내부 하중을 감당해야 하기 때문입니다.
하모닉 드라이브는 정말 zero backlash인가
strain wave gear, 흔히 Harmonic Drive라고 부르는 구조는 flexspline을 타원으로 변형해 circular spline의 양쪽 영역에서 동시에 치합합니다. 전통적인 한 쌍의 spur gear처럼 방향 전환 때 반대 치면까지 자유롭게 이동하는 기하학적 clearance를 거의 없앨 수 있습니다.
그렇다고 입력과 출력 관계가 완전한 강체라는 뜻은 아닙니다. 얇은 flexspline과 wave generator bearing은 하중에 따라 변형하고, 많은 접촉면과 윤활은 마찰 이력을 만듭니다. 실험적 harmonic-drive model에는 비선형 강성, friction, hysteresis와 주기적 transmission error가 함께 들어갑니다.[3,4] 제조사 자료도 zero backlash와 torsional stiffness/hysteresis loss를 별도 특성으로 다룹니다.[5]
그래서 다음 두 문장은 동시에 참일 수 있습니다.
- 이 감속기에는 전통적인 의미의 치면 backlash가 거의 없습니다.
- torque reversal 뒤 출력각에는 여전히 lost motion과 hysteresis가 있습니다.
로봇 제어 관점에서는 마케팅 용어보다 부하–변위 loop의 폭, 하중별 비틀림 강성, 입력/출력 엔코더 차이와 반복 transmission error가 더 유용합니다.
한 관절의 몇 arcmin이 말단에서 어떻게 커지나
관절 오차 $\delta q$가 작을 때 말단 오차는 1차 근사로 Jacobian을 통해 전달됩니다.
\[\delta x \approx J(q)\,\delta q\]이 식에서 중요한 것은 관절 오차가 단순한 스칼라 합이 아니라는 점입니다. 같은 $0.1^\circ$라도 팔을 뻗은 자세와 접은 자세의 Cartesian 영향이 다르고, 각 관절축이 어느 방향을 향하는지에 따라 translation과 orientation으로 투영되는 방식도 달라집니다. 회전 관절이 만드는 위치 오차의 상한을 거칠게 보면 뒤쪽 link 길이가 길수록 커집니다.
\[\lVert\delta p\rVert \lesssim \sum_i l_{i,\mathrm{eff}}\,|\delta q_i|\]산업용 6축 팔만 생각하면 여섯 관절이지만, 휴머노이드의 접촉 chain은 더 길 수 있습니다. 지면에 고정된 발에서 ankle–knee–hip–pelvis–torso–shoulder–elbow–wrist를 거쳐 손까지 이어지면 한 손의 위치와 힘에 여러 관절의 방향 이력이 동시에 들어갑니다.
휴머노이드처럼 floating base를 갖는 시스템에서는 관절 오차뿐 아니라 base pose 추정 오차와 어떤 접촉점이 실제로 구속되어 있는지도 Cartesian 오차 전달에 포함해야 합니다.
여기서 repeatability와 absolute accuracy도 갈립니다. 같은 자세로 항상 같은 방향에서 접근하면 같은 치면이 접촉해 꽤 잘 반복될 수 있습니다. 반대 방향에서 접근하거나 payload, 중력 방향, contact force가 달라지면 다른 치면과 다른 탄성 변형을 사용합니다. repeatability가 좋은 로봇이 양방향 force task에서도 정확하다는 보장은 없습니다.
제어 관점: 모터와 출력축이 분리되는 순간
백래시가 제어를 어렵게 만드는 이유는 위치 오차가 추가되기 때문만이 아닙니다. 방향이 바뀌는 순간 모터 측과 출력축 사이의 전달 토크가 일시적으로 끊기면서 두 관성이 서로 독립적으로 움직일 수 있기 때문입니다.
출력축으로 환산한 모터 위치를 다음과 같이 정의하겠습니다.
\[q_m=\frac{\theta_m}{N}\]모터 측 위치와 실제 출력 관절 위치의 차이는 transmission deflection입니다.
\[\delta=q_m-q_j\]모터 로터의 출력축 환산 관성을 $J_m^*=N^2J_m$이라고 하고, $\tau_{\mathrm{act}}$를 출력축 기준으로 환산한 구동 토크라 하면 단순화된 모터 측 동역학은 다음과 같습니다.
\[J_m^*\ddot q_m=\tau_{\mathrm{act}}-\tau_t\]출력 링크 측 동역학은 다음과 같이 나타낼 수 있습니다.
\[J_j\ddot q_j+B_j\dot q_j+\tau_{\mathrm{load}}=\tau_t+\tau_{\mathrm{ext}}\]여기서 $\tau_t$는 감속기를 통해 실제로 전달되는 토크입니다. 완전히 치합된 상태에서는 전달계 강성에 따라 모터와 출력축 사이에 토크가 전달됩니다. 반면 backlash gap 안에서는 다음 상태가 나타날 수 있습니다.
\[|\delta|\le b \quad\Rightarrow\quad \tau_t\approx0\]이 구간에서는 모터가 움직이고 전류가 흐르더라도 출력 링크에는 같은 운동과 토크가 전달되지 않습니다. Motor-side encoder만 사용하는 위치 제어기는 모터 위치 오차가 빠르게 줄어드는 것을 보고 정상적으로 추종한다고 판단할 수 있지만, 실제 출력 관절은 아직 움직이지 않았을 수 있습니다.
방향 전환이 계속되어 반대쪽 치면이 접촉하면 전달 토크가 다시 형성됩니다.
\[|\delta|>b \quad\Rightarrow\quad \tau_t\approx k\left(\delta-\operatorname{sgn}(\delta)b\right)\]모터와 내부 기어가 유격 구간에서 얻은 상대 속도가 남아 있으면 치면 접촉 순간 충격 토크가 생길 수 있습니다. 위치 제어기의 게인을 높여 backlash를 빠르게 건너려 할수록 접촉 순간의 상대 속도와 충격이 커질 수 있으며, 반복적인 방향 전환에서는 limit cycle이나 소음으로 나타날 수 있습니다.
백래시 구간에서는 motor-side encoder의 한 위치에 여러 출력 관절 위치가 대응할 수 있습니다.
\[q_j\in[q_m-b,\ q_m+b]\]따라서 motor-side position measurement만으로 출력 관절의 순간 위치와 현재 접촉 중인 치면을 유일하게 결정할 수 없습니다. 동적 이력, 입력, 접촉 모델과 충분한 excitation을 사용하면 상태를 다시 추정할 수 있지만, 순간 측정 하나만으로는 과거 운동 방향과 토크 이력을 나타내는 내부 상태가 빠져 있습니다.
Dual encoder 구조에서는 모터 측과 출력 측 위치를 모두 측정해 다음 값을 직접 계산할 수 있습니다.
\[\delta=\frac{\theta_m}{N}-\theta_j\]이를 이용하면 출력축이 유격 안에 있는지, 어느 치면에 접촉했는지와 전달계가 하중에 의해 얼마나 변형되었는지 추정할 수 있습니다. 다만 backlash, 탄성 변형과 마찰이 동시에 존재하므로 $\delta$만으로 전달 토크를 계산하려면 여전히 하중 이력과 비선형 전달계 모델이 필요합니다.
결국 백래시는 위치 명령에 일정한 오차를 더하는 정적 파라미터가 아닙니다. 모터와 부하 사이의 동역학적 연결 상태를 바꾸는 내부 상태이며, 방향 전환 순간 제어 입력과 센서 측정의 의미 자체를 변화시킵니다.
백래시는 external force sensing의 관측성을 깨뜨립니다
별도 관절 토크 센서가 없는 로봇은 모터 전류로 외력을 추정하기도 합니다. 개념적으로는 다음과 같습니다.
\[\hat{\tau}_{\mathrm{act}}\approx\hat{\eta}N\hat K_t i_q\] \[\hat{\tau}_{\mathrm{ext}} =\hat{\tau}_{\mathrm{act}} -\hat M(q)\ddot q -\hat C(q,\dot q)\dot q -\hat G(q) -\hat{\tau}_f\]여기서 $\hat{\eta}$는 추정 전달 효율이며, 로봇 동역학과 마찰을 제거한 뒤 필터 또는 관측기로 외란 토크를 추정합니다. 추정 관절 토크는 Jacobian을 이용해 Cartesian wrench로 변환할 수 있습니다. 잘 보정된 rigid transmission에서도 inertia, friction과 motor torque constant 오차를 제거해야 하는 어려운 문제입니다.[6]
백래시 구간에서는 더 근본적인 문제가 생깁니다.
\[\tau_m\ne0 \qquad\text{but}\qquad \tau_t\approx0\]모터 토크가 모터와 내부 기어 관성을 가속하는 데 사용될 뿐 출력축에는 아직 전달되지 않을 수 있기 때문입니다. 여기에 두 가지 관측 실패가 추가됩니다.
첫째, 모터가 유격을 건너는 동안 전류가 흐르고 모터 엔코더가 움직여도 출력축에는 같은 운동이나 토크가 전달되지 않습니다. 치면이 부딪칠 때의 가속과 전류 spike를 외부 접촉으로 오인할 수 있습니다.
둘째, 외력이 출력 링크를 유격 안에서 움직여도 모터축은 거의 움직이지 않을 수 있습니다. Motor-side encoder만 보면 실제 관절각 변화와 외부 접촉을 놓칩니다. 즉 백래시 구간에서는 motor-side position measurement만으로 출력 관절의 순간 위치와 접촉 치면 상태를 유일하게 결정할 수 없습니다.
관절 토크 센서나 series elastic element도 외력과 내부 마찰을 분리하는 데 도움을 줍니다. 다만 센서 하나를 추가한다고 모델이 필요 없어지는 것은 아닙니다. 센서가 감속기 앞에 있는지 뒤에 있는지에 따라 보이는 물리 계층이 다릅니다.
관측되는 lost motion은 시간과 운전 조건에 따라 변합니다
새 감속기에서 측정한 backlash와 lost-motion curve를 고정 파라미터로 두기 어려운 이유가 있습니다.
- Bearing과 기어 치면의 마모가 clearance를 키울 수 있습니다.
- Grease 온도와 분포는 같은 clearance에서도 friction과 hysteresis loop를 바꿉니다.
- preload spring과 bearing preload가 완화될 수 있습니다.
- 하우징 온도와 외력이 축 정렬을 바꿉니다.
- 충격 하중이 국부 손상이나 영구 변형을 남길 수 있습니다.
치면 마모와 열팽창은 실제 clearance를 바꿀 수 있고, 윤활 상태·온도·preload는 같은 clearance에서도 reversal loop를 바꿀 수 있습니다. 즉 실제 mapping은 $\tau=f(\delta)$가 아니라 현재 접촉 치면, 접근 방향, 하중 이력, 온도와 사용 시간을 포함한 $\tau=f(\delta,z_{gear},T,t_{life})$에 가깝습니다. 논문에서 backlash를 hidden state를 가진 동적 비선형으로 모델링하는 이유입니다.[1,2,7]
설계와 policy에서 무엇을 남겨야 하나
기계 설계에서는 backlash 숫자 하나보다 부하별 lost-motion curve, torsional stiffness, reversal life와 온도 범위를 측정해야 합니다. 제어에서는 direction reversal 근처에서 gain을 무작정 높이면 치면 충돌과 limit cycle을 키울 수 있습니다. 관측에는 motor/output dual encoder, torque sensor, 또는 적어도 방향 이력 상태를 넣는 편이 낫습니다.
시뮬레이션도 관절각에 랜덤 noise를 더하는 방식만으로는 부족합니다. 최소한 다음 성질은 구분해 두는 것이 좋습니다.
- 반대 치면에 닿기 전까지 출력이 움직이지 않는 clearance
- 접촉 뒤 하중에 따라 휘는 compliance
- 접근 방향에 따라 다른 hysteresis
- 속도·온도 의존 friction
- 사용 시간에 따라 변하는 parameter distribution
백래시의 핵심은 “각도가 조금 틀린다”가 아닙니다. 모터 쪽에서 관측한 상태만으로 출력 링크의 상태와 외력을 유일하게 결정할 수 없는 구간이 생긴다는 것입니다. 긴 kinematic chain과 접촉 제어에서는 이 작은 비관측 구간이 말단 위치 오차, 힘 추정 오류와 충격으로 바뀝니다.
다음 포스트: [로봇 하드웨어 07] - 액추에이터 (6): 뜨거워진 액추에이터는 같은 액추에이터가 아닙니다
References
[1] M. Nordin and P.-O. Gutman, “Controlling Mechanical Systems With Backlash—A Survey,” Automatica, vol. 38, no. 10, pp. 1633–1649, 2002. doi:10.1016/S0005-1098(02)00047-X
[2] M. Ruderman, F. Hoffmann, and T. Bertram, “Modeling and Identification of Elastic Robot Joints With Hysteresis and Backlash,” IEEE Transactions on Industrial Electronics, vol. 56, no. 10, pp. 3840–3847, 2009. doi:10.1109/TIE.2009.2015752
[3] R. Dhaouadi, F. H. Ghorbel, and P. S. Gandhi, “A New Dynamic Model of Hysteresis in Harmonic Drives,” IEEE Transactions on Industrial Electronics, vol. 50, no. 6, pp. 1165–1171, 2003. doi:10.1109/TIE.2003.819661
[4] C. Preissner, T. J. Royston, and D. Shu, “A High-Fidelity Harmonic Drive Model,” Journal of Dynamic Systems, Measurement, and Control, vol. 134, no. 1, 011002, 2012. doi:10.1115/1.4005041
[5] Harmonic Drive LLC, “Reducer Catalog: Component Sets FB — Engineering Data.” Manufacturer PDF
[6] A. Wahrburg, J. Bös, K. D. Listmann, F. Dai, B. Matthias, and H. Ding, “Motor-Current-Based Estimation of Cartesian Contact Forces and Torques for Robotic Manipulators and Its Application to Force Control,” IEEE Transactions on Automation Science and Engineering, vol. 15, no. 2, pp. 879–886, 2018. doi:10.1109/TASE.2017.2691136
[7] E. Giovannitti, S. Nabavi, G. Squillero, and A. Tonda, “A Virtual Sensor for Backlash in Robotic Manipulators,” Journal of Intelligent Manufacturing, vol. 33, no. 7, pp. 1921–1937, 2022. doi:10.1007/s10845-022-01934-z