휴머노이드 로봇이 한 발로 균형을 잡고, 사족 로봇이 거친 산길에서 미끄러지지 않으며, 양팔로 무거운 물체를 들어 옮기는 모습을 보면 한 가지 의문이 떠올라요. 도대체 어떤 알고리즘이 이렇게 수십 개의 관절을 동시에 조율하는 걸까요. 그 핵심에 바로 Whole Body Control(전신 제어, 줄여서 WBC)이 자리하고 있어요. 이 글에서는 WBC가 왜 필요한지, 수학적으로 어떤 구조를 가지는지, 그리고 실제 로봇 시스템에 어떻게 적용되는지 깊이 있게 살펴볼게요.
Whole Body Control이 필요한 이유
전통적인 로봇 매니퓰레이터는 고정된 베이스 위에서 팔 끝(엔드 이펙터)의 위치만 정확히 제어하면 됐어요. 하지만 휴머노이드나 사족 로봇처럼 베이스 자체가 떠 있고 다리로 지면을 짚어야 하는 시스템은 이야기가 완전히 달라져요. 한 다리를 들면 지지면이 바뀌고, 팔을 뻗으면 무게중심이 이동하며, 잘못 움직이면 그대로 넘어져요.
플로팅 베이스 시스템의 도전 과제
이렇게 베이스가 자유롭게 움직이는 시스템을 플로팅 베이스(Floating Base)라고 불러요. 일반적인 6자유도 매니퓰레이터와 달리 휴머노이드는 보통 30개 이상의 관절을 가지고, 베이스의 6자유도까지 더하면 36차원 이상의 일반화 좌표를 다뤄야 해요. 게다가 지면과의 접촉은 단순한 위치 제약이 아니라 마찰 콘(Friction Cone) 안에 들어가야 하는 부등식 제약이라 더욱 까다로워요.
단일 작업 제어로는 부족한 이유
“팔 끝 위치만 정확히 제어하자”는 단순한 접근은 곧바로 한계에 부딪혀요. 팔을 뻗는 동안 몸통이 흔들리거나 발이 미끄러지면 의미가 없으니까요. 그래서 WBC는 여러 작업(Task)을 동시에 만족시키되, 우선순위(Priority)를 두어 더 중요한 작업이 손해 보지 않도록 조율해요. 균형 유지가 1순위, 발 위치 유지가 2순위, 팔 동작이 3순위라는 식이에요.

