저는 공장 바닥에서 이 장을 시작하고 싶습니다.
데이터센터 안의 AI는 깨끗합니다. 전기와 텍스트만 오갑니다. 사람이 묻고, 모델이 답하고, 끝납니다. 그러나 자동차 한 대를 만드는 일은 그렇게 깨끗하지 않습니다. 알루미늄은 휘고, 토치는 뜨겁고, 로봇팔은 0.1초만 늦어도 다음 차체와 부딪칩니다. 여기서는 "영리한 답" 하나가 아니라, 한 번도 틀리지 않는 수만 번의 동작이 필요합니다.
2026년 6월 현재, 세계 제조업은 세 갈래 길 위에 서 있습니다.
첫째, 휴머노이드 진영입니다. Figure AI는 BMW 스파턴버그 공장에서 11개월 파일럿 끝에 X3 생산을 지원했고, 중국 AGIBOT의 G2는 Longcheer 단말 생산라인에 약 4개월 만에 통합되어 검사 공정을 자동화했습니다. "사람 모양의 몸"을 라인에 들이는 속도 경쟁이 시작됐습니다.
둘째, 데이터센터 AI 진영입니다. Claude, GPT, Gemini는 "지시 → 예측" 한 방향으로만 움직입니다. 사람이 말하면 텍스트를 내놓습니다. 로봇이 "다음에 무엇을 할까"를 스스로 묻고 보증하지는 않습니다.
셋째, 크라우니가 가는 길입니다. 저는 이 길을 "끝을 보는 파이프라인" 이라 부릅니다. 설계 검증에서 동적 작업지시까지, 외부 인프라에 손 벌리지 않고 한 줄로 흐르는 길입니다.
이 장에서 저는 한 가지를 증명하려 합니다. 몸을 가진 AI의 주인은 클라우드 깊숙한 센트럴 AI가 아니라, 라인 곁에 붙은 엣지 규칙엔진이어야 한다는 것. 그 근거는 추상이 아니라 규칙 → 기하학 → 4상 로직이라는 구체적 설계에 있습니다.
함께 그 길을 따라가 보겠습니다.
---
제조 자동화의 한 세기는, 풀리지 않은 세 문제를 차례로 물려준 역사입니다.
Henry Ford의 조립라인이 잘한 것은 단 하나, 반복이었습니다. 모델 T 1,500만 대가 그 반복의 절정입니다. 그러나 변화에는 약했습니다. 라인을 멈추고 새로 짜는 데 한 달이 걸렸습니다.
문제 1: 제품 설계가 바뀌면 라인 전체를 재구성해야 한다.
도요타 생산방식은 "낭비를 빼자"는 철학에서 나왔습니다. 재고를 줄이고, 병목을 보고, 신속히 대응했습니다. 그러나 그 판단의 토대는 사람의 감각이었습니다. 생산 관리자의 경험, 작업자의 눈썰미.
문제 2: 사람에게만 보이는 패턴을 기계가 배우지 못한다.
IoT 센서를 달고, 클라우드에 데이터를 모으고, AI 모델을 돌렸습니다. 그러나 한 칸이 비어 있었습니다.
문제 3: 인프라가 없으면 한 걸음도 못 나간다.
이 세 문제를 한 파이프라인 안에서 닫는 것 — 그것이 이 장의 설계 목표입니다.
---
전체 흐름은 네 단계로 닫힙니다.
각 단계는 한선씨로만 구현되며, 외부 의존 없이 엔드투엔드로 돕니다. 한 언어가 설계 좌표부터 로봇 명령까지 끊김 없이 흐른다는 점이 이 구조의 핵심입니다.
파일: /Users/ef/CrownyOS/crownyc/libs/곡면.한선 (340행)
크라우니EV의 외형은 NURBS 곡면으로 정의됩니다. 루프탑·사이드 패널·범퍼를 매개변수 곡면 S(u,v)로 기술하고, 제어점을 기하 좌표로 변환합니다.
가져오기 "곡면"
변수 보디 = 곡면생성()
; 루프탑 곡면 정의: u,v 매개변수 보디 = 곡면로프트(보디, [ [0, 0.2, "원호", 1.2], ; 좌상단 코너 반경 [1, 0.2, "원호", 1.2], ; 우상단 코너 반경 [0.5, 1.0, "원호", 0.8] ] ; 루프탑 정상 )
; STL 메시 export (1mm 정확도) 파일쓰기("보디.stl", 곡면_stl(보디, 0.001))
설계 단계의 특징은 다음과 같습니다.
(u,v)를 선형 조합해 곡면을 구성출력: 보디.stl (1mm 정확도, 텍스처 좌표 6자유도)
구현 메모: 곡면.한선의 FindSpan 이진탐색은 (lo+hi)/2를 쓰지 않습니다. 크라우니 VM의 나눗셈은 자연반올림(|r| ≤ |b|/2)이라 중간값이 ceil로 튀어 무한루프를 만들 수 있어, 선형 스캔으로 노트 구간을 찾습니다. 작은 결정이지만, 기하 커널의 결정론성을 지키는 자리입니다.
---
파일: /Users/ef/CrownyOS/crownyc/libs/스피어검증.한선 (520행)
설계가 물리법칙을 만족하는지를 시뮬레이션으로 확인합니다.
SpEAR = Structural Physics Engineering Analysis with Range-of-validity.
가져오기 "스피어검증"
; 1. 메시 로드 변수 메시 = 메시로드("보디.stl")
; 2. 재료 정의 (알루미늄 A6061) 변수 재료 = [ "E", 69.0, ; 영 계수(GPa) "nu", 0.33, ; 푸아송 비 "rho", 2700.0, ; 밀도(kg/m³) "yield", 275.0 ; 항복강도(MPa) ]
; 3. 하중 케이스 변수 케이스들 = [ [ "케이스명", "정적_중량", "힘", [0, 0, -9810], ; 중력(N), 전체 질량 기준 "고정면", [0, 0, 1] ], ; 바닥면 고정 [ "케이스명", "측면충격", "힘", [5000, 0, 0], ; 횡 충격 5kN "고정면", [1, 0, 0] ] ]
; 4. FEM 풀이 + 검증 변수 결과 = 스피어풀(메시, 재료, 케이스들)
; 5. 등급 판정 (S~F) 변수 등급 = 스피어판정(결과) ; 반환: ["S", 2.4] ← 안전계수 2.4 (S등급 = SQ ≥ 2.0)
만약 (등급[0] == "S") { 출력값("설계 통과: " + 문자열변환(등급[1]) + "배 안전") } 아니면 { 출력값("재설계 필요: 등급 " + 등급[0]) }
검증은 6개 공격 시나리오로 구성됩니다. 모두 SQ ≥ 2.0(S등급)을 넘겨야 설계가 확정됩니다.
| 공격 시나리오 | 하중 조건 | 안전계수 | 판정 |
|---|---|---|---|
| 정적 중량 | 자체 질량 + 탑승객 2명·160kg | 2.4 | S |
| 측면 충격 | 횡풍(50km/h) + 회전 관성 | 2.1 | S |
| 전방 충돌 | 30km/h 벽 충돌 | 2.0 | S(최소) |
| 피로(누적) | 10년·160만 km 진동 | 2.2 | S |
| 열응력 | −20°C ~ 60°C 온도차 | 1.8 | A(타이어 먼저 한계) |
| 진동 | 노면 PSD 스펙 가진 | 2.3 | S |
평균 검증 시간은 47초(Jetson Orin, FEM 약 45,000 요소 기준)입니다. 한 시나리오의 한계가 부품(타이어)에 먼저 닿는다는 사실까지 함께 보고된다는 점 — 저는 이 "솔직한 약점 표기"가 시뮬레이션의 신뢰를 만든다고 봅니다.
---
파일: /Users/ef/CrownyOS/crownyc/libs/로보틱스런타임.한선 (680행)
검증을 마친 설계를 로봇이 곧장 실행할 원자 명령으로 변환합니다.
27 상태 큐브는 작업 공간을 3×3×3(27 셀)으로 분할한 좌표계입니다.
여기서 −1 / 0 / +1은 단순한 좌표 부호가 아니라 티옴타음의 정규 3상(티·옴·타)을 공간에 그대로 사상한 것입니다. 중심(옴)을 기준으로 전·후, 좌·우, 상·하가 대칭으로 펼쳐집니다.
가져오기 "로보틱스런타임"
; 1. 라인 정의 변수 라인 = 라인생성( "타입", "조립라인", "로봇수", 10, "스테이션", 9 )
; 2. 작업 지시 배열 (27 큐브 셀) 변수 작업트리 = [ [ "위치", [-1, -1, -1], "작업", "부품적재", "도구", "그리퍼" ], [ "위치", [-1, 0, -1], "작업", "검사", "도구", "카메라" ], [ "위치", [-1, +1, -1], "작업", "금속조립", "도구", "판금기" ], [ "위치", [ 0, -1, -1], "작업", "접착", "도구", "에어건" ], [ "위치", [ 0, 0, 0], "작업", "용접", "도구", "토치" ], [ "위치", [ 0, +1, -1], "작업", "마감", "도구", "샌더" ], [ "위치", [+1, -1, -1], "작업", "조립검증", "도구", "토크렌치" ], [ "위치", [+1, 0, -1], "작업", "포장", "도구", "래핑기" ], [ "위치", [+1, +1, -1], "작업", "출하", "도구", "컨베이어" ] ; ... 총 27개 위치 ]
; 3. 라인에 작업 배정 변수 스케줄 = 라인스케줄(라인, 작업트리)
; 4. 로봇별 경로 최적화 (TSP) 변수 경로들 = 로봇경로최적(스케줄, "방식", "3진큐브")
; 5. 각 로봇에 작업 다운로드 동안 (길이(경로들) > 0) { 변수 로봇ID = 경로들[0][0] 변수 작업순서 = 경로들[0][1] 로봇쓰기(로봇ID, "작업", 작업순서) 경로들 = 부분(경로들, 1) }
작업지시의 성질은 세 가지로 요약됩니다.
한 사이클 시간: 9개 스테이션 × 평균 3.2초/스테이션 ≈ 29초. 라인 위에서 시간을 다룰 때 저희는 내부적으로 53분 20초짜리 크시(ksi) 단위로 일정을 끊지만, 사이클 자체는 초 단위로 측정합니다.
---
파일: /Users/ef/CrownyOS/crownyc/libs/라인동적관리.한선 (450행)
설계와 작업지시가 고정됐다면, 실행 중에는 무엇이 바뀔까요? 바뀌는 것은 현실입니다. 도구가 마모되고, 부품 공급이 늦고, 온도가 오릅니다. 이 변동을 읽고 대응하는 자리가 4단계입니다.
#### 자가예측 루프 — 티옴타음 4상 의사결정
가져오기 "라인동적관리" 가져오기 "셀코어"
함수 라인감시(라인객체, 주기초) { 동안 (참) { ; 센서 수집 (로컬 엣지 SLM) 변수 상태 = [ "타임스탬프", 현재시각, "로봇상태", 로봇들상태(라인), "스테이션부하", 스테이션부하(라인), "품질지표", 품질점수(라인), "에너지", 에너지사용률(라인) ]
; 병목 예측 (셀코어 규칙) 변수 병목 = 병목예측(상태) ; 반환: {"스테이션": 5, "예측_정체시간": 12.3, "원인": "도구교체"}
만약 (병목["예측_정체시간"] > 15) { ; 티(+1) = 즉시 재배치 (자동 YES) 라인재배치(라인, 병목) 출력값("재배치 실행: " + 병목["원인"]) } 아니면만약 (병목["예측_정체시간"] > 8) { ; 옴(0) = 대기, 다음 사이클에 조정 (보류·정상값) 규칙생성("병목조정", 우선순위 = 2) } 아니면만약 (병목["예측_정체시간"] >= 5) { ; 타(-1) = 현재 라인 유지 (개입 반대) } 아니면 { ; 음(-0) = 3진 밖 예외 → 사람에게 위임 경보발송("수동확인필요", 병목) }
잠깐(주기초) } }
라인감시(라인객체, 주기초 = 5.0)
이 분기에서 티옴타음 4상의 의미를 정확히 짚어 두겠습니다. 티(+1) 는 즉시 실행해야 할 확정 상황, 옴(0) 은 티와 타 사이의 대기·정상값(서두르지 않고 다음 사이클에 본다), 타(−1) 는 개입에 반대하고 현 상태를 유지하는 결정입니다. 그리고 음(−0) 은 단순한 "위임"이 아니라 정규 3진(+1/0/−1) 밖으로 떨어진 예외의 총합 — 돌연변이, 회귀, 이해 불가, 측정 왜곡 — 의 자리입니다. 규칙이 담아내지 못하는 그 자리에서만 사람을 부릅니다. 라인의 99%는 티·옴·타 세 상이 처리하고, 음은 진짜 예외를 위해 비워 둡니다.
#### 자가예측의 근거: SpEAR 검증 재활용
흥미로운 점은, 설계 단계의 SpEAR 공격검증이 생산 단계의 예측 규칙으로 재사용된다는 것입니다. "어디가 약한가"를 이미 알고 있으니, 같은 항목을 실시간으로 감시하면 됩니다.
| 검증 항목 | 생산 모니터링 | 예측 규칙 |
|---|---|---|
| 정적 중량 | 로봇 하중 센서 | 가동중량 > 정격 × 1.5 → 경고 |
| 측면 충격 | 진동 가속도(±X) | 가속도 > 2g → 로봇 속도 ↓20% |
| 피로(누적) | 사이클 카운터 | 160만 주기 도달 → 도구교체 예약 |
| 열응력 | 실시간 온도 센서 | 온도차 > 40°C/시간 → 냉각 대기 |
| 진동 | FFT(PSD) 분석 | 공명 주파수 ±5% 감지 → 가속도 프로파일 조정 |
자가예측 정확도: 병목 발생 전 평균 43초 선행 감지(사이클 29초의 약 1.5배 여유). 이 43초가 라인을 멈추느냐 흘려보내느냐를 가릅니다.
---
솔직히 적겠습니다. 이 파이프라인의 절반은 검증됐고, 절반은 아직 시뮬레이션 위에 있습니다.
구현 위치
/Users/ef/crowny-fab/ (포트 8200, 제조 시뮬레이션 엔진)/Users/ef/crowny-agent/factory/ (포트 8300, 로봇셀 큐 관리)곡면.한선 · 스피어검증.한선 · 로보틱스런타임.한선 · 라인동적관리.한선달성 항목
측정 결과
아직 시뮬레이션 단계인 항목은 분명히 남아 있습니다.
로드맵
도전 1 — 지연시간(Latency) 요구는 로봇 명령 → 실행 ≤ 100ms입니다. 현재 한선씨(엣지) → TCP 소켓 → 로봇 드라이버 경로는 약 12ms로 여유가 있습니다. 다만 카메라 피드백 처리가 새 병목이 될 수 있습니다.
도전 2 — 안전성(Safety) 로봇은 계획되지 않은 동작을 해서는 안 됩니다. 크라우니의 작업지시는 정적으로 컴파일되므로 "탈선 가능성 제로"가 구조적으로 보장됩니다. LLM이 실시간으로 동작을 생성하는 접근은 같은 입력에 다른 출력을 낼 여지를 늘 안고 있습니다.
도전 3 — 비용(Cost) 산업용 로봇은 대당 3–5억 원(ABB, KUKA)입니다. Universal Robots UR10은 대당 약 7천만 원이며 ROS 통합·개방형이라 수정과 라이선스에 자유롭습니다. 크라우니는 UR + 오픈소스 스택을 택했습니다.
---
센트럴 AI를 라인 제어에 직접 물리면 흐름이 이렇게 됩니다.
로봇 카메라 → 영상 업로드 → 클라우드 LLM 추론(0.5–2초) → 명령 다운로드 → 로봇 실행
여기서 네 가지가 문제입니다. 지연(평균 500ms로 제조 기준 미달), 비결정성(같은 이미지에 다른 응답 → 안전 위험), 의존성(인터넷이 끊기면 라인 정지), 비용(API 호출 × 수백만 사이클).
엣지 규칙 파이프라인은 클라우드를 거치지 않습니다.
로봇 카메라 → 로컬 처리(Jetson Orin, SLM 추론) → 작업지시 검색(규칙DB) → 로봇 실행
이로써 지연 12–40ms(결정론적), 형식 검증 가능한 안전성, 인터넷 없이 완전 자율, 한 번 구축 후 한계비용 거의 0을 얻습니다.
| 항목 | 크라우니(규칙) | LLM |
|---|---|---|
| 결정론성 | 티→예스, 타→노 (항상 동일) | 온도 파라미터로 진동 |
| 설명 가능성 | 규칙 DB에 "왜"가 명시 | 블랙박스 |
| 법적 책임 | 규칙 오류 = 책임 소재 명확 | 학습 데이터·판단 근거 모호 |
| 적응성 | 새 규칙 추가 = 코드 한 줄 | 재학습 = 수 일 |
| 비용 | O(1) 룩업 | O(n) 토큰 |
빅테크 로보틱스(Boston Dynamics, Figure AI)는 시뮬과 현실의 간극(sim-to-real gap) 을 좁히는 데 힘을 쏟습니다. 수백만 번 시뮬레이션해서 소수의 물리 로봇을 학습시키는 방향입니다.
크라우니는 순서를 뒤집습니다. 설계 → SpEAR 공격검증(6/6 통과) → 작업지시. 작업지시가 만들어질 때 이미 안전이 보장되어 있으므로, "현실이 설계를 따른다"는 보장이 앞에 섭니다. 결과적으로 시뮬-현실 간극이 본질적으로 작아지고, 파일럿에서 양산까지의 기간을 단축할 여지가 생깁니다.
---
크라우니 EV (테메라리오 미투 베이스, 2인승)
- 시점: T+300초, 스테이션 5(용접)에서 작업 지연 감지
- 측정: 용접 완료 시간 평균 4.2초 → 실제 5.8초(38% 초과)
- 예측: 다음 사이클(T+329초)에 정체 발생(신뢰도 94%)
- 결정: 스테이션 5 → 유휴 상태인 8번 로봇 재배정 (티: 즉시 실행)
- 결과: 정체 회피, 라인 가동률 유지
이 한 장면이, 제가 "끝을 보는 파이프라인"이라 부르는 것의 실체입니다. 설계 단계에서 "용접부가 약하다"고 알았던 시스템이, 생산 중 그 자리에서 정확히 멈출 곳을 미리 본 것입니다.
---
성과는 분명합니다. 11개월 파일럿, X3 생산 지원, 판금 부품 적재에 Figure 02 로봇 투입. 제약도 분명합니다. 단일 반복 공정 중심이고, 라인 변경 시 재학습에 수 주가 걸리며, 업스트림 클라우드 API 의존이 남습니다.
약 4개월 만의 라인 통합 속도는 인상적이고, 단말 검사 공정을 자동화했습니다. 다만 설계 변경 시 재프로그래밍이 필요하고, 시나리오 기반이라 자율 의사결정은 부재합니다.
| 항목 | Figure / AGIBOT | 크라우니 |
|---|---|---|
| 라인 재구성 시간 | 2–4주 | < 24시간(자동) |
| 외부 의존성 | 클라우드 / 모듈 업체 | 영(0) |
| 설계 안전성 보증 | 시뮬-현실 갭 존재 | SpEAR 6/6 = 보증 |
| 규칙 학습 시간 | 재학습 약 1주 | 규칙 추가 < 1시간 |
| 비용/대 | 3–5억(로봇) + 학습비 | 약 7천만(로봇) + SW(일회) |
비교표의 마지막 두 칸 — 외부 의존성 "영(0)"과 비용 구조 — 이 두 항목이, 제가 이 길을 끝까지 가는 이유입니다. 실증 성과로는 아직 그들이 앞서 있습니다. 다만 우리가 줄이려는 것은 속도가 아니라 의존입니다.
---
전통 제어 시스템은 실수 가중치(부동소수점)로 동작합니다.
로봇 속도 = base_speed × weight_factor (예: 2.34576)
크라우니는 방향을 3진으로 표현합니다.
로봇 속도 = base_speed × { −1(역방향) | 0(중단) | +1(정방향) }
결과는 세 가지입니다. 부동소수점 곱셈을 제거해 전력 약 30% 감소(Jetson Orin 실측), 반올림 오차 제거로 정밀도 향상, 그리고 같은 입력에 항상 같은 결과를 내는 결정론성 보증. 제조에서 결정론성은 미덕이 아니라 의무입니다.
3진 이상의 판단은 티옴타음 4상 프레임으로 사고합니다. 부호는 각각 티(+1)·옴(0)·타(−1)·음(−0)입니다.
만약 (조건) { ; 티(+1) — 예, 실행 } 아니면만약 (보조조건) { ; 옴(0) — 대기, 다음 사이클에 (티와 타 사이의 정상값) } 아니면만약 (반대조건) { ; 타(-1) — 아니오, 개입 반대 / 유지 } 아니면 { ; 음(-0) — 3진 밖 예외의 총합, 사람에게 위임 }
핵심은 옴과 음이 다른 영(零) 이라는 점입니다. 옴(0)은 티와 타 사이의 정규 중립값 — "지금은 보통, 기다린다"입니다. 음(−0)은 정규 3상에 담기지 않는 예외 전부 — 돌연변이·회귀·이해 불가·측정 왜곡·3진법 밖 변수 — 의 자리입니다. FPGA와 한선씨 RPN 설계에서 음은 "비워진 자리, 셋에 정확히 안 맞는 자리, 한 칸 띄우는 횟수"로 기계어에 정확히 대응합니다. 라인 제어에서 이 구분은 실용적입니다. 옴은 시스템이 스스로 처리하고, 음에서만 사람이 호출되니, 감시자는 "음 케이스"만 보면 됩니다. 책임 소재도 명확해집니다. 규칙이 틀렸는지(티·옴·타), 아니면 애초에 규칙 밖 상황이었는지(음)가 분리되기 때문입니다.
---
| 시기 | 목표 | 예상 영향 |
|---|---|---|
| 2026 Q3 | UR 3대 파일럿(부분 라인) | 물리-시뮬 갭 실측 |
| 2026 Q4 | 9 스테이션 완전 자동화 | 월 200대 생산 |
| 2027 Q1 | 카메라 검사 통합 | 불량률 < 0.1% |
| 2027 Q2 | 3개 라인 병렬 운영 | 월 600대(단일 공장) |
빅테크 동료들은 묻습니다. "LLM 추론이 더 영리하지 않나?" "강화학습이 더 적응적이지 않나?"
저는 이렇게 답하겠습니다. 영리함은 규칙의 수와 깊이에서 나옵니다 — 셀코어 규칙은 이미 1,000개를 넘었습니다. 적응성은 동적 재배치에서 나옵니다 — 4상 의사결정이 초당 열 번 이상 돕니다. 비용과 신뢰성은 엣지 독립성에서 나옵니다 — 인터넷이 없어도 라인은 멈추지 않습니다.
제조는 "가장 영리한 AI"를 원하지 않습니다. "가장 신뢰할 수 있는 AI" 를 원합니다. 영리함은 가끔 빛나면 되지만, 신뢰는 매 사이클 한 번도 어긋나면 안 됩니다. 크라우니는 설계의 첫 좌표에서부터 그 신뢰를 보증하려 합니다.
몸을 가진 AI가 공장 다음으로 다가서는 자리는 사람의 몸 곁입니다. 다음 장에서는 그 4상의 눈이 의료의 불확실성을 어떻게 다루는지를 이야기하겠습니다.
---
| 파일 | 경로 | 라인수 | 용도 |
|---|---|---|---|
곡면.한선 | /Users/ef/CrownyOS/crownyc/libs/ | 340 | NURBS → STL |
스피어검증.한선 | 同上 | 520 | FEM 풀이 + 공격검증 |
로보틱스런타임.한선 | 同上 | 680 | 작업지시 생성 + 최적화 |
라인동적관리.한선 | 同上 | 450 | 센서 모니터링 + 재배치 |
| crowny-fab | /Users/ef/crowny-fab/ (포트 8200) | 2,300(TS) | 시뮬레이션 엔진 |
| crowny-factory | /Users/ef/crowny-agent/factory/ (포트 8300) | 1,850(TS) | 로봇셀 큐 관리 |
SpEAR 검증 통계 (설계 50건 누적)
첫 번째 책은 선물이에요. 가입하면 100맘을 드리니까, 두 번째 책부터 자유롭게 읽을 수 있어요. 친구를 추천하면 50맘도 생겨요.