들어가며: 보호 한계 아래의 열적 변화

같은 정책과 토크 명령을 쓰는데도 로봇이 데워지면서 서 있는 자세가 처지거나 점프가 낮아지는 상황을 생각해 보겠습니다. 여기서는 새 실험 결과가 아니라 점검할 증상의 예로 든 것입니다. 온도 로그는 상관관계를 보여 줄 수 있지만, 원인을 확인하려면 토크 응답과 드라이버의 전류 한계를 함께 봐야 합니다. 열 보호가 전류를 제한하기 전에도 토크는 달라질 수 있습니다.

열을 보호의 문제로만 보면 여기서 설명이 막힙니다. 너무 뜨거우면 전류를 끊고, 만지면 손을 데고, 오래 쓰면 절연이 상하니, 한계를 넘지 않았다면 아무 일도 없었어야 합니다. 하지만 한계 아래에서도 권선의 저항은 커지고 자석의 자속은 줄어서, 같은 전류가 다른 토크를 만들고 같은 토크에 더 많은 열이 납니다. 정책과 제어기 설정이 같아도 액추에이터의 파라미터는 바뀔 수 있습니다.

전류로 토크를 명령하고, 전류로 토크와 외력을 읽는 계산은 모두 한 줄에 기댑니다.

τj≈η N Kt iq\tau_j \approx \eta\,N\,K_t\,i_q

03에서 η\eta와 NN을, 05에서 iqi_q에 섞이는 리플과 전기각 오차를 봤습니다. 이 글은 남은 하나, 토크 상수 KtK_t를 봅니다. 온도가 가장 직접적으로 바꾸는 값이 KtK_t이기 때문입니다. KtK_t는 데이터시트에 숫자 하나로 적혀 있지만 실제로는 모터마다, 전류마다, 온도마다 다르고, 그중 온도는 실험 도중에 바뀝니다. 02에서 한 문단으로 소개한 발열을 여기서 자세히 다루고, QDD에서 낮은 감속비가 만드는 열적 비용을 살펴본 뒤 액추에이터 파트를 정리합니다.

토크 상수의 정의와 단위

KtK_t는 q축 전류 1 A가 만드는 토크입니다. 이상적인 표면 부착형 영구자석 모터(SPMSM)에서는 자석의 자속 연계 λm\lambda_m과 극쌍 수 pp로 정해지고, 자속 연계에는 자석의 세기와 함께 권선의 감은 수와 배치가 들어갑니다. 그래서 KtK_t는 자석과 권선이 함께 정하는 값이고, 그중 자석의 자속이 바뀌면 KtK_t도 바뀝니다.

토크 상수와 역기전력 상수 KeK_e는 같은 자속에서 나오는 짝입니다. 전류와 전압의 기준을 전력이 보존되도록 맞추면 SI 단위에서 두 값은 같아집니다. 하지만 실제 데이터시트와 드라이버는 저마다 다른 기준을 쓰므로, 같은 모터라도 적힌 숫자가 3/23/2, 2\sqrt 2, 3\sqrt 3 같은 계수만큼 다릅니다. 상전류의 peak 기준인지 RMS 기준인지, 상 기준인지 선간 기준인지에 따라 달라지는 것입니다. 드라이버가 보고하는 iqi_q의 정의와 데이터시트의 정의가 다르면, 다른 오차가 하나도 없어도 토크 추정이 수십 % 틀립니다. 시스템 식별에서 가장 먼저 맞춰야 하는 것이 이 정의입니다.

수식: 토크 상수, 역기전력 상수와 전류 정의

진폭 불변(amplitude-invariant) dq 변환을 쓰면 q축 역기전력은 eq=p λm ωme_q = p\,\lambda_m\,\omega_m이고, 이때 iqi_q와 eqe_q는 상전류와 상전압의 peak 값과 같은 크기입니다. 3상 전력은 P=32(vdid+vqiq)P = \tfrac{3}{2}(v_d i_d + v_q i_q)이므로 기계 출력 τ ωm=32 eq iq\tau\,\omega_m = \tfrac{3}{2}\,e_q\,i_q에서

