⚖️ MuJoCo 카트폴 제어 & 물리 연구소 (Cart-Pole Physics Lab)
수레 위 막대를 세우는 제어의 정점! 사람이 짠 규칙(PD/LQR)부터 스윙업 에너지 펌핑, 외란 극복, 2단 진자까지 3D 시뮬레이션으로 탐구합니다.
🖱️ 브라우저에서 마우스로 막대를 튕겨보고 슬라이더로 게인을 조절해 보세요!
⚙️ 시뮬레이션 실험 파라미터
실험 모드 선택
0 30
1 30
0.1 8
0.1 1.2
버튼을 누르면 시뮬레이션 렌더링이 시작됩니다.
📐 카트폴 역학 및 제어 이론 정리
1. 카트폴 비선형 운동방정식 (Nonlinear Equations of Motion)
- 카트 질량 $M$, 막대 질량 $m$, 막대 길이 $2l$, 관성모멘트 $I = rac{1}{3} m l^2$: $$\ddot{ heta} = rac{g \sin heta + \cos heta \left( rac{-F - m l \dot{ heta}^2 \sin heta}{M + m} ight)}{l \left( rac{4}{3} - rac{m \cos^2 heta}{M + m} ight)}$$ $$\ddot{x} = rac{F + m l (\dot{ heta}^2 \sin heta - \ddot{ heta} \cos heta)}{M + m}$$
2. 선형 근사화 & 상태공간 표현 (Linear State-Space Model)
직립 평형점($ heta pprox 0, \cos heta pprox 1, \sin heta pprox heta$) 근처에서: $$\dot{\mathbf{x}} = A \mathbf{x} + B u, \quad \mathbf{x} = [x, \dot{x}, heta, \dot{ heta}]^T$$
- 이를 통해 LQR (Linear Quadratic Regulator) 최적 게인 $K$를 도출: $$u = -K \mathbf{x} = -(k_x x + k_v \dot{x} + k_ heta heta + k_\omega \dot{ heta})$$
3. 에너지 기반 스윙업 (Lyapunov Energy Shaping)
- 직립 꼭대기 기준 기계적 에너지 $E = rac{1}{2} I \dot{ heta}^2 + m g l (\cos heta - 1)$
- 제어 법칙: $a_{cart} = -k_e E \cdot ext{sign}(\dot{ heta} \cos heta)$
- 에너지가 $0$에 도달하고 막대가 수직 근처($| heta| < 20^\circ$)에 들어오면 즉시 직립 선형 제어로 스위칭!