Claude Code의 이중성과 A+B 하이브리드


원래의 딜레마

이 전략 논의의 출발점은 “Claude Code가 너무 강력해서 우리의 존재 이유가 위협받는다”였다. 그런데 논의가 진행되면서 “Claude Code를 활용해서 이기자”는 방향이 나왔다.

같은 도구를 위협으로도, 기회로도 쓰고 있다. 이 모순을 정면으로 다뤄야 한다.

Claude Code가 할 수 있는 것 vs 없는 것

할 수 있는 것 (= 이걸 팔면 진다):

  • ROS2 노드 작성, launch 파일 구성
  • URDF 파싱, 기구학 계산 코드
  • 통신 프로토콜 연동 (EtherCAT, CAN)
  • 기존 알고리즘(PID, 궤적 생성) 구현
  • 시스템 아키텍처 설계
  • 학습 파이프라인 코드 작성

할 수 없는 것 (= 이걸 팔면 이긴다):

  • 실제 로봇에서 12kHz 데이터를 수집하는 것 (물리적 행위)
  • 수집된 데이터로 학습된 모델의 가중치 (물리 세계에서만 나옴)
  • 83μs 안에 inference가 되는지 실제 RT 환경에서 검증하는 것
  • 특정 로봇의 진동 문제 디버깅 (물리 현장)
  • 감속기 마찰 특성 파악 (측정 필요)
  • RT jitter 문제 해결 (하드웨어 의존)

A+B 하이브리드 모델

이 분류에서 WIM의 전략이 나온다:

  • A (핵심 엔진): WIM의 학습된 제어 neural net — Claude Code가 만들 수 없는 것
  • B (적응 레이어): Claude Code가 고객의 하드웨어에 맞게 주변 코드를 채워주는 것
[WIM의 제어 Neural Net]         ← 핵심 moat (물리 데이터 + 학습 + RT 검증)

  ├─ 학습된 동역학 모델           ← Claude Code가 만들 수 없음
  ├─ 센서리스 외력 추정           ← Claude Code가 만들 수 없음
  ├─ RT inference 엔진           ← Claude Code가 만들 수 없음
  ├─ 자동 ID/튜닝 프레임워크      ← Claude Code가 만들 수 없음

  └─ [Claude Code 적응 레이어]    ← 여기서 Claude Code가 일함
       ├─ 고객 로봇의 URDF 파싱 → 기구학 코드 생성
       ├─ 특정 액추에이터 드라이버 생성
       ├─ ROS2 노드 구성/연결
       ├─ 안전 파라미터 설정
       └─ 시뮬레이션 환경 구성

핵심 엔진은 WIM만 가진 것(물리 세계에서만 나오는 것)이고, 주변 적응 코드는 Claude Code가 로봇별로 생성한다. 이렇게 하면 다양한 로봇 폼팩터 지원을 소규모 팀으로 달성할 수 있다.

오픈소스 대신 ROS2

Pixhawk은 자체 오픈소스 생태계(PX4, MAVLink, QGC)를 만들어야 했다. WIM은 그럴 필요가 없다.

로봇계의 표준은 이미 ROS2다. WIM은 ROS2 생태계에 플러그인으로 들어간다:

[ROS2 생태계]
├─ ros2_control         ← 표준 HW 추상화
├─ MoveIt2              ← 모션 플래닝
├─ Nav2                 ← 네비게이션
├─ Gazebo               ← 시뮬레이션

└─ [WIM ROS2 패키지들]   ← 플러그인
     ├─ wim_neural_dynamics
     ├─ wim_force_estimation
     ├─ wim_rt_inference
     ├─ wim_auto_id
     └─ wim_hardware_interface

새 생태계를 만들 필요 없이, 기존 ROS2 사용자가 바로 쓸 수 있다.