τe=32 p λm iq,Kt=32 p λm,Ke,pk=p λm\tau_e = \tfrac{3}{2}\,p\,\lambda_m\,i_q, \qquad K_t = \tfrac{3}{2}\,p\,\lambda_m, \qquad K_{e,\mathrm{pk}} = p\,\lambda_m

이 됩니다. 즉 이 기준에서는 Kt=32Ke,pkK_t = \tfrac{3}{2}K_{e,\mathrm{pk}}이고, 전력 불변(power-invariant) 변환을 쓰면 두 값이 같아집니다. 같은 토크를 RMS 상전류로 쓰면 Kt,rms=2 Kt,pkK_{t,\mathrm{rms}} = \sqrt 2\,K_{t,\mathrm{pk}}이고, 역기전력 상수를 선간 전압으로 쓰면 상 전압 기준보다 3\sqrt 3배 큽니다. 동손도 같은 정의를 따라야 해서, 진폭 불변 dq에서는 PCu=32Rs(id2+iq2)P_{Cu} = \tfrac{3}{2} R_s (i_d^2 + i_q^2), RMS 상전류로는 PCu=3Irms2RphaseP_{Cu} = 3 I_{\mathrm{rms}}^2 R_{\mathrm{phase}}입니다. 아래 예시와 데모는 이 계수를 하나의 등가 RR에 넣어 PCu=R iq2P_{Cu} = R\,i_q^2로 씁니다.

토크 상수를 바꾸는 것들

02의 표에서 본 것처럼 같은 모델의 모터라도 자석과 공극의 제조 편차 때문에 KtK_t가 공칭값과 다릅니다. 이 차이는 관절마다 고정된 값이라 한 번 측정하면 보정할 수 있습니다. 나머지는 운전 조건에 따라 바뀝니다.

전류. 큰 전류에서는 철심이 포화되어 같은 전류 증가에 대한 토크 증가가 줄어듭니다. 포화가 시작되는 전류와 그 크기는 모터마다 다릅니다. 일정한 KtK_t로 근사할 수 있는 범위는 전류–토크 곡선을 측정해 확인해야 합니다.

전기각. 엔코더 영점이 Δθe\Delta\theta_e만큼 어긋나면 제어기가 q축이라고 믿는 전류 중 cos⁡Δθe\cos\Delta\theta_e만 토크를 만듭니다(05). 측정에서는 KtK_t가 작아진 것처럼 보이지만, 원인은 모터가 아니라 각도입니다.

온도. NdFeB 자석의 자속은 온도가 1 K 오를 때 약 0.1 %씩 줄어듭니다. 제조사 자료에는 50 °C 더 뜨거워질 때 KtK_t가 약 5 % 작아지는 예가 있습니다 1. 이 변화는 정상 운전 온도 범위에서는 가역적이라 식으면 돌아옵니다. 허용 온도를 넘거나 강한 역자계가 함께 걸리면 비가역적 감자가 생기고, 이때는 식어도 원래 KtK_t로 돌아오지 않습니다.

이 구분이 이 글의 관점을 보여 줍니다. 비가역적 감자는 보호의 관점이 정확히 맞는 경우입니다. 한계를 넘으면 모터가 상하므로 넘지 않게 막아야 합니다. 반면 가역적인 온도 변화는 한계 한참 아래에서 계속 일어나고, 막을 대상이 아니라 모델로 따라가야 할 상태입니다. 비가역적 감자는 모터가 망가진 것이고, 가역적 변화는 모터가 잠시 다른 모터가 된 것입니다.

같은 전류, 다른 토크: 온도가 바꾸는 것

온도는 KtK_t만 바꾸지 않습니다. 구리 권선의 저항은 1 K에 약 0.39 %씩 커집니다 1. 시리즈 예시대로 권선과 자석이 25 °C에서 75 °C로 오르면 저항은 약 19.5 % 커지고 KtK_t는 약 5 % 줄어듭니다. 같은 전류는 5 % 작은 토크를 만들고, 같은 토크에는 더 많은 열이 듭니다.

