1.1 Physical AI의 문제 정의

1.1.1 정보 처리에서 물리적 상호작용으로

일반적인 소프트웨어 함수는 같은 입력에 같은 출력을 내도록 설계할 수 있다. 로봇의 입력은 그렇지 않다. 카메라 노출, 조명, 마찰, 기어 백래시(backlash), 통신 지연, 물체의 미세한 위치가 매 주기 달라진다. 로봇은 부분 관측(partial observation) 아래에서 행동하고, 그 행동이 다음 관측 자체를 바꾼다.

이를 부분 관측 마르코프 의사결정 과정(Partially Observable Markov Decision Process, POMDP)으로 쓰면 다음과 같다.

M=⟨S,A,T,R,O,O,γ⟩ \mathcal{M}=\langle \mathcal{S},\mathcal{A},T,R,\mathcal{O},O,\gamma\rangle
  • st∈Ss_t\in\mathcal{S}: 물체 자세, 관절 상태, 마찰처럼 실제 세계의 상태
  • ot∈Oo_t\in\mathcal{O}: 카메라 이미지, 엔코더, 언어 명령 등 관측
  • at∈Aa_t\in\mathcal{A}: 관절 위치·속도·토크 명령
  • T(st+1∣st,at)T(s_{t+1}|s_t,a_t): 행동 뒤 상태가 변하는 동역학
  • R(st,at)R(s_t,a_t): 성공, 시간, 에너지, 충돌을 반영하는 보상
  • O(ot∣st)O(o_t|s_t): 상태가 센서 관측으로 나타나는 과정

정책(policy) π(at∣ht)\pi(a_t|h_t)는 현재 관측 하나만이 아니라 관측과 행동의 이력 hth_t를 사용할 수 있다. Vision-Language-Action(VLA) 모델은 영상과 언어를 조건으로 연속 또는 이산화된 행동을 출력하는 학습 정책의 한 종류다. 그러나 VLA도 센서 드라이버, 좌표 변환, 제어 주기, 안전 제한을 대신하지 않는다.

이해 도움말 — 상태(state)와 관측(observation)을 분리해서 생각하기

서랍 속 물체의 정확한 자세는 상태지만, 로봇이 실제로 받는 것은 카메라 영상과 엔코더 값이라는 관측이다. 한 장의 영상에서 가려진 면은 보이지 않으므로 관측만으로 상태를 완전히 알 수 없다. 이때 이전 관측과 행동의 이력 hth_t는 “방금 어느 방향으로 밀었는가” 같은 단서를 보충한다. POMDP는 수식을 암기하기보다 세계에는 실제 상태가 있고, 정책에는 제한된 관측만 들어온다는 구분부터 잡으면 이해하기 쉽다.

1.1.2 규칙 기반 제어와 학습 기반 정책

관점규칙·모델 기반학습 기반 정책
지식 표현상태기계, 기구학, 경로계획, 제어법칙데이터로 학습한 파라미터
강점해석 가능, 경계조건 명시, 검증 용이복잡한 시각 특징과 다양한 작업 분포 처리
약점예외 규칙 증가, 비정형 인식에 취약분포 밖 입력, 설명 곤란, 데이터 편향
적합 영역안전 제한, 충돌 회피, 정밀 제어인식, 파지 후보, 행동 시퀀스 제안
실패 대응조건 위반과 상태 전이 추적신뢰도·데이터·관측 분포 분석 필요

현업 시스템은 둘 중 하나를 고르는 대신 계층화한다. 학습 정책이 목표 자세나 짧은 행동 청크를 제안하고, 모델 기반 제어기가 추종하며, 독립 안전 계층이 속도·작업공간·충돌 제한을 강제한다. 학습 정책이 실패해도 안전 제한은 유지되어야 한다.

1.1.3 인지-정책-행동 루프

한 주기의 이상적인 데이터 흐름은 다음과 같다.

  1. 감지(Sensing): 카메라, 엔코더, 힘 센서가 타임스탬프가 있는 원시 데이터를 생성한다.
  2. 인지(Perception): 보정·필터링·특징 추출로 정책 입력을 만든다.
  3. 정책(Policy): 목표 또는 행동 청크를 추론한다.
  4. 안전 필터(Safety filter): 관절 한계, 속도, 작업공간, 오래된 명령을 검사한다.
  5. 저수준 제어(Control): 보간, PID/임피던스 제어, 모터 프로토콜 변환을 수행한다.
  6. 행동과 피드백(Action & feedback): 물리 상태가 바뀌고 다음 관측이 들어온다.

주기 TT는 구성 요소 시간의 합과 대기 시간으로 결정된다.

Tloop=Tsensor+Ttransport+Tpre+Tinfer+Tsafety+Tactuator+Twait T_{loop}=T_{sensor}+T_{transport}+T_{pre}+T_{infer}+T_{safety}+T_{actuator}+T_{wait}

20 Hz 정책 루프의 주기 예산은 50 ms다. 추론이 평균 35 ms여도 최악 지연이 80 ms이면 주기를 놓친다. 따라서 평균뿐 아니라 p95/p99 지연, 센서 데이터의 나이(age), 명령 만료 시간(time-to-live)을 기록해야 한다.

1.1.4 책임의 분리

좋은 로봇 소프트웨어는 다음 네 가지 책임을 섞지 않는다.

  • 세계 모델: 좌표 프레임, 장면, 로봇 상태
  • 의사결정: 무엇을 할 것인가
  • 제어: 목표를 어떤 주기로 추종할 것인가
  • 안전: 어떤 행동을 절대 허용하지 않을 것인가

예제 code/physical_ai_loop.py는 이 분리를 최소한의 코드로 보여 준다. 정책은 목표를 제안하고 SafetyGate가 범위와 명령 나이를 검사한다. 실제 로봇에서는 소프트웨어 제한과 별도로 하드웨어 비상 정지와 전류 제한이 필요하다.

이 장의 예제 코드·설정 파일 (12)

이 장의 자가 점검·가상실습