WBC의 수학적 구조와 핵심 수식
전신 제어를 이해하려면 먼저 로봇의 동역학 방정식을 알아야 해요. 플로팅 베이스 로봇의 운동방정식은 다음과 같이 표현돼요.
M(q)q̈ + h(q,q̇) = STτ + JcTλ
여기서 M은 관성행렬, h는 중력·코리올리 항, S는 액추에이션 선택행렬, τ는 관절 토크, Jc는 접촉 자코비안, λ는 접촉력이에요.
작업 공간 제어(Task Space Control)
WBC는 관절 공간이 아니라 작업 공간(Task Space)에서 제어를 설계해요. 예를 들어 무게중심(CoM) 위치, 골반 자세, 발 위치, 손 위치 같은 의미 있는 변수들이 작업 변수가 돼요. 각 작업의 자코비안 Ji를 통해 관절 가속도 q̈가 작업 가속도 ẍi로 변환되고, 원하는 작업 가속도를 추종하기 위한 가속도를 계산하는 거예요.
널 스페이스 프로젝션
여러 작업을 우선순위대로 처리하는 고전적인 방법이 널 스페이스 프로젝션(Null Space Projection)이에요. 1순위 작업을 만족시키는 해의 자유도 안에서 2순위 작업을 풀고, 또 그 자유도 안에서 3순위를 푸는 방식이에요. 직관적으로는 “더 중요한 일을 망치지 않는 범위에서 덜 중요한 일을 한다”는 의미인데, 수학적으로는 자코비안의 의사역행렬과 널 스페이스 사영자를 재귀적으로 곱해서 구현해요.
QP 기반 전신 제어: 현대 WBC의 표준
최근 휴머노이드와 사족 로봇 연구에서는 거의 모든 WBC가 이차계획법(Quadratic Programming, QP) 기반으로 구현돼요. 그 이유는 분명해요. 접촉력의 마찰 콘 제약, 토크 한계, 관절 한계 같은 부등식 제약을 자연스럽게 포함할 수 있기 때문이에요.
QP 정식화의 결정 변수
QP의 결정 변수는 보통 일반화 가속도 q̈, 접촉력 λ, 관절 토크 τ를 모두 포함해요. 비용 함수는 각 작업의 가속도 오차에 가중치를 곱해 합산한 형태로 구성하고, 제약 조건에는 동역학 방정식, 접촉 제약, 마찰 콘, 토크 한계가 포함돼요.
- 동역학 제약: 운동방정식이 등식 제약으로 들어가요
- 접촉 제약: 지지하는 발의 가속도는 0 (No-slip)
- 마찰 콘: 접촉력이 미끄러지지 않을 조건
- 토크 한계: 액추에이터 물리적 한계
- CoP/ZMP 제약: 발 안쪽에 압력 중심이 머물도록
계층적 QP(Hierarchical QP, HQP)
여러 작업의 우선순위를 엄격하게 지키려면 계층적 QP를 사용해요. 가장 높은 우선순위의 QP를 먼저 풀어 최적값을 얻고, 그 최적값을 새로운 등식 제약으로 추가한 뒤 다음 우선순위 QP를 푸는 방식이에요. 이렇게 하면 균형 유지 같은 핵심 작업이 절대 희생되지 않아요. 다만 계산량이 많아져서 실시간성(보통 1kHz)을 확보하려면 효율적인 QP 솔버가 필수예요.
가중치 기반 QP(Weighted QP)
모든 작업을 하나의 QP에 가중치로 표현하는 방법도 있어요. 구현이 단순하고 계산이 빠르지만, 가중치 튜닝이 어렵고 우선순위가 엄격히 지켜지지 않는다는 단점이 있어요. 실제로는 두 방식의 절충형이 많이 쓰여요.
실제 로봇 시스템에서의 WBC 구현
이론은 멋지지만 실제 구현에는 디테일이 많아요. 보스턴 다이나믹스의 Atlas, IHMC의 Valkyrie, ANYmal 사족 로봇, MIT의 Cheetah 등 대부분의 최신 휴머노이드와 사족 로봇이 QP-WBC를 채택하고 있어요.
실시간성 확보 전략
WBC는 보통 500~1000Hz로 동작해야 해서 한 사이클당 1~2밀리초 안에 QP를 풀어야 해요. 이를 위해 qpOASES, OSQP, ProxQP 같은 임베디드 친화적인 QP 솔버가 널리 쓰여요. 또한 이전 사이클의 해를 초기값으로 사용하는 웜 스타트(Warm Start)와 활성 집합 변화가 작다는 특성을 활용한 점진적 업데이트가 핵심 트릭이에요.
플래너와의 계층 구조
WBC만으로는 부족해요. 보통은 다음과 같은 3계층 구조를 가져요. 가장 위층은 발자국 플래너(Footstep Planner)가 1~2초 단위로 어디에 발을 디딜지 결정하고, 중간층은 MPC(Model Predictive Control)가 수십 ms 단위로 무게중심 궤적과 접촉력 분배를 계산해요. 마지막으로 WBC가 매 ms마다 관절 토크를 산출해 실제 로봇을 움직여요. 이렇게 각 계층이 다른 시간 척도에서 동작하면서 안정성과 반응성을 모두 잡아요.
오픈소스 도구 생태계
WBC를 직접 구현하기 부담스럽다면 오픈소스를 활용할 수 있어요. Pinocchio는 동역학 계산을 빠르게 해주는 C++ 라이브러리이고, TSID(Task Space Inverse Dynamics)는 LAAS-CNRS에서 만든 WBC 프레임워크예요. Crocoddyl은 최적 제어와 결합한 진보된 도구를 제공하며, 최근에는 MuJoCo MJX와 결합해 GPU 가속 학습 환경에서도 WBC가 활용되고 있어요.
WBC와 강화학습의 만남
최근 흐름 중 가장 흥미로운 것은 WBC와 강화학습(RL)의 융합이에요. 두 접근은 오랫동안 대척점에 있는 듯 보였어요. WBC는 모델 기반이고 해석 가능하지만 모델 오차에 취약하고, RL은 모델 없이도 학습할 수 있지만 시뮬레이션 의존성과 안전성 문제가 있었거든요.
RL 정책의 출력을 WBC가 추종
한 가지 유망한 패러다임은 RL 정책이 작업 명령(예: 원하는 CoM 궤적, 발 위치)을 생성하고, 그 명령을 WBC가 정확하게 실행하는 것이에요. 이렇게 하면 RL의 유연함과 WBC의 안정성·안전 제약 만족을 동시에 누릴 수 있어요. NVIDIA의 GR00T 관련 연구나 ETH의 ANYmal RL 연구가 이런 방향성을 보여줘요.
학습 기반 동역학 보정
반대로 WBC를 베이스라인으로 두고 학습으로 잔차(Residual)를 보정하는 접근도 있어요. 모델링하기 어려운 마찰, 백래시, 변형 같은 요소를 신경망이 학습해 토크 명령에 더해주면, WBC가 실제 하드웨어에서도 정확하게 동작해요. Sim-to-Real 갭을 줄이는 효과적인 방법이에요.
WBC를 학습하기 위한 로드맵
Physical AI 시대에 휴머노이드와 사족 로봇이 폭발적으로 늘어나면서 WBC 엔지니어 수요도 빠르게 증가하고 있어요. 처음 입문하는 분들을 위한 학습 순서를 정리해 볼게요.
선행 지식: 동역학과 최적화
먼저 강체 동역학(Rigid Body Dynamics)을 탄탄히 다져야 해요. 특히 스파셜 벡터(Spatial Vector) 표기법과 RNEA(Recursive Newton-Euler Algorithm), CRBA(Composite Rigid Body Algorithm) 같은 핵심 알고리즘은 필수예요. 그다음 볼록 최적화와 QP의 기본을 익혀야 해요. Stephen Boyd의 Convex Optimization 교재가 표준이에요.
실습: Pinocchio와 TSID
이론을 익혔다면 Pinocchio로 자코비안과 동역학을 계산해 보고, TSID로 간단한 휴머노이드 균형 제어 예제를 돌려보는 게 좋아요. GitHub에 공개된 예제와 튜토리얼이 많아 시작하기 좋은 환경이에요.
발전: MPC와 통합
WBC만으로는 미래를 예측하는 행동이 어려워요. OCP(Optimal Control Problem) 기반 MPC를 결합해 발자국 위치와 접촉 시점까지 최적화하는 단계로 나아가야 진짜 휴머노이드 보행을 다룰 수 있어요. 더 깊이 들어가려면 Inverse Dynamics 관련 자료와 IHMC, ETH RSL의 공개 논문을 살펴보길 추천해요.
마무리: WBC가 여는 휴머노이드의 미래
Whole Body Control은 단순한 알고리즘이 아니라, 휴머노이드와 사족 로봇이 현실 세계에서 안정적으로 작동하기 위한 근간이에요. 우선순위 기반 작업 공간 제어와 QP 최적화라는 두 축이 만나 수십 개의 자유도를 가진 복잡한 로봇을 매끄럽게 움직이게 해요. 앞으로 WBC는 강화학습, 비전-언어-행동 모델, 그리고 대규모 시뮬레이션과 결합하며 더욱 진화할 거예요. Physical AI 시대를 주도하고 싶다면 WBC라는 단단한 기반을 꼭 챙겨두세요. 이론은 어렵지만 한 번 익히면 휴머노이드의 모든 움직임이 다르게 보이기 시작할 거예요.