두 변화는 같은 방향으로 작용합니다. 같은 토크를 내려면 전류가 1/0.951/0.95배 필요하고, 그 전류가 더 큰 저항을 지나므로 동손은 약 32 % 커집니다. 손실이 커지면 다시 더 뜨거워지는 되먹임이 생기지만, 냉각이 충분하면 온도는 더 높은 평형점에서 멈춥니다. 이 되먹임이 곧 열 폭주를 뜻하지는 않고, 평형 온도를 끌어올립니다.

저항이 커져도 전류 제어기는 처음에는 이 변화를 가립니다. 전압 여유가 있으면 더 큰 전압을 걸어 같은 전류를 유지하기 때문입니다. 속도가 오르면 역기전력도 전압 여유를 사용합니다. 필요한 전압의 합이 인버터 한계에 닿으면 전류가 명령을 따라가지 못해 토크가 떨어집니다. 저항 증가는 손실과 전압 여유로 먼저 나타나고, 토크 상수 감소는 같은 전류의 토크로 바로 나타납니다.

수식: 온도에 따른 저항, 토크 상수와 동손R(T)=R25 [1+α(T−25)],Kt(T)=Kt,25 [1+β(T−25)]R(T) = R_{25}\,[1 + \alpha(T - 25)], \qquad K_t(T) = K_{t,25}\,[1 + \beta(T - 25)]

구리는 α≈0.0039 /K\alpha \approx 0.0039\,/\mathrm{K}, NdFeB의 자속은 β≈−0.001 /K\beta \approx -0.001\,/\mathrm{K} 정도입니다. 같은 토크 τ\tau를 유지하는 동손은 PCu=R (τ/Kt)2P_{Cu} = R\,(\tau/K_t)^2이므로

PCu(75 ∘C)PCu(25 ∘C)=1.1950.952≈1.32\frac{P_{Cu}(75\,^\circ\mathrm{C})}{P_{Cu}(25\,^\circ\mathrm{C})} = \frac{1.195}{0.95^2} \approx 1.32

입니다. 정상상태 q축 전압은 id≈0i_d \approx 0에서 vq≈R iq+ωeλmv_q \approx R\,i_q + \omega_e \lambda_m이고, 이 값이 인버터의 전압 한계를 넘으면 전류 루프가 포화됩니다. 저항 증가는 첫 항을 키우지만, 자석 자속 감소는 같은 속도에서 역기전력 항을 줄입니다. 최종 전압 여유는 두 변화와 요구 전류를 함께 계산해야 알 수 있습니다.

아래 데모는 속도 0에서 하중을 버티는 관절의 권선 온도를 계산합니다. 예시 모터는 02–04의 시리즈 예시 관절보다 훨씬 큰, QDD 관절에 쓰는 크기의 모터로, R25=0.09 ΩR_{25} = 0.09\,\Omega, Kt,25=0.32 N m/AK_{t,25} = 0.32\,\mathrm{N\,m/A}, 열저항 0.42 K/W, 열용량 105 J/K이고, 전류 한계는 60 A에서 시작해 80 °C부터 선형으로 줄여 115 °C에서 0이 되게 했습니다(예시값). 모터 축에서 11 N·m를 공칭 KtK_t로 명령하면 전류는 34 A로 고정되고, 권선은 약 79 °C에서 평형을 이루지만 그때 실제 토크는 10.4 N·m로 약 5 % 모자랍니다. 온도에 맞춰 보정한 KtK_t로 명령하면 11 N·m는 유지되지만 전류가 37 A로 늘어 약 89 °C까지 오르고, 디레이팅 구간에 들어가 쓸 수 있는 전류 한계가 45 A로 줄어듭니다. 토크를 맞추면 열이 늘고, 열을 아끼면 토크가 모자랍니다. 두 경우 모두 온도는 보호 한계인 115 °C에 한참 못 미칩니다. 보정한 경우에는 이미 디레이팅이 작동했지만, 요구 전류는 줄어든 한계보다 낮습니다. 온도 변화와 보호 동작이 액추에이터 모델의 서로 다른 부분에 영향을 주고 있습니다.

