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 사용자가 바로 쓸 수 있다.