MATLAB로 구현한 3링크 아크로봇 스윙업 최적화

** 본 논문은 2‑링크와 3‑링크 아크로봇의 동역학을 라그랑주 방식으로 직접 유도하고, MATLAB OptimTraj 라이브러리를 이용한 직접 콜로케이션 기반 궤적 최적화를 통해 하향 상태에서 수직 위쪽 자세로 스윙업하는 제어 입력을 설계한다. 수동 시뮬레이션으로 모델 검증 후, 제어 비용을 최소화하는 최적 궤적을 얻어 애니메이션으로 시각화한다. **

저자: Yu Xiao

MATLAB로 구현한 3링크 아크로봇 스윙업 최적화
** 본 논문은 2‑링크와 3‑링크 아크로봇의 스윙업 문제를 MATLAB 기반으로 해결하는 과정을 상세히 기술한다. 먼저, 아크로봇은 한쪽 관절에만 구동기가 부착된 2‑링크 언더액추에이티드 로봇으로 정의된다. 저자는 라그랑주 방정식 \( \frac{d}{dt}\frac{\partial L}{\partial \dot q_i} - \frac{\partial L}{\partial q_i}=Q_i \) 를 이용해 2‑링크 시스템의 운동에너지를 \(T\)와 위치에너지 \(U\) 로 표현하고, 이를 통해 질량 행렬 \(M(q)\), 코리올리·원심 행렬 \(C(q,\dot q)\), 중력 벡터 \(\tau_g(q)\) 를 명시적으로 도출한다. 도출된 식은 전통적인 Manipulator 형태 \(M(q)\ddot q + C(q,\dot q)\dot q = \tau_g(q) + B u\) 로 정리되며, 여기서 제어 입력 매트릭스 \(B\)는 두 번째 관절에만 비제로 값을 갖는다. 이를 4차 상태공간 \(\dot x = f(x,u)\) 로 변환하기 위해 질량 행렬을 확대한 4×4 형태의 \(M_{\text{ass}}(q)\) 를 구성한다. MATLAB의 ODE45와 `odeset('Mass',@mass)` 옵션을 사용해 질량 행렬이 포함된 미분 방정식을 직접 통합함으로써, 수동 시스템(구동기 없이)의 자연 진동을 시뮬레이션하고 모델의 정확성을 시각적으로 검증한다. 다음으로, 논문은 3‑링크 아크로봇을 확장한다. 각 링크에 질량 \(m_i\)와 길이 \(l_i\)를 부여하고, 라그랑주 방정식을 동일하게 적용한다. 결과적으로 6차 상태공간(각 관절 각도와 각속도)으로 확장되며, 질량 행렬 \(M(q)\)와 코리올리 행렬 \(C(q,\dot q)\)는 6×6 차원으로 복잡하게 구성된다. 저자는 각 행렬 원소를 식별하고, 이를 MATLAB 코드에 직접 구현한다. 3‑링크 시스템은 완전 구동(세 관절 모두에 토크)으로 모델링되지만, 아크로봇 특성에 맞게 첫 번째 구동을 0으로 고정한다. 제어 설계는 직접 콜로케이션(Direct Collocation) 기반 궤적 최적화로 수행된다. 시간 구간을 \(N\)개의 동일한 단계로 나누고, 각 단계에서 상태 \(x_k\)와 제어 \(u_k\)를 결정 변수로 설정한다. 동역학 제약은 결함 변수 \(\zeta_k = x_{k+1} - x_k - h f(x_k,u_k)\) 로 표현되어 NLP(Non‑Linear Programming) 문제에 포함된다. 초기 상태와 목표 상태(각도 \(

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기