Interactive example · Winding heat

How the motor heats up while holding the same load

25°C
derating zone
Winding temperature [°C] · dashed: predicted steady state
25801150100200300
Load torque (dashed) and output torque [N·m]
0150100200300
Current iq [A]
0500100200300
Time [s] · thermal time shown ×10
Motor parameters (example values)

Thermal time constant RthCth = 44 s

Winding temperature25.0 °CPredicted steady state79 °CResistance R(T)90.0 mΩKt(T)0.320Current iq34.4 ACopper loss106 WOutput / load100%

First-order lumped thermal model of a joint holding a load at zero speed. Only copper loss R(T)·iq² is modeled; the current limit starts at 60 A and falls from 80 °C to zero at 115 °C. Default parameters are the example values used in the post, not measurements.

같은 토크에 드는 열과 감속비

동손을 토크로 다시 쓰면 PCu=(τ/Km)2P_{Cu} = (\tau/K_m)^2입니다. Km=Kt/RK_m = K_t/\sqrt R은 모터 상수로, 1 W의 동손으로 낼 수 있는 토크를 뜻합니다. 같은 토크를 버티는 데 드는 열은 KtK_t 하나가 아니라 KtK_t와 저항의 비가 정하고, 온도가 오르면 KtK_t는 줄고 RR은 커져서 KmK_m이 양쪽으로 나빠집니다. 예시 모터는 25 °C에서 Km≈1.07 N m/WK_m \approx 1.07\,\mathrm{N\,m/\sqrt W}이고, 11 N·m를 버티는 데 약 106 W가 듭니다.

관절 기준으로는 감속기가 모터 상수에 ηN\eta N을 곱합니다. 같은 관절 토크의 동손은 1/(ηNKm)21/(\eta N K_m)^2에 비례하므로, 감속비를 10배 낮추면 같은 모터에서 동손은 100배가 됩니다. 04에서 QDD가 치르는 비용으로 적은 발열이 이것이고, QDD가 공극 반경이 큰 외전형 모터를 쓰는 이유도 같은 부피에서 KmK_m을 키우기 위해서입니다 2. 관절이 움직이지 않아도 동손은 그대로이므로 쪼그려 앉아 버티기, 팔을 수평으로 들고 있기, 지면을 오래 미는 동작이 열적으로 가장 비쌉니다. 기계 출력은 0인데 전력은 모두 열이 됩니다. QDD에게 이 비용이 열에서 끝나지 않는다는 점은 뒤에서 다시 봅니다.

동손 밖의 손실은 속도와 함께 커집니다. 철손, 와전류 손실, 베어링과 감속기 마찰, 인버터 스위칭 손실은 모터 속도를 따라 늘어나므로, 감속비를 높이면 같은 관절 속도에서 이 손실이 커집니다. 그래서 모터 효율이 가장 좋은 운전점은 토크–속도 평면의 안쪽에 있고, 열 기준으로 가장 좋은 감속비는 duty cycle마다 다릅니다. 감속할 때 회생 제동으로 기계 에너지 일부를 되돌릴 수는 있지만, 이미 권선에서 난 I2RI^2R 손실은 되돌아오지 않습니다.

멈추기 전까지 바뀌는 것: 연속 토크와 열 시정수

액추에이터가 얼마나 오래 힘을 낼 수 있는지는 peak 토크가 아니라 열이 정합니다. 열용량은 짧은 peak를 버티게 하고, 열저항은 오래 지속할 수 있는 손실을 정합니다. 예시 모터의 열 시정수는 약 44초라서, 짧은 peak는 같은 손실이 평형까지 지속될 때보다 온도를 덜 올립니다. 허용 여부는 손실 크기, 초기 온도와 전류 한계에 달려 있고, 장시간 하중에서는 평형 온도도 확인해야 합니다. 같은 peak 토크의 두 액추에이터도 권선과 고정자의 접촉, 포팅, 하우징 면적과 관절 안의 공기 흐름에 따라 연속 토크가 크게 다릅니다.

