flowchart LR
subgraph SYS["System Dynamics (Unitree A1)"]
DYN["แบ = f(x, ฯ, u)<br/>x=[p,ฮธ,v,ฯ_B], u=[fโ..fโ]"]
end
subgraph MPC["MPC"]
JM["min ฮฃ ฮณ^(i-1) r(xฬ,x_des,u)<br/>over horizon N"]
end
subgraph RQL["Roll-Out Q-Learning"]
JR["min ฮฃ_(i=1)^(N-1) ฮณ^(i-1) r(...)<br/>+ Qฬ(xฬ_N, x_des, u_N; w)<br/>(ํ์ต๋ tail cost)"]
CRITIC["critic ๊ฐฑ์ :<br/>buffer(M=500) ์ต์์ ๊ณฑ<br/>w โ min_w J_k^c"]
end
DYN --> MPC
DYN --> RQL
CRITIC -.->|Q-function ๊ฐ์ค์น w| JR
MPC -->|์ ์ฝ: contact schedule,<br/>friction cone ฮผ=0.3| OUT["first action u*_1 ์ ์ฉ"]
RQL --> OUT
๐Combining MPC & RL
- ๐พ ๋ณธ ๋ ผ๋ฌธ์ ๋ชจ๋ธ ์์ธก ์ ์ด(MPC)์ ์์ธก ๊ฐํ ํ์ต(RQL)์ ๊ฒฐํฉํ ํ์ด๋ธ๋ฆฌ๋ ์ ์ด๊ธฐ๋ฅผ ์ ์ํ์ฌ ์ฟผ๋๋ฌํ ๋ก๋ด์ ์์ ์ ์ธ ๋ณดํ ์์ฑ ๋ฌธ์ ๋ฅผ ๋ค๋ฃน๋๋ค.
- ๐ค ๊ฐ๋ฐ๋ RQL ๋ฐฉ์์ ์ ๊ฒฝ๋ง์ผ๋ก ๋ชจ๋ธ๋ง๋ Q-ํจ์๋ฅผ MPC์ ์์ธก ํธ๋ผ์ด์ฆ์ ๋ํ ์ต์ข ๋น์ฉ์ผ๋ก ํตํฉํ์ฌ ๊ณ์ฐ ๋ณต์ก์ฑ์ ์ํํ๊ณ , ํนํ ์งง์ ํธ๋ผ์ด์ฆ์์ MPC๋ณด๋ค ์ฐ์ํ ์ฑ๋ฅ์ ๋ณด์ ๋๋ค.
- โจ ์คํ ๊ฒฐ๊ณผ, RQL์ ์งง์ ์์ธก ํธ๋ผ์ด์ฆ(N=2)์์๋ MPC๋ณด๋ค ํจ์ฌ ๋ฎ์ ๋์ ์คํ ๋น์ฉ๊ณผ ๋ฐฉํฅ ์ค๋ฅ๋ฅผ ๋ฌ์ฑํ์ฌ, ์ค์๊ฐ ์จ๋ผ์ธ ์ ์ด ๋ฅ๋ ฅ๊ณผ ๊ณ์ฐ ํจ์จ์ฑ ๊ฐ์ ๊ท ํ์ ์ ๊ณตํจ์ ์ ์ฆํ์ต๋๋ค.
๐ Ping Review
๐ Ping โ A light tap on the surface. Get the gist in seconds.
๋ณธ ๋ ผ๋ฌธ์ ์ฌ์กฑ๋ณดํ ๋ก๋ด์ ์์ ์ ์ธ ๋ณดํ ์์ฑ์ ์ํด ๋ชจ๋ธ ์์ธก ์ ์ด(Model-Predictive Control, MPC)์ ์์ธก ๊ฐํ ํ์ต(Predictive Reinforcement Learning, RL)์ ๊ฒฐํฉํ๋ ํ์ด๋ธ๋ฆฌ๋ ์ ์ด ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ์ฌ์กฑ๋ณดํ ๋ก๋ด์ ๋์ ์ด๋์ฑ๊ณผ ๊ธฐ๋์ฑ์ ์ ๊ณตํ์ง๋ง, ๋ณต์กํ ๊ธฐ๊ณ ๊ตฌ์กฐ์ ๋ง์ ์์ ๋๋ก ์ธํด ์ ์ด๊ฐ ์ด๋ ต์ต๋๋ค.
๊ธฐ์กด MPC๋ ์์คํ ๋ชจ๋ธ๊ณผ ์ ์ฝ ์กฐ๊ฑด์ ๊ธฐ๋ฐ์ผ๋ก ๋ฏธ๋ ์ํ๋ฅผ ์์ธกํ๊ณ ์ต์ ์ ์ ์ด ์ ๋ ฅ์ ๊ณ์ฐํ๋ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ๋๋ค. ํ์ง๋ง ์งง์ ์์ธก ๋ฒ์(planning horizon), ๊ตญ์ ์ต์ ์ ์ ์๋ ด ๊ฐ๋ฅ์ฑ, ๋ชจ๋ธ ์ค์ฐจ, ๊ทธ๋ฆฌ๊ณ ๋ฏธ๋ ์ฌ๊ณํ์ ๊ณ ๋ คํ์ง ๋ชปํ๋ ํ๊ณ๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด MPC์ ์ ์ ์ ์ด(Whole-Body Control, WBC)์ ํตํฉ, ํ์ต ๊ธฐ๋ฐ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์ ์ด Lyapunov ํจ์(Control Lyapunov Function, CLF)์์ ๊ฒฐํฉ ์ฐ๊ตฌ๊ฐ ์งํ๋์ด ์์ต๋๋ค.
๊ฐํ ํ์ต(RL)์ ์์ํ ๊ฒฝํ์ ํตํด ์ ์ํ๋ฉฐ ๋ณต์กํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ํ์ํ ์ฑ๋ฅ์ ๋ณด์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ก๋ด ์ ์ด์ ๊ฐ์ด ๋ณต์กํ ์์คํ ์ ์ ์ฉํ ๊ฒฝ์ฐ ์๋ฎฌ๋ ์ด์ ๋ฐ ์คํ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ๋ณต์ก์ฑ์ด ๋๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
๋ณธ ์ฐ๊ตฌ๋ MPC์ ์งง์ ์์ธก ๋ฒ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋กค์์ Q-ํ์ต(Roll-out Q-Learning, RQL)์ด๋ผ๋ ํ์ด๋ธ๋ฆฌ๋ ์ ๊ทผ ๋ฐฉ์์ ์ ์ํฉ๋๋ค. ์ด๋ MPC์ ๋น์ฉ ํจ์์ Q-ํจ์ ํํ์ ํ ์ผ ์ฝ์คํธ(tail cost)๋ฅผ ๋์ ํ์ฌ ์์ธก ๋ฒ์๋ฅผ ์๋ฌต์ ์ผ๋ก ํ์ฅํ๋ ๋ฐฉ์์ ๋๋ค. Q-ํจ์๋ ์ ๊ฒฝ๋ง์ผ๋ก ๋ชจ๋ธ๋ง๋์ด ๊ณ์ฐ ๋ณต์ก๋๋ฅผ ์ํํฉ๋๋ค.
2. ์์คํ ๋์ญํ (Systemโs dynamics):
Unitree A1 ๋ก๋ด ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์์คํ ๋์ญํ์ ์ ์ํฉ๋๋ค. ๋ก๋ด์ ์ ์ด์ ์์ ์์ฉํ๋ ํ์ ๋ฐ๋ ๋จ์ผ ๊ฐ์ฒด๋ก ๊ฐ์ฃผํ๋ฉฐ, ๋ค๋ฆฌ ๋์ญํ์ ์ฃผ ์ง๋์ฒด ๋๋น ์์ ์ง๋ ๋น์จ๋ก ์ธํด ๋ฌด์๋ฉ๋๋ค. ๋ก๋ด์ ๊ฐ์ฒด ๋์ญํ์ ์ธ๊ณ ์ขํ๊ณ(world coordinates)์์ ๋ค์ ์์ผ๋ก ํํ๋ฉ๋๋ค: \ddot{p} = \sum_{i=1}^{4} \frac{f_i}{m} - g \quad (1) \frac{d}{dt} (I\omega) = \sum_{i=1}^{4} r_i \times f_i \quad (2) \dot{R} = \omega \times R \quad (3) ์ฌ๊ธฐ์ \ddot{p}๋ ๋ก๋ด ์์น p์ 2์ฐจ ๋ฏธ๋ถ, f_i๋ i๋ฒ์งธ ์ง๋ฉด ๋ฐ๋ ฅ, r_i๋ ํด๋น ๋ ๋ฒ, m์ ๋ก๋ด ์ ์ฒด ์ง๋, g๋ ์ค๋ ฅ ๊ฐ์๋, I๋ ๊ด์ฑ ๋ชจ๋ฉํธ, R์ ํ์ ํ๋ ฌ, \omega๋ ๊ฐ์๋์ ๋๋ค. ๋ก๋ด์ ์์ธ๋ ์ค์ผ๋ฌ ๊ฐ \Theta = [\phi, \theta, \psi]๋ก ๊ฒฐ์ ๋๋ฉฐ, ์ ์ฒด ๋์ญํ์ ๋ค์ ์ํ ๊ณต๊ฐ ๋ชจ๋ธ๋ก ํํ๋ฉ๋๋ค: \frac{d}{dt} \begin{bmatrix} p \\ \Theta \\ v \\ \omega_B \end{bmatrix} = \begin{bmatrix} v \\ J^{-1}\omega_B \\ \sum_{i=1}^{4} \frac{f_i}{m} - g \\ I_B^{-1} (R^T \sum_{i=1}^{4} r_i \times f_i - \omega_B \times I_B \omega_B) \end{bmatrix} \quad (6) ์ฌ๊ธฐ์ J^{-1}๋ ๋ฐ๋ ํ๋ ์ ๊ฐ์๋ \omega_B๋ฅผ ์ค์ผ๋ฌ ๊ฐ์ ๋ณํ์จ๋ก ๋ณํํ๋ ํ๋ ฌ์ด๋ฉฐ, I_B๋ ๋ฐ๋ ํ๋ ์์ ๊ด์ฑ ๋ชจ๋ฉํธ์ ๋๋ค. ์ํ x, ํ๋ u, ๋ ๋ฒ ๋งค๊ฐ๋ณ์ \vartheta๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค: x := [p \ \Theta \ v \ \omega_B]^T \quad (7) u := [f_1 \ f_2 \ f_3 \ f_4]^T \quad (8) \vartheta := [r_1 \ r_2 \ r_3 \ r_4]^T \quad (9) ๋ฐ๋ผ์ ๋์ญํ์ \dot{x} = f(x, \vartheta, u)๋ก ํํ๋ฉ๋๋ค.
3. ๋ฐฉ๋ฒ๋ก (Methods):
3.1 ๋ชจ๋ธ ์์ธก ์ ์ด (Model Predictive Control, MPC):
MPC๋ ๋ค์ ๋น์ฉ ํจ์ J_{MPC}๋ฅผ ์ต์ํํ๋ ์ ์ด ์ ๋ ฅ์ ์ฐพ์ต๋๋ค:
\min_{\{u_{i|k}\}_i^N} J_{MPC}(x_0, \{x_{des,i|k}\}_i^N | \{u_{i|k}\}_i^N) := \min_{\{u_{i|k}\}_i^N} \sum_{i=1}^N \gamma^{i-1}r(\hat{x}_{i|k}, x_{des,i|k}, u_{i|k}) \quad (11)
์ ์ฝ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- \hat{x}_{0,k} = x_0 (์ด๊ธฐ ์ํ)
- \hat{x}_{i+1|k} = \Phi(\delta, \hat{x}_{i|k}, \vartheta_{i|k}, u_{i|k}) (์์คํ ๋์ญํ, \Phi๋ ์์น ์ ๋ถ ์คํด, ๋ณธ ์ฐ๊ตฌ์์๋ Euler explicit scheme \Phi(\delta, \hat{x}_{i|k}, \vartheta_{i|k}, u_{i|k}) = \hat{x}_{i|k} + \delta f(\hat{x}_{i|k}, \vartheta_{i|k}, u_{i|k}) ์ฌ์ฉ)
- C_{i|k}u_{i|k} = 0 (์ ์ด ์ค์ผ์ค ์ ์ฝ: ์ค์ ๋จ๊ณ์์๋ ํ์ด 0)
- Du_{i|k} \le 0 (๋ง์ฐฐ ์๋ฟ ์ ์ฝ: ์ฌ๋ผ์ด๋ฉ ๋ฐฉ์ง, -\mu f_z \le f_x \le \mu f_z, -\mu f_z \le f_y \le \mu f_z) ์ฌ๊ธฐ์ \gamma๋ ํ ์ธ์จ, N์ ์์ธก ๋ฒ์, r์ ์คํ ๋น์ฉ(running cost)์ ๋๋ค. MPC ์๊ณ ๋ฆฌ์ฆ์ ๋งค ์๊ฐ ๋จ๊ณ๋ง๋ค ํ์ฌ ์ํ๋ฅผ ๋ฐ์ ์ต์ ์ ์ก์ ์ํ์ค๋ฅผ ๊ณ์ฐํ๊ณ ์ฒซ ๋ฒ์งธ ์ก์ ์ ์์คํ ์ ์ ์ฉํฉ๋๋ค.
3.2 ๋กค์์ Q-ํ์ต (Roll-Out Q-Learning, RQL):
RQL์ MPC์ ๋น์ฉ ํจ์์ Q-ํจ์ ํ ์ ์ถ๊ฐํ์ฌ ์์ธก ๋ฒ์ N์ ๋์ ์๋ ํฐ๋ฏธ๋ ๋น์ฉ(terminal cost)์ ๊ทผ์ฌํฉ๋๋ค. \min_{\{u_{i|k}\}_i^N} J_{RQL}^a(x_0, \{x_{des,i|k}\}_i^N | \{u_{i|k}\}_i^N; w_k) := \min_{\{u_{i|k}\}_i^N} \left( \sum_{i=1}^{N-1} \gamma^{i-1}r(\hat{x}_{i|k}, x_{des,i|k}, u_{i|k}) + \hat{Q}(\hat{x}_{N|k}, x_{des,N|k}, u_{N|k}; w_k) \right) \quad (23) ์ ์ฝ ์กฐ๊ฑด์ MPC์ ๋์ผํฉ๋๋ค. Q-ํจ์ \hat{Q}(x_k, x_{des,k}, u_k; w_k)๋ ๋งค ์๊ฐ ๋จ๊ณ๋ง๋ค ๋ค์ ์์ค ํจ์๋ฅผ ์ต์ํํ์ฌ ์ ๋ฐ์ดํธ๋ฉ๋๋ค: J_k^c := \frac{1}{2} \sum_{i=k}^{k+M-1} e_i^2(w) \quad (21) e_k(w) := \hat{Q}(x_k, x_{des,k}, u_k; w) - r(x_k, x_{des,k}, u_k) - \hat{Q}(x_{k+1}, x_{des,k+1}, u_{k+1}; w_{prev}) \quad (22) ์ฌ๊ธฐ์ M์ ๋ฒํผ ํฌ๊ธฐ(M=500)์ด๊ณ w_k๋ Q-ํจ์ ์ ๊ฒฝ๋ง์ ๊ฐ์ค์น์ ๋๋ค. Q-ํจ์ ๋ชจ๋ธ์ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค: \hat{Q}(x_k, x_{k,des}, u_k, w) := z_k^T A z_k \quad (30) z_k := \begin{bmatrix} x_k - x_{k,des} \\ \sum_{i=1}^4 f_{i,k} - mg \end{bmatrix} \quad (31) ์ฌ๊ธฐ์ A๋ ๋๊ฐ ํ๋ ฌ์ด๋ฉฐ, ๋๊ฐ์ ์ Q-ํจ์ ๊ฐ์ค์น w๋ฅผ ๊ฐ์ง๋๋ค. ์ด ๋ชจ๋ธ์ ๋ก๋ด์ด ์ํ๋ ์์น์ ์ ์๊ณ (์ฆ, x_k = x_{k,des}) โ์ด์์ ์ธโ ํ(์ฆ, ํ์ ํฉ์ด mg)์ ๊ฐํ ๋ Q-ํจ์ ๊ฐ์ด 0์ด ๋๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด ๋ชจ๋ธ์ ๋จ์์ฑ์ ๊ณ์ฐ ํจ์จ์ฑ์ ์ํด ์๋๋์์ผ๋ฉฐ, ํฐ๋ฏธ๋ ๋น์ฉ์ผ๋ก์ ํจ๊ณผ์ ์ธ ์ํฅ์ ๊ธฐ๋ํฉ๋๋ค.
4. ์คํ ์ค์ ๋ฐ ๊ฒฐ๊ณผ:
์คํ์ rcognita, ROS, Quad-SDK ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ A1 Unitree ๋ก๋ด ์๋ฎฌ๋ ์ด์ ํ๊ฒฝ์์ ์ํ๋์์ต๋๋ค. ์คํ ๋น์ฉ r(x, x_{des}, u)๋ ์ํ ์ค์ฐจ e_x = x - x_{des}์ ์ก์ ์ค์ฐจ e_u = u - u_{des}๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์๋ฉ๋๋ค: r(x, x_{des}, u) := e_x^T P_x e_x + e_u^T P_u e_u \quad (29) P_x์ P_u๋ ๋๊ฐ ํ๋ ฌ์ ๋๋ค. u_{des}๋ ๋ก๋ด์ ์ ์์ธ๋ก ์ ์งํ๊ธฐ ์ํ ์ฐธ์กฐ ์ง๋ฉด ๋ฐ๋ ฅ([mg/4 \ mg/4 \ mg/4 \ mg/4]^T)์ ๋๋ค.
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋จ๊ธฐ ์์ธก ๋ฒ์(N=2): RQL์ MPC๋ณด๋ค Z์ถ ์์น ์ค์ฐจ์ ์์ธ ์ค์ฐจ(๋กค, ํผ์น)๋ฅผ ํ์ ํ ์ค์์ต๋๋ค. ํนํ ๋กค ์ค์ฐจ๋ ๊ฑฐ์ 10๋ฐฐ ๊ฐ์ํ์ต๋๋ค. RQL์ ํ๊ท ์คํ ๋น์ฉ์ MPC๋ณด๋ค ์ฝ 3๋ฐฐ ๋ฎ์ ์ฐ์ํ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค. ์ด๋ Q-ํจ์๊ฐ ๋น์ฉ ํจ์์์ ์ง๋ฐฐ์ ์ธ ์ญํ ์ ํ์ฌ RQL์ด MPC๋ฅผ ๋ฅ๊ฐํ ์ ์๊ฒ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์ฅ๊ธฐ ์์ธก ๋ฒ์(N=5): ๋ ์ ์ด๊ธฐ์ ์ฑ๋ฅ์ ๊ฑฐ์ ๋์ผํด์ก์ต๋๋ค. ์ด๋ ์์ธก ๋ฒ์๊ฐ ๊ธธ์ด์ง์๋ก Q-ํจ์์ ์ค์์ฑ์ด ๋น์ฉ ํจ์์ ๋ค๋ฅธ ํญ๋ค์ ๋นํด ์ค์ด๋ค๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ๋์ ์คํ ๋น์ฉ: ์งง์ ์์ธก ๋ฒ์์ RQL์ ๊ธด ์์ธก ๋ฒ์์ MPC๋ณด๋ค ๋ ๋์ ๋์ ์คํ ๋น์ฉ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค.
5. ๊ฒฐ๋ก (Concluding remarks):
๋ณธ ์ฐ๊ตฌ์ ์คํ ๊ฒฐ๊ณผ๋ ๋จ์ํ ์ ํ Q-ํจ์ ๋ชจ๋ธ(31)์ ์ฌ์ฉํ์์๋ ๋ถ๊ตฌํ๊ณ ๋ฎ์ ์์ธก ๋ฒ์์์ RQL์ ์๋นํ ์ด์ ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ๋ก๋ด ์์คํ ์ ๋์ ๋น์ ํ์ฑ์ ๊ณ ๋ คํ ๋, Q-ํจ์ ๊ทผ์ฌ๊ฐ ๋น์ ํ์ ์ด์ด์ผ ํจ์ ์ง์ ํ๋ฉฐ, ๋ ์ ์ฐํ๊ณ ๋น์ ํ์ ์ธ Q-ํจ์ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด ๋์ ์์ธก ๋ฒ์์์๋ ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ์ด๋ MPC์ RL์ ๊ฒฐํฉ์ด ๋ก๋ด ์ ์ด์์ ์จ๋ผ์ธ ์ ์ด ๋ฅ๋ ฅ๊ณผ ๊ณ์ฐ ๋ณต์ก์ฑ ์ฌ์ด์ ๊ท ํ์ ๋ง์ถ๋ ๋ฐ ์ ์ตํจ์ ์์ฌํฉ๋๋ค.
๐ Ring Review
๐ Ring โ An idea that echoes. Grasp the core and its value.
์๋ก
ํ๋ ์ฌ์กฑ๋ก๋ด์ ๋์ ๊ธฐ๋์ฑ๊ณผ ํ์ง ์ฃผํ ๋ฅ๋ ฅ์ผ๋ก ์ ๊ฒยท๋ฐฐ์ก ๊ฐ์ ์์ฉ์ ์ ํฉํ์ง๋ง, ์์ ๋๊ฐ ๋ง์ ๋ณต์กํ ๊ธฐ๊ณ ๊ตฌ์กฐ๋ผ ๋์ ์ผ๋ก ๋ณํ๋ ํ๊ฒฝ์์ ํจ์จ์ ์ผ๋ก ์ ์ดํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
- MPC ๋ ์ ํ ์์ธก ์งํ์ ์์ ๋์ํ๋ฉฐ ๋ณต์กํ ์ ์ฝ์ ํจ์จ์ ์ผ๋ก ๋ค๋ค ์ฐ์ ยท์ค๋ด ๋ฏธ๊ธฐํ ์ ์ดยท์ฌ์กฑ๋ก๋ด๊น์ง ํญ๋๊ฒ ์ ์ฉ๋์ต๋๋ค. ํ์ง๋ง ์ ํต์ MPC๋ ์งง์ ๊ณํ ์งํ์ , ๊ตญ์ ์ต์ ์๋ ด, ๋์ญํ ๋ชจ๋ธ ์ค์ฐจ, ๋ฏธ๋ replanning ๋ฏธ๋ฐ์ ๊ฐ์ ํ๊ณ๊ฐ ์์ต๋๋ค. ์งง์ ์งํ์ ๋ฌธ์ ๋ ๊ณ์ฐ ๋ณต์ก๋์์ ๋น๋กฏ๋๋๋ฐ, ํ์ต ๊ธฐ๋ฐ ๋ฐฉ๋ฒ์ผ๋ก ๋ชฉ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทผ์ฌ ํด ์ํํ ์ ์์ต๋๋ค.
- RL ์ ์ฌ์กฑ๋ก๋ด ์ ์ด ๊ฐ์ ๋ณต์กํ ๋ฌธ์ ์ ์ ์ฉ๋ผ, ์ํ ์ถ์ ๊ธฐ์ ์ ์ฑ ์ ๋์์ ํ์ตํ๊ฑฐ๋ ํ์ง ์ ์, ๋์ญํ ๋ณํ ์ ์ ๋ฑ์ ๋ณด์์ต๋๋ค.
MPC์ RL์ ๊ฒฐํฉํด ์งง์ ์งํ์ ๋ฌธ์ ๋ฅผ ์ํํ๋ ๋ ๊ฐ๋๊ฐ ์์ต๋๋ค. (1) ์งํ์ ๊ธธ์ด ์์ฒด๋ฅผ ํ์ต ํ๊ฑฐ๋, (2) ๋น์ฉ ํจ์ ์ต์ ํ์ ๋ ๊ธด ์์ธก ๊ตฌ๊ฐ์ ์๋ฌต์ ์ผ๋ก ๋ฐ์ ํ๋ ๋ฐฉ์์ ๋๋ค. ๋ ๋ฒ์งธ ๊ฐ๋์ ๋๊ธฐ๋ ๋ถ๋ช ํฉ๋๋ค โ terminal cost(๋ง๋จ ๋น์ฉ)๊ฐ ๋ฌดํ ์งํ์ ํด์ ์ถฉ๋ถํ ์ ํํ๋ฉด, ์งง์ ์์ธก ์งํ์ ์ผ๋ก๋ ๊ด์ฐฎ์ ์ฑ๋ฅ ์ ๋ผ ์ ์์ต๋๋ค. ๊ทธ๋์ ํ์ต์ผ๋ก ์ข์ terminal cost๋ฅผ ์ป๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ฉฐ, ๊ทธ ํ ๊ตฌํ์ด Roll-Out RL(RQL) ์ ๋๋ค. RQL์ ์ ํต MPC์ ํ์ฅ/๊ฐํ๋ก ๋ณผ ์ ์์ต๋๋ค.
RQL์ด ๋จ์ ๋ชจ๋ธ์์ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ธ ๋ฐ ์ฐฉ์ํด, ์ ์๋ค์ ์ด๋ฅผ ์ฌ์กฑ๋ก๋ด locomotion ๊ฐ์ ๋ ๋ณต์กํ ์์คํ ์ ์ ์ฉํด ์ ํต MPC๋ฅผ ๋ฒ ์ด์ค๋ผ์ธ์ผ๋ก ๋น๊ตํฉ๋๋ค. ํต์ฌ ๊ด์ฐฐ: ์งง์ ์์ธก ์งํ์ ์์ RQL์ด ๋์ running cost ์ธก๋ฉด์์ MPC๋ฅผ ๋ฅ๊ฐํ์ผ๋ฉฐ, ์ด๋ stacked ์ ๊ทผ(MPC+ํ์ต๋ tail cost) ์ด ์ฌ์กฑ๋ก๋ด์์ ์์ RL์ ์ ๋ ฅํ ๋์์ผ ์ ์์์ ์์ฌํฉ๋๋ค.
๋ฐฉ๋ฒ
์์คํ ๋์ญํ
Unitree A1์ ํ๊ฒฝ ๋ฒ ์ด์ค๋ผ์ธ์ผ๋ก ์ผ๊ณ , ๋ก๋ด์ ์ ์ด์ ์์ ์์ฉํ๋ ํ์ ๋ฐ๋ ๋จ์ผ ๊ฐ์ฒด(single rigid body) ๋ก ๋ชจ๋ธ๋งํฉ๋๋ค(๋ค๋ฆฌ ์ง๋์ด ์ ์ฒด์ ~10%๋ผ ๋ฌด์). ์๋ ์ขํ ๊ฐ์ฒด ๋์ญํ์
\ddot p = \sum_{i=1}^{4}\frac{f_i}{m} - g, \qquad \frac{d}{dt}(\mathcal I\omega) = \sum_{i=1}^{4} r_i \times f_i, \qquad \dot R = \omega \times R
๋ฐฉํฅ์ Euler ๊ฐ \Theta=[\phi,\theta,\psi] (roll/pitch/yaw)๋ก ๋ํ๋ด๋ฉฐ, ์ ํ ์ฐ๊ตฌ๊ฐ ๋ฌด์ํ R_y, R_x ํ์ ๊ณผ full ๊ฐ์๋ ํญ๊น์ง ํฌํจํด ๋ ์ ๋ฐํ๊ฒ ๋ค๋ฃน๋๋ค. ์ํยทํ๋ยทlever๋ฅผ
x := [p\ \ \theta\ \ v\ \ \omega_B]^T, \quad u := [f_1\ f_2\ f_3\ f_4]^T, \quad \vartheta := [r_1\ r_2\ r_3\ r_4]^T
๋ก ๋๋ฉด ๋์ญํ์ \dot x = f(x, \vartheta, u) ๋ก ์์ถ๋ฉ๋๋ค. ์ฆ ์ง๋ฉด ๋ฐ๋ ฅ(ground reaction force)์ด ํ๋ ์ ๋๋ค.
Model Predictive Control
์์ธก ์ปจํธ๋กค๋ฌ๋ก ๋น์ฉ J_{MPC} ๋ฅผ ์ต์ํํฉ๋๋ค.
\min_{\{u_{i|k}\}} J_{MPC} = \min \sum_{i=1}^{N} \gamma^{i-1} r(\hat x_{i|k}, x_{\text{des},i|k}, u_{i|k})
\text{s.t.}\quad \hat x_{0,k}=x_0,\quad \hat x_{i+1|k}=\Phi(\delta,\hat x_{i|k},\vartheta_{i|k},u_{i|k}),\quad C_{i|k}u_{i|k}=0,\quad Du_{i|k}\le 0
๋ ์ ์ฝ์ด ํต์ฌ์ ๋๋ค.
- Contact schedule ์ ์ฝ: swing ๋จ๊ณ์ ๋ค๋ฆฌ๋ ํ์ด 0, ์ ์ด ์ค์ธ ๋ค๋ฆฌ๋ง ํ์ ๋ผ ์ ์์.
- Friction cone ์ ์ฝ: ๋ฏธ๋๋ผ ๋ฐฉ์ง. ๋ง์ฐฐ๊ณ์ \mu=0.3 ์ ๋ํด -\mu f_z \le f_x \le \mu f_z, -\mu f_z \le f_y \le \mu f_z.
์ํ ์ ์ด๋ ์๋ ค์ง ๋์ญํ์ Euler explicit ์ ๋ถ: \Phi = \hat x_{i|k} + \delta f(\hat x_{i|k}, \vartheta_{i|k}, u_{i|k}). ๋งค ์คํ ๋น์ฉ์ ํ์ด ์ฒซ ํ๋ u^*_{1|k} ๋ง ์ ์ฉ(Algorithm 1).
Roll-Out Q-Learning (ํต์ฌ)
RQL์ value iteration Q-learning์ ์๋๋ค. ํ๋์ u_k \leftarrow \min_u \hat Q(x_k, x_{\text{des},k}, u; w_k) ๋ก ๊ณ ๋ฅด๊ณ , Q-function ๊ฐ์ค์น w ๋ ๋ฒํผ(ํฌ๊ธฐ M=500) ์์์ TD๋ฅ ์ค์ฐจ์ ์ต์์ ๊ณฑ ์ผ๋ก ๊ฐฑ์ ํฉ๋๋ค.
w_k \leftarrow \min_w J_k^c, \qquad J_k^c := \frac{1}{2}\sum_{i=k}^{k+M-1} e_i^2(w)
e_k(w) := \hat Q(x_k, x_{\text{des},k}, u_k; w) - r(x_k, x_{\text{des},k}, u_k) - \hat Q(x_{k+1}, x_{\text{des},k+1}, u_{k+1}; w_{\text{prev}})
RQL์ actor ์ ๋ฐ์ดํธ๊ฐ MPC์ ๋ค๋ฅธ ๊ฒฐ์ ์ ์ง์ ์ ๋๋ค.
\min_{\{u_{i|k}\}} J_{RQL}^a = \min \underbrace{\sum_{i=1}^{N-1} \gamma^{i-1} r(\hat x_{i|k}, x_{\text{des},i|k}, u_{i|k})}_{\text{์งง์ ์งํ์ } N-1 \text{ running cost}} + \underbrace{\hat Q(\hat x_{N|k}, x_{\text{des},N|k}, u_{N|k}; w_k)}_{\text{ํ์ต๋ tail/terminal cost}}
์ฆ RQL = โ์งง์ MPC ๋น์ฉ + ํ์ต๋ Q-function์ ๋ง๋จ ๋น์ฉ์ผ๋กโ. ๋๋จธ์ง ์ ์ฝยท๊ตฌ์กฐ๋ MPC์ ๋์ผํฉ๋๋ค. ์งํ์ ๋์ Q-function์ด ๊ทผ์ฌํ๋ฏ๋ก, ์งง์ N ์ผ๋ก๋ ๊ธด ์งํ์ ํจ๊ณผ๋ฅผ ๋๋ฆฝ๋๋ค(Algorithm 2).
Q-functionยทrunning cost ์ค๊ณ
running cost๋ ์ด์ฐจ ํ์์ ๋๋ค.
r(x, x_{\text{des}}, u) := e_x^T P_x e_x + e_u^T P_u e_u
e_x = x - x_{\text{des}}, e_u = u - u_{\text{des}} ์ด๊ณ u_{\text{des}} = [\tfrac{mg}{4}\ \tfrac{mg}{4}\ \tfrac{mg}{4}\ \tfrac{mg}{4}]^T (์ ์๋ ์์ธ ์ ์ง์ ์ถฉ๋ถํ ๊ธฐ์ค ๋ฐ๋ ฅ). ๋ฐ๋ผ์ ์ ํํ ์ ์์ผ๋ฉด r=0. Q-function์ ๊ณ์ฐ ํจ์จ์ ์ํด ๋จ์ํ ์ ํ(์ด์ฐจ) ๋ชจ๋ธ ๋ก ๋ก๋๋ค.
\hat Q(x_k, x_{\text{des},k}, u_k; w) := z_k^T A z_k, \qquad z_k := \begin{bmatrix} x_k - x_{k,\text{des}} \\ \sum_{i=1}^{4} f_{i,k} - mg \end{bmatrix}
A ๋ ๋๊ฐ ๊ฐ์ค ํ๋ ฌ. ๋ก๋ด์ด ๋ชฉํ ์์น์ โ์ด์์ ํ(\sum f = mg)โ์ผ๋ก ์ ์์ ๋ Q๊ฐ 0์ด ๋๋๋ก ์ค๊ณํด, ๋จ์ ๋ชจ๋ธ์ด์ด๋ terminal cost๋ก์ ์ด๋์ ์ฃผ๋ฆฌ๋ผ ๊ธฐ๋ํฉ๋๋ค.
์คํ ์ ์
์ธ ํ๋ ์์ํฌ ์์ ๊ตฌ์ถ: rcognita(RL ์์ด์ ํธ ํ์ด๋ธ๋ฆฌ๋ ์๋ฎฌ๋ ์ด์ Python ํจํค์ง), ROS, Quad-SDK(A1์ฉ planner+simulator). ROS๊ฐ ์ปจํธ๋กค๋ฌ(rcognita)์ Quad-SDK๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค.
์คํ
MPC์ RQL์ ์งง์/๊ธด ์์ธก ์งํ์ ์์ ๋น๊ตํฉ๋๋ค(Fig. 3).
์งง์ ์งํ์ (N=2)
- x์ถ ์์น ์ค์ฐจ: ๋ ๋ฐฉ๋ฒ ๋ชจ๋ ์ต์ โ P_x ํ๋ ฌ์์ x์ถ ์ค์ฐจ์ ๋์ ๊ฐ์ค์น๋ฅผ ์ค ์ต์ฐ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ.
- ๋ฐฉํฅ(orientation) ์ค์ฐจ: MPC๋ ์งง์ ์งํ์ ์์ ํฐ ๋ฐฉํฅ ์ค์ฐจ๋ฅผ ๋ณด์ด๋ ๋ฐ๋ฉด, RQL์ roll ์ค์ฐจ๋ฅผ ์ฝ 10๋ฐฐ ์ค์. Q-function์ด ๋น์ฉ ํจ์์์ ์ง๋ฐฐ์ ์ญํ ์ ํด RQL์ด MPC๋ฅผ ๋ฅ๊ฐ.
- running cost: RQL์ ํ๊ท running cost๊ฐ MPC๋ณด๋ค ์ฝ 3๋ฐฐ ๋ฎ์.
๊ธด ์งํ์ (N=5)
์งํ์ ์ด ๊ธธ์ด์ง๋ฉด ๋ ์ปจํธ๋กค๋ฌ์ ์ฑ๋ฅ์ด ๊ฑฐ์ ๋์ผ ํด์ง๋๋ค. ๊ธด ์งํ์ ์์๋ Q-function์ ๋น์ค์ด ๋น์ฉ ํจ์์ ์์ชฝ running cost ํญ๋ค์ ๋นํด ์ค์ด๋ค๊ธฐ ๋๋ฌธ์ ๋๋ค.
์งํ์ ๊ธธ์ด vs ๋์ ๋น์ฉ (Fig. 4)
- MPC๋ ์งํ์ ์ด ์งง์์๋ก ๋์ running cost๊ฐ ๊ธ์ฆ(N=2 ์์ ์ฝ 5\times10^6).
- RQL์ ์งํ์ ๊ณผ ๋ฌด๊ดํ๊ฒ ๋น๊ต์ ๋ฎ๊ณ ํํ.
- ์ฃผ๋ชฉ: ์งง์ ์งํ์ RQL(N=2)์ด ๊ธด ์งํ์ MPC(N=5)๋ณด๋ค๋ ๋์ ๋น์ฉ์ด ๋ฎ์. ์งํ์ ์ด ๊ธธ์ด์ง์๋ก Q-function์ ์ค์๋๊ฐ ๋จ์ด์ ธ ๋ ๋ฐฉ๋ฒ์ด ์๋ ด.
๋นํ์ ๊ณ ์ฐฐ
๊ฐ์
- ๋ช ํํ ๋ฌธ์ ์ ์์ ํด๋ฒ. โMPC์ ์งง์ ์งํ์ ํ๊ณ โ ํ์ต๋ Q-function์ terminal cost๋กโ๋ผ๋ ๊ตฌ์ฑ์ด ๊น๋ํฉ๋๋ค. ์ง์์ ์ผ๋ก ์ฆ๊ฐํ๋ ๊ณ์ฐ ๋ถ๋ด์ ์งง์ ์งํ์ + ํ์ต ๋ง๋จ ๋น์ฉ์ผ๋ก ์ฐํํ๋ค๋ ๋ฐ์์ด ์ค์ฉ์ ์ ๋๋ค.
- ์ฌ์ ํ์ต ๋ถํ์ยทlive ์ด์ฉ. ์์ RL์ ๋น์ผ ์ฌ์ ํ์ต ์์ด ์จ๋ผ์ธ์ผ๋ก critic์ ๊ฐฑ์ ํ๋ฉฐ ๋์ํด, ๋ก๋ด ๋ฐฐํฌ์ ์ ๋ฆฌํฉ๋๋ค.
- ์ ๋์ ์ฐ์. ์งง์ ์งํ์ ์์ roll ์ค์ฐจ ~10๋ฐฐยทrunning cost ~3๋ฐฐ ๊ฐ์ , ๊ทธ๋ฆฌ๊ณ โ์งง์ RQL > ๊ธด MPCโ๋ผ๋ ๊ฒฐ๊ณผ๋ stacked ์ ๊ทผ์ ๊ฐ์น๋ฅผ ๋ถ๋ช ํ ๋ณด์ฌ์ค๋๋ค.
- ์ฌํ ๊ฐ๋ฅํ ์ ์ . rcognitaยทROSยทQuad-SDK ์กฐํฉ์ผ๋ก A1 ์๋ฎฌ๋ ์ด์ ์ ๊ตฌ์ฑํด ๋น๊ต๋ฅผ ๋ช ๋ฃํ ํ์ต๋๋ค.
์ฝ์ ๊ณผ ํ๊ณ
- ์ ํ Q-function์ ๋ณธ์ง์ ์ ์ฝ(์ ์ ์ธ์ ). ์คํ์ ๋จ์ ์ ํ(์ด์ฐจ) Q-function ์ ๊ธฐ๋ฐํฉ๋๋ค. ์์คํ ์ ๋์ ๋น์ ํ์ฑ์ ์ ๋๋ก ๋ฐ์ํ๋ ค๋ฉด ๋น์ ํ Q-function ์ด ํ์ํ๋ฉฐ, ๊ทธ๋์ผ ๊ธด ์งํ์ ์์๋ ์ถ๊ฐ ์ด๋์ด ๊ธฐ๋๋ฉ๋๋ค. ํ์ฌ ์ด๋์ด ์ ์งํ์ ์ ๊ตญํ๋ ์ด์ ์ด๊ธฐ๋ ํฉ๋๋ค.
- ์๋ฎฌ๋ ์ด์ ํ์ . ํ๊ฐ๊ฐ Quad-SDK ์๋ฎฌ๋ ์ด์ ์ ๋จธ๋ฌผ๋ฌ, ์ค์ A1 ํ๋์จ์ด ๊ฒ์ฆ๊ณผ sim-to-real ๊ฐญ ๋ถ์์ด ์์ต๋๋ค(๋ ผ๋ฌธ ๋ฒ์ ๋ฐ).
- ๋จ์ผ ๋ก๋ดยท์ ํ๋ ์๋๋ฆฌ์ค. A1 ํ ์ข ๋ฅ, ๋น๊ต์ ์ ํํ๋ ๋ณดํ ์๋๋ฆฌ์ค ์ค์ฌ์ด๋ผ, ํ์งยท์ธ๋ยท๋ค์ํ gait๋ก์ ์ผ๋ฐํ๋ ์ถ๊ฐ ๊ฒ์ฆ์ด ํ์ํฉ๋๋ค(์ถ์ธก).
- MPC ๋ฒ ์ด์ค๋ผ์ธ ํ ๊ฐ์ง. ํ์ต๋ ์งํ์ ๊ธธ์ด ๋ฐฉ์ ๋ฑ ๋ค๋ฅธ MPC+RL ๋ณํ๊ณผ์ ๋น๊ต๊ฐ ์์๋ค๋ฉด ์ฐ์๊ฐ ๋ ๋ถ๋ช ํด์ก์ ๊ฒ์ ๋๋ค.
์์ฝ ๋ฐ ๊ฒฐ๋ก
์ด ๋ ผ๋ฌธ์ ์ฌ์กฑ๋ก๋ด์ ์์ ๋ณดํ์ ์ํด MPC์ ์์ธกํ RL(Roll-Out Q-Learning)์ ๊ฒฐํฉ ํฉ๋๋ค. ํต์ฌ์ ์งง์ ์์ธก ์งํ์ ์ MPC ๋น์ฉ ๋์ ์ ๊ฒฝ๋ง Q-function์ โ๊ผฌ๋ฆฌ ๋น์ฉ(tail/terminal cost)โ์ผ๋ก ๋ถ์ฌ, ์งํ์ ์ด ๊ธธ์ด์ง์๋ก ์ง์์ ์ผ๋ก ์ปค์ง๋ ๊ณ์ฐ ๋ถ๋ด์ ์ฐํํ๊ณ , ๋ช ๋ชฉ MPC๊ฐ ์คํจํ๋ ์งง์ ์งํ์ ์์๋ ์์ ์ ๋ณดํ ์ ๋ฌ์ฑํ๋ ๊ฒ์ ๋๋ค.
์์น๋ก ์ ๋ฆฌํ๋ฉด, ์งง์ ์งํ์ (N=2)์์ RQL์ roll ์ค์ฐจ๋ฅผ ์ฝ 10๋ฐฐ, ํ๊ท running cost๋ฅผ ์ฝ 3๋ฐฐ ์ค์๊ณ , ์งง์ ์งํ์ RQL์ด ๊ธด ์งํ์ MPC๋ณด๋ค๋ ๋์ ๋น์ฉ์ด ๋ฎ์์ต๋๋ค. ์งํ์ ์ด ๊ธธ์ด์ง๋ฉด Q-function์ ๋น์ค์ด ์ค์ด ๋ ๋ฐฉ๋ฒ์ด ์๋ ดํฉ๋๋ค.
์ค๋ฌด ๊ด์ ์์ ์ด ์ฐ๊ตฌ์ ๊ฐ์น๋ โํ์ต๋ terminal cost๋ก MPC์ ์งง์ ์งํ์ ํ๊ณ๋ฅผ ๋ฉ์, ์ฌ์ ํ์ต ์์ด live๋ก ์์ ๋ณดํ์ ์ป์ ์ ์์์ ๋ณด์ธ ๊ฒโ ์ ์์ต๋๋ค. ์ ํ Q-functionยท์๋ฎฌ๋ ์ด์ ํ์ ์ด๋ผ๋ ํ๊ณ๋ ๋ถ๋ช ํ์ง๋ง, MPC + ํ์ต๋ tail cost(RQL) ๋ผ๋ ํ์ด๋ธ๋ฆฌ๋๋ ์จ๋ผ์ธ ์ ์ด ๋ฅ๋ ฅ๊ณผ ๊ณ์ฐ ๋ณต์ก๋์ ๊ท ํ์ ์ก๋ ์ ๋งํ ๋ฐฉํฅ์ ์ ์ํฉ๋๋ค.