데이터시트의 연속 토크와 드라이버의 디레이팅은 언제 멈춰야 하는가에 대한 답입니다. 이 글이 묻는 것은 멈추기 전까지 무엇이 달라지는가입니다. 연속 토크 이하에서 운전해도 권선은 평형 온도까지 오르고, 그 온도에서의 KtK_t와 저항은 차가울 때와 다릅니다. 연속 토크는 모터가 상하지 않는 범위이지, 모터가 변하지 않는 범위가 아닙니다.

열 노드 하나로는 권선과 하우징의 서로 다른 시정수를 표현하지 못합니다. 큰 전류를 넣은 직후에는 권선이 먼저 뜨거워지고 하우징과 자석은 늦게 따라오므로, 하우징 온도가 같아도 그 직전의 운전 이력에 따라 권선과 자석 온도는 다릅니다.

수식: 1노드와 2노드 열 모델Cth T˙=Ploss−T−TambRth,τth=RthCthC_{th}\,\dot T = P_{\mathrm{loss}} - \frac{T - T_{\mathrm{amb}}}{R_{th}}, \qquad \tau_{th} = R_{th} C_{th}

평형 온도는 Tamb+RthPlossT_{\mathrm{amb}} + R_{th} P_{\mathrm{loss}}이고, 예시 값에서 τth=0.42×105≈44 s\tau_{th} = 0.42 \times 105 \approx 44\,\mathrm{s}입니다. 권선 TwT_w와 하우징 ThT_h를 나누면

CwT˙w=PCu−Tw−ThRwh,ChT˙h=Tw−ThRwh+Pother−Th−TambRhaC_w \dot T_w = P_{Cu} - \frac{T_w - T_h}{R_{wh}}, \qquad C_h \dot T_h = \frac{T_w - T_h}{R_{wh}} + P_{\mathrm{other}} - \frac{T_h - T_{\mathrm{amb}}}{R_{ha}}

이고, 보통 Cw≪ChC_w \ll C_h라서 권선의 시정수가 훨씬 짧습니다. 하우징에 붙인 센서는 ThT_h만 보므로, 같은 ThT_h에 여러 TwT_w가 대응합니다.

직접 잴 수 없는 회전자 온도

KtK_t를 바꾸는 것은 자석 온도인데, 자석은 회전자에 붙어 돕니다. 권선과 고정자에는 서미스터를 쉽게 붙일 수 있지만, 회전자의 온도를 재려면 슬립 링이나 무선 텔레메트리가 필요하고 회전체의 질량, 배선과 고장 지점이 늘어납니다. 그래서 대부분의 로봇 액추에이터는 고정자 온도 하나만 잽니다. 보호에 충분한지는 이 센서와 열 모델로 권선·자석 온도의 상한을 어떻게 추정하는지에 달려 있습니다. 하지만 KtK_t를 따라가려면 정작 필요한 온도를 보지 못하는 셈입니다.

자석 온도는 전기 신호로 간접 추정합니다. 알려진 속도에서 역기전력을 재면 자속 연계가 나오고, 자속은 자석 온도에 따라 변하므로 자석 온도를 역산할 수 있습니다 3. 권선 온도는 저항 변화로 추정합니다. 두 추정 모두 전류 측정, 전기각과 모터 파라미터의 정확도에 기대므로, 고정자 센서와 열 모델을 함께 쓰는 관측기(observer)로 묶는 경우가 많습니다.

토크 상수의 측정과 보정

KtK_t는 출력축에 로드셀이나 F/T 센서를 달고 전류를 단계적으로 바꿔 가며 토크를 재면 나옵니다. 정지 상태에서 재면 마찰이 섞이므로 양방향으로 재서 평균을 내고, 큰 전류까지 재면 포화 곡선이 함께 나옵니다. 차가운 상태와 충분히 데운 상태에서 반복하면 온도 계수가 나옵니다. 결과는 전류와 고정자 온도를 축으로 하는 lookup table이 됩니다.

이 표에는 두 가지 한계가 있습니다. 첫째, 표의 온도 축은 고정자 온도인데 KtK_t를 정하는 것은 자석 온도이므로, 운전 이력이 다르면 같은 칸에서도 실제 KtK_t가 다릅니다. 둘째, 열저항과 열용량은 액추에이터 고유의 값이 아니라 장착 조건의 값입니다. 벤치의 큰 알루미늄 지그는 방열판 역할을 하지만, 로봇에서는 플라스틱 커버 안에 갇히거나 반대로 링크 전체가 방열판이 되기도 합니다. 단품 시험의 열 모델은 출발점으로 쓰고, 로봇에 장착한 뒤 운전 로그로 다시 맞춰야 합니다.

전류로 읽는 토크와 외력

관절 토크 센서가 없는 로봇은 전류로 관절 토크를 읽고, 거기서 로봇 자신의 동역학을 빼서 외력을 추정합니다 4. 이 방식의 오차는 두 부분에서 옵니다. 하나는 전류에서 액추에이터 토크로 가는 부분으로, 이 글의 KtK_t, 03의 효율과 마찰, 05의 리플과 백래시가 여기에 들어갑니다. 다른 하나는 액추에이터 토크에서 외력으로 가는 부분으로, 링크 관성, 중력과 마찰 모델의 오차가 그대로 외력 추정에 섞입니다. 빠른 가속이나 큰 중력 하중이 있을 때는 빼야 할 항이 외력보다 커서, 작은 외력은 모델 오차에 묻힙니다.

QDD가 전류만으로 접촉력을 제어할 수 있는 것은 이 오차 중 마찰과 reflected inertia를 하드웨어로 줄였기 때문입니다. 낮은 감속비가 빼야 할 내부 토크를 작게 만들고, MIT Cheetah의 고유수용성 구동(Proprioceptive Actuation)이 이 구조를 보여 줬습니다 5. 이 오차들이 줄면 KtK_t 보정의 영향이 더 커질 수 있지만, 전류 측정·전기각·로봇 모델의 오차는 여전히 남습니다. 고감속 관절에서는 마찰과 효율의 불확실성도 전류 기반 추정을 제한할 수 있고, 출력 토크 센서는 전달계의 불확실성 일부를 우회합니다.

전류 루프가 빠르다고 토크가 빠른 것도 아닙니다. 전류 루프 대역폭은 측정한 전류가 명령을 빠르게 따른다는 뜻일 뿐, 측정 전류가 실제 전류와 같은지, 전기각이 맞는지, KtK_t가 일정한지, 감속기와 구조물이 그 토크를 그대로 전달하는지는 보장하지 않습니다.

수식: 전류 기반 외력 추정τ^act=η^ N K^t(iq,T) iq,τ^ext=τ^act−M^(q)q¨−C^(q,q˙)q˙−G^(q)−τ^f(q,q˙)\hat\tau_{\mathrm{act}} = \hat\eta\,N\,\hat K_t(i_q, T)\,i_q, \qquad \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(q, \dot q)

q¨\ddot q는 잡음이 크므로 실제로는 운동량 관측기(momentum observer)처럼 가속도를 직접 쓰지 않는 형태로 구현합니다. 자코비안이 정방이고 비특이하며 외력이 모델링한 말단에서 작용한다고 가정하면 F^=J−⊤τ^ext\hat F = J^{-\top}\hat\tau_{\mathrm{ext}}로 옮깁니다. 여유 자유도가 있거나 다른 위치에서 접촉하면 그에 맞는 추정식을 써야 합니다. K^t\hat K_t의 상대 오차 δ\delta는 외력이 아니라 액추에이터 토크 전체에 곱해지므로, 중력 하중 GG를 버티는 관절에서는 외력 추정에 δ G\delta\,G만큼의 편향을 만듭니다.

QDD의 전류 기반 힘 추정

전류로 접촉력을 추정하는 QDD 설계는 전류–토크 관계에 의존합니다. 같은 모터와 효율을 가정하면 낮은 감속비에서는 같은 관절 토크에 더 큰 전류가 필요합니다. 전류가 지속되면 동손과 온도가 오르고, 큰 전류에서는 자기 포화도 나타날 수 있습니다.

데모의 예시 모터로 보면 차이가 분명합니다. 모터 축의 11 N·m는 6:1 QDD 관절에서는 66 N·m입니다. 같은 66 N·m를 50:1 관절로 버티면 모터 토크는 1.3 N·m, 전류는 약 4 A이고 동손은 약 1.5 W라서 온도는 1 K도 오르지 않습니다. 6:1에서는 34 A와 약 106 W가 들고, 권선은 약 79 °C까지 올라 KtK_t가 약 5 % 줄어듭니다(효율은 무시한 예시값). 무릎을 굽히고 서 있는 것만으로 이 차이가 생깁니다.

큰 전류는 두 경로로 KtK_t를 공칭값에서 멀어지게 합니다. 착지나 점프처럼 순간적으로 큰 토크를 낼 때는 철심 포화로 KtK_t가 떨어지고, 오래 버티는 하중에서는 동손이 열이 되어 KtK_t는 줄고 저항은 커집니다. 예시의 34 A는 전류 한계 60 A의 절반을 넘지만, 이 비율만으로 자기 포화의 시작점을 알 수는 없습니다. 전류–토크 곡선을 측정해야 합니다. KtK_t 오차가 지배적인지도 실제 운전 조건에서 센싱·마찰·모델 오차와 비교해야 판단할 수 있습니다.

이 오차는 그대로 로봇의 자세와 힘에 나타납니다. KtK_t가 5 % 줄어든 무릎 관절은 공칭 KtK_t로 명령한 토크보다 5 % 약하게 버티고, 위치 제어기가 그 차이를 메울 때까지 로봇이 처집니다. 같은 오차를 외력 추정 쪽에서 보면 중력 하중의 약 5 %가 외력으로 잘못 읽힙니다. 도입에서 든 자세 변화의 원인이 될 수 있는 메커니즘 중 하나입니다.

그렇다고 QDD가 잘못된 선택이라는 뜻은 아닙니다. QDD 설계는 공극 반경이 큰 외전형 모터로 KmK_m을 키우고, 하우징으로 열을 빼는 경로를 함께 설계해 이 비용을 줄입니다 2. 그리고 이 오차는 무작위가 아니라 전류와 온도에 묶여 있어서 측정하고 보정할 수 있습니다. 필요한 보정 정확도는 작업이 허용하는 힘 추정 오차에서 정해야 합니다. 전류 기반 힘 추정에 의존하는 QDD 설계라면 KtK_t의 열적 변화와 남아 있는 센싱·전달계 오차를 함께 오차 예산에 넣어야 합니다.

시뮬레이터와 정책이 보지 못하는 느린 상태

시뮬레이터와 정책이 학습한 것은 차가운 액추에이터입니다. 시뮬레이터의 액추에이터는 보통 에피소드 처음과 끝에 같은 KtK_t, 같은 저항, 같은 토크 한계를 가집니다. 실제 로봇에서는 이전 동작이 다음 동작의 액추에이터를 바꿉니다. 온도를 관측하지 못하는 정책은 같은 상태와 행동에 다른 가속도가 나오는 이유를 알 수 없고, 디레이팅이 시작되면 학습 때 한 번도 본 적 없는 방식으로 토크 한계가 줄어듭니다. 특정 관절만 먼저 뜨거워지면 좌우 대칭도 깨집니다.

정책이 모든 내부 온도를 볼 필요는 없습니다. 저수준 드라이버가 온도와 전압으로 지금 쓸 수 있는 토크를 계산해 넘기면, 정책은 센서 하나의 온도 대신 실제로 쓸 수 있는 토크 범위를 기준으로 행동할 수 있습니다. 온도 센서를 보호 회로의 입력에서 정책의 입력으로 옮기는 셈입니다. 학습 쪽에서는 관절별 KtK_t와 저항을 무작위화하고 에피소드 안에서도 천천히 변하게 해 정책이 이 변화를 경험하도록 할 수 있습니다. 효과는 의도한 온도 범위에서 평가해야 합니다. 정적 하중을 전류로만 버티지 않도록 스프링, 카운터밸런스, 브레이크와 자세를 쓰는 것도 같은 문제에 대한 하드웨어 쪽의 답입니다.

액추에이터 파트 정리

02부터 이 글까지 본 오차는 모두 같은 질문으로 정리됩니다. 시뮬레이터의 이상적인 토크 소스와 실제 액추에이터가 어디서 다르고, 그 차이를 측정해서 넣을지, 무작위화로 덮을지, 정책이 보게 할지입니다.

오차식별 방법시뮬레이터에 넣는 방식자세히
전류 루프 대역폭과 지연전류 계단 응답, 명령–측정 토크의 시간 지연액추에이터 지연, 1차 필터02, 04
속도에 따른 토크 한계데이터시트의 KeK_e, 저항, 버스 전압토크–속도 한계, 버스 전압 무작위화02
reflected inertia토크 계단에 대한 가속도관절 armature03
마찰과 역구동성일정 속도 sweep의 평균 전류, 역구동 개시 토크쿨롱·점성 마찰, 관절별 무작위화03
감속기 강성과 공진출력축을 고정한 토크–비틀림 곡선, chirp 응답두 관성 모델 또는 관측 지연03
접촉 임피던스저주파 토크–변위 기울기, 주파수 응답kp·kd에 armature와 마찰을 함께 맞춤04
토크 리플과 전기각 오차저속 일정 속도에서 위치별 토크전기각에 묶인 주기 외란05
감속기 전달 오차낮은 일정 속도에서 입출력 엔코더 차이의 입력각 분석입력 회전에 묶인 주기 위치 오차05, 감속기별 하위 글
백래시와 lost motion양방향 토크–변형 고리데드존과 방향 이력, 최근 운동 방향 관측05
순간 하중 한계감속기별 순간 최대 토크와 충격 한계(데이터시트)충돌 토크 모니터링, 초과 시 페널티나 에피소드 종료03, 감속기별 하위 글
토크 상수의 개체 차이·포화·온도로드셀로 전류–토크, 큰 전류까지, 냉·온 상태 반복관절별 KtK_t·RR 무작위화, 느린 drift, 가용 토크 관측이 글

모든 항목을 넣을 필요는 없습니다. 빠른 보행처럼 리플 주파수가 기계 대역보다 훨씬 높은 과제에서는 리플을 생략해도 링크 운동에 미치는 영향이 작을 수 있고, 위치 제어 위주의 과제에서는 토크 상수의 오차가 위치 루프에 가려집니다. 접촉, 힘 제어, 저속 정밀 동작과 오래 지속되는 하중처럼 오차가 과제의 대역 안으로 들어오는 경우에 해당 항목을 넣으면 됩니다. 이 표의 오차들 사이의 공통점은 무작위가 아니라 상태에 묶여 있다는 점입니다. 그 상태가 위치, 방향, 속도인지 온도인지를 알면, 어떤 오차를 측정하고 무엇을 정책에 보여 줄지 정할 수 있습니다.

여기까지가 관절 하나를 움직이는 액추에이터 이야기입니다. 다음 파트에서는 로봇이 자신의 상태와 힘을 읽는 센서를 살펴봅니다.

References

[1] maxon motor ag, “maxon Motor Data and Operating Ranges.” Manufacturer PDF

[2] S. Seok et al., “Design Principles for Energy-Efficient Legged Locomotion and Implementation on the MIT Cheetah Robot,” IEEE/ASME Transactions on Mechatronics, vol. 20, no. 3, pp. 1117–1129, 2015. Paper

[3] Y. Xiao and A. Griffo, “PWM-Based Flux Linkage and Rotor Temperature Estimations for Permanent Magnet Synchronous Machines,” IEEE Transactions on Power Electronics, vol. 35, no. 6, pp. 6061–6069, 2020. Paper

[4] 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. Paper

[5] P. M. Wensing, A. Wang, S. Seok, D. Otten, J. Lang, and S. Kim, “Proprioceptive Actuator Design in the MIT Cheetah: Impact Mitigation and High-Bandwidth Physical Interaction for Dynamic Legged Robots,” IEEE Transactions on Robotics, vol. 33, no. 3, pp. 509–522, 2017. Paper