Creaform Connect Korea ~02.25

수행기록퀘스트1

엣지 AI 기반 자율제조 프레임워크
2026. 1. 15 (목) 17:45 최종수정 2026. 1. 18 (일) 10:42 davinci 조회 53 좋아요 3 스크랩 0 댓글 0

Quest 1 제출서: AMFX - 자율제조 프레임워크


프로젝트 개요

프로젝트명

AMFX: Autonomous Manufacturing Framework with Edge AI
(한글명: 엣지 AI 기반 자율제조 프레임워크)

Visual Servoing 로봇 + Agent-in-Loop 자율제조 시스템

한 줄 요약

비전 AI 기반 로봇이 USB 삽입 작업을 자율 수행하고, 이상 발생 시 AI Agent가 자동으로 문제를 해결하는 제조 6대 난제 통합 솔루션


1. 프로젝트 목적과 필요성

제조 현장의 문제

문제 현황 결과
반복 작업 사람이 수동 수행 피로, 실수, 비용
이상 대응 사람이 판단/조치 지연, 일관성 부족
데이터 관리 수동 수집/정리 누락, 품질 저하
보안 클라우드 의존 데이터 유출 위험

우리의 해결책

[Physical AI 로봇] + [Edge AI 추론] + [Agent 판단] = 자율제조
  • 사람 개입 최소화: 로봇이 반복 작업 자율 수행
  • 실시간 이상 대응: AI가 문제 감지 즉시 조치
  • 자동 데이터 관리: OTA로 모델/펌웨어 자동 배포
  • 온디바이스 보안: 모든 처리가 로컬에서 완료

2. 해결하고자 하는 문제 (6대 난제 통합 해결)

6대 난제 커버리지

핵심 난제 (완벽 구현):

# 난제 적용 방법 구현 수준
실시간 이상징후 탐지 2단계 아키텍처: 로컬 1차 + Agent 2차 판단 ☆☆☆☆☆
품질·불량 검사 USB 삽입 OK/NG 비전 AI 판정 (정확도 95%+ 목표) ☆☆☆☆☆
공정 제어·최적화 Visual Servoing Closed-loop + C/T 최적화 ☆☆☆☆☆

부가 기능 (프레임워크 확장):

# 난제 적용 방법 구현 수준
설비·공정 맞춤형 AI Agent 상황별 판단, OTA 모델 업데이트 ☆☆☆☆
데이터 파이프라인 Dual ESP32 OTA로 모델/펌웨어 자동 배포 ☆☆☆☆
보안 + 온디바이스 토큰 인증 + 로컬 AI 추론 + 네트워크 격리 ☆☆☆☆

데모 시나리오: USB 자동 삽입 + PC 포맷 + OS 설치

Phase 1: USB 삽입 (로봇 제어)

1. [시작] 로봇이 부팅 USB 메모리를 집음
2. [비전] 카메라로 노트북 USB 포트 위치 탐지 (YOLO)
3. [제어] Visual Servoing으로 실시간 위치 보정
4. [삽입] USB를 포트에 정확히 삽입
5. [품질] 삽입 성공/실패 AI 판정 (③)

Phase 2: PC 포맷 + OS 설치 자동화 (화면 인식 + 키보드 입력)

6. [화면인식] 화면 캡처 카메라가 노트북 화면 상태 인식
7. [키입력] Arduino Leonardo가 USB HID로 키보드 입력 자동 수행
8. [Agent] 화면 상태에 따라 Agent가 다음 동작 결정
화면 상태 Agent 판단 키보드 입력
BIOS 진입 필요 부팅 설정 F2/DEL → Boot Order 변경
OS 설치 화면 설치 진행 언어/지역 선택 → Next
파티션 선택 포맷 + 설치 드라이브 선택 → Format → Next
사용자 설정 계정 생성 이름/비밀번호 입력
설치 완료 재부팅 USB 제거 후 Restart
오류 발생 복구 시도 재시도 또는 HIL 요청

Phase 3: 완료 및 로깅

9. [확인] OS 설치 완료 확인 (데스크톱 화면 인식)
10. [로깅] 작업 로그 + C/T 측정 → 공정 최적화 (⑤)
11. [반복] USB 제거 → 다음 PC로 이동

작업 로그 및 C/T 측정 (⑤ 공정 제어·최적화 강화)

측정 항목 설명 활용
Cycle Time 작업 1회 소요 시간 병목 구간 식별
단계별 시간 탐지/이동/삽입/검증 각각 구간별 최적화
성공률 OK/NG 비율 품질 트렌드 분석
이상 발생 빈도 이상 유형별 카운트 예방 조치
# 작업 로그 예시
{
    "job_id": "USB_INSERT_001",
    "timestamp": "2026-01-15T14:30:00",
    "cycle_time_ms": 8500,
    "steps": {
        "detect_port": 1200,    # ms
        "move_to_port": 3500,
        "insert": 2800,
        "verify": 1000
    },
    "result": "OK",
    "anomalies": []
}

공정 최적화 루프:

[로그 수집] → [C/T 분석] → [병목 식별] → [파라미터 조정] → [성능 개선]
                                ↓
                    Agent가 자동으로 최적화 제안

Agent 기반 이상징후 탐지 (①② 통합)

문제: 초기에는 이상 데이터가 없음 → 전통적 ML 학습 불가

해결: 상용 Agent (Claude)를 활용한 Human-in-the-Loop (HIL) 설계

Phase 1 이상징후: 로봇 제어 (Visual Servoing)

이상 상황 Agent 감지 방법 자동 대응 HIL 요청
카메라 결착 불안정 보정값 지속 증가 추적 자동 캘리브레이션 "보정값 +5mm 누적. 물리적 점검 필요?"
기계적 틀어짐 위치 오차 패턴 분석 오프셋 보정 적용 "축 정렬 이상 감지. 유지보수 필요?"
서보 모터 이상 전류/토크 이상 탐지 속도 제한 적용 "모터 과부하. 교체 필요?"
USB 포트 인식 실패 YOLO 탐지 실패 횟수 재탐지 시도 "포트 인식 3회 실패. 조명/각도 조정?"
[보정값 로그] → [Agent 트렌드 분석] → 정상 범위 → [계속 운영]
                                         ↓
                               임계값 초과 (예: +5mm)
                                         ↓
                          [HIL 요청: "물리적 점검 필요?"]
                                         ↓
                          [사람 확인 → 유효 이상징후 DB 업데이트]

Agent 기반 자동 수정:

  • 예상과 다른 동작 발생 시 Agent가 제어 파라미터 조정
  • 반복 실패 시 Agent가 펌웨어 설정 수정 제안
  • 모든 수정 이력은 로그로 저장 → 추후 분석

Phase 2 이상징후: PC 포맷 + OS 설치 (화면 인식)

이상 상황 Agent 감지 방법 자동 대응 HIL 요청
BIOS 진입 실패 화면 상태 미변경 F2/DEL/F12/ESC 순차 시도 "BIOS 진입 불가. 키 조합 추가?"
부팅 순서 변경 불가 BIOS 메뉴 인식 실패 다른 BIOS UI 패턴 시도 "미지원 BIOS. 매뉴얼 필요?"
파티션 오류 설치 화면 에러 메시지 다른 파티션 선택 시도 "디스크 에러. 수동 확인 필요?"
설치 중단 진행률 정체 감지 재시작 시도 "설치 30분 정체. 강제 재시작?"
드라이버 누락 설치 완료 후 오류 드라이버 USB 삽입 시도 "네트워크 드라이버 누락. 추가 USB?"
[화면 상태] → [Agent 판단: BIOS 진입 필요]
                    ↓
           [F2 전송] → 실패 → [DEL 전송] → 실패 → [F12 전송]
                    ↓                              ↓
                  성공                      3회 실패 시
                    ↓                              ↓
           [다음 단계 진행]              [HIL: "키 조합 추가 필요?"]
                                                   ↓
                                        [사람 입력: "F10 사용"]
                                                   ↓
                                        [BIOS 키 DB 업데이트]

Phase 3 이상징후: 완료 및 반복

이상 상황 Agent 감지 방법 자동 대응 HIL 요청
OS 부팅 실패 데스크톱 미표시 재설치 시도 "부팅 실패. 이미지 손상?"
USB 제거 실패 로봇 그리퍼 오류 재시도 + 힘 조절 "USB 걸림. 수동 제거 필요?"
C/T 이상 증가 평균 대비 +20% 병목 구간 분석 "특정 단계 지연. 원인 분석?"

이상징후 DB 구조

{
    "anomaly_id": "ANM_001",
    "phase": "phase1",
    "type": "calibration_drift",
    "detected_by": "agent",
    "pattern": "correction_value > 5mm for 10 cycles",
    "auto_response": "recalibrate",
    "hil_response": "physical_inspection_needed",
    "human_feedback": "camera_mount_loose",
    "resolution": "tighten_mount",
    "valid": true,
    "timestamp": "2026-01-16T10:30:00"
}

장점:

  • 데이터 없이도 즉시 운영 가능
  • Agent가 맥락을 이해하고 판단
  • HIL로 점진적 자동화 달성
  • 예상치 못한 상황에도 유연하게 대응
  • Phase별 이상징후 DB 축적 → 지속적 개선

Agent 구현: 2단계 아키텍처

온디바이스 우선 + 클라우드 보조 설계:

[센서 데이터] → [1차 판단: 로컬] → 확정 시 → [즉시 조치]
                      ↓
              미확정 시 (10% 미만)
                      ↓
            [2차 판단: Cloud Agent]
단계 구현 역할 네트워크
1차 규칙 기반 + 경량 ML (TFLite) 90% 상황 처리 불필요
2차 Claude API 예외/신규 상황 필요 시만

장점:

  • 네트워크 단절 시에도 1차 판단으로 운영 지속
  • 90% 이상 상황은 완전 온디바이스로 처리
  • 클라우드는 예외 상황에만 사용 → 보안 + 비용 최적화

본 프로젝트는 향후 완전 온디바이스 AI로 확장 가능하도록 설계됩니다. 축적된 경험 데이터를 활용해 경량 Foundation Model을 학습하면, 2차 판단까지 로컬에서 처리 가능합니다.


3. 활용할 센서·모듈

하드웨어 구성

┌─────────────────────────────────────────────────────────┐
│                Jetson Xavier (AI 허브)                   │
│  ┌─────────────┐  ┌─────────────┐                       │
│  │ CAM1: USB   │  │ CAM2: 화면  │  YOLO + 화면 인식     │
│  │ 포트 탐지   │  │ 상태 캡처   │  + Agent 연동         │
│  └─────────────┘  └─────────────┘                       │
└─────────────────────────────────────────────────────────┘
        │ 이더넷           │ Serial          │ Serial
        ▼                  ▼                 ▼
┌───────────────┐  ┌───────────────┐  ┌───────────────┐
│   RPI5 8GB    │  │    ESP32-S3   │  │    Arduino    │
│ (데이터 허브) │  │  (로봇 제어)  │  │   Leonardo    │
│ 로깅, OTA서버 │  │  서보, IMU    │  │ (키보드 HID)  │
│ 대시보드      │  │               │  │               │
└───────────────┘  └───────────────┘  └───────────────┘
    DigiKey            보유           보유 (노트북 USB 허브)

역할 분리: AI 허브 vs 데이터 허브

허브 장치 역할
AI 허브 Jetson Xavier 비전 AI (듀얼 카메라), Agent 연동, 실시간 판단
데이터 허브 RPI5 8GB 작업 로그, C/T 측정, OTA 서버, 대시보드

Dual ESP32 OTA 시스템 (④ 데이터 파이프라인 핵심 기술)

문제: 제조 현장에서 다수의 ESP32 기반 제어기 펌웨어/모델 업데이트가 필요

해결: RPI5를 OTA 서버로 활용 + esp-serial-flasher로 디바이스 간 플래싱

OTA 아키텍처

┌─────────────────────────────────────────────────────────────┐
│                   RPI5 (OTA 서버)                            │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │ Flask API   │  │ 펌웨어 저장  │  │ 버전 관리   │         │
│  │ /firmware/* │  │ *.bin       │  │ version.json│         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
└─────────────────────────────────────────────────────────────┘
         │ Wi-Fi (HTTP OTA)
         ▼
┌───────────────────┐
│    ESP32-S3       │  ← HTTP Update (ElegantOTA)
│  (로봇 제어 MCU)  │
│                   │  ← esp-serial-flasher 내장
└───────────────────┘
         │ Serial (UART: TX/RX + BOOT/EN)
         ▼
┌───────────────────┐
│    ESP32-C3       │  ← Serial Flashing
│  (보조 MCU/센서)  │     (파티션 제한 없음)
└───────────────────┘

OTA 방식 비교

방식 설명 장점 단점
HTTP OTA Wi-Fi로 서버에서 .bin 다운로드 무선, 원격 가능 네트워크 필요, 파티션 제한
esp-serial-flasher ESP32가 다른 ESP32를 시리얼로 플래싱 파티션 무관, 전체 플래시 교체 유선 연결 필요

esp-serial-flasher 활용 (Espressif 공식 라이브러리)

하드웨어 연결:

ESP32-S3 (Host)     ESP32-C3 (Target)
---------------     -----------------
IO26        →       IO0 (BOOT)
IO25        →       EN (RESET)
IO4 (TX)    →       RX0
IO5 (RX)    →       TX0
GND         →       GND

플래싱 프로세스:

1. [RPI5] HTTP로 새 펌웨어 .bin → [ESP32-S3]
2. [ESP32-S3] 자신의 펌웨어 업데이트 (HTTP OTA)
3. [ESP32-S3] esp-serial-flasher로 [ESP32-C3] 플래싱
4. [ESP32-C3] 부트로더 모드 진입 (BOOT LOW + EN 토글)
5. [ESP32-C3] 전체 플래시 교체 완료

장점:

  • 파티션 크기 제한 우회: 일반 OTA는 ota_0/ota_1 두 파티션 필요 (각 ~1.5MB)
  • 대용량 펌웨어: esp-serial-flasher는 전체 플래시 교체 가능
  • 네트워크 불필요: 시리얼만으로 타겟 디바이스 업데이트
  • 안전한 롤백: 실패 시 이전 파티션으로 자동 복구

버전 관리 시스템

# RPI5: version.json
{
    "esp32_s3": {
        "version": "1.2.0",
        "url": "/firmware/esp32_s3_v1.2.0.bin",
        "sha256": "abc123..."
    },
    "esp32_c3": {
        "version": "1.1.0",
        "url": "/firmware/esp32_c3_v1.1.0.bin",
        "sha256": "def456..."
    }
}
# ESP32-S3: 자동 업데이트 체크
def check_ota_update():
    response = http_get("http://rpi5:5000/firmware/latest")
    if response["version"] > current_version:
        download_and_flash(response["url"])
        # ESP32-C3도 업데이트 필요 시
        if c3_update_available:
            serial_flash_esp32_c3(response["c3_url"])

TFLite 모델 OTA (① 설비 맞춤형 AI)

펌웨어뿐 아니라 AI 모델도 OTA로 업데이트:

[Agent 학습 결과] → [새 TFLite 모델] → [RPI5 서버]
                                            ↓
                                    [ESP32-S3 다운로드]
                                            ↓
                                    [SPIFFS/LittleFS 저장]
                                            ↓
                                    [새 모델로 추론]
업데이트 대상 용량 주기
펌웨어 (.bin) ~1MB 필요 시
TFLite 모델 (.tflite) ~500KB Agent 학습 후
설정 파일 (.json) ~10KB 파라미터 변경 시

부품 상세

RPI5 8GB 선택 이유 (데이터 허브)

요구사항 RPI5 8GB 적합성
작업 로깅 C/T 측정, 작업 로그 저장 및 분석
OTA 서버 ESP32 펌웨어/모델 배포 서버 운영
대시보드 서빙 Flask/Streamlit 웹 서버 + 실시간 데이터 시각화

Jetson Xavier는 AI 허브 (비전 + Agent), RPI5는 데이터 허브 (로깅 + OTA)로 역할 분리하여 ④ 데이터 파이프라인 난제 강화

구분 부품 역할 조달
AI Jetson Xavier YOLO (듀얼 카메라) + 화면 인식 + Agent 연동 보유
데이터 Raspberry Pi 5 8GB 로깅, OTA 서버, 대시보드 (④ 데이터 파이프라인) DigiKey
제어 ESP32-S3 로봇 서보 제어, 센서 수집 보유
키보드 Arduino Leonardo USB HID 키보드 입력 (노트북 USB 허브 연결) 보유
OTA ESP32-C3 펌웨어 OTA 수신 보유
카메라 USB CAM x2 CAM1: USB 포트 탐지, CAM2: 화면 캡처 보유/국내구매
IMU MPU6050 로봇 자세/진동 감지 보유/국내구매
전류 INA219 로봇 이상 탐지 보유/국내구매
서보 MG996R x4 로봇 관절 구동 (고토크/정밀) 보유/국내구매

4. 기술 스택

소프트웨어

분야 기술 용도
AI 모델 YOLO, MobileNet 객체탐지, 분류
경량화 TFLite, ONNX 엣지 배포
제어 Visual Servoing 실시간 로봇 제어
통신 MQTT 디바이스 간 통신
OTA esp-serial-flasher, ElegantOTA ESP32 펌웨어/모델 원격 업데이트
Agent Claude API 예외 상황 자동 판단
대시보드 Flask/Streamlit 실시간 모니터링

핵심 알고리즘

Visual Servoing (⑤ 공정제어)

while not inserted:
    image = camera.capture()
    target = yolo.detect(image, "usb_port")
    error = calculate_error(current_pos, target)
    servo.move(pid_control(error))

이상징후 탐지 (②)

def detect_anomaly():
    current = ina219.read()      # 전류 이상
    position = servo.get_pos()   # 위치 오차
    vibration = mpu6050.read()   # 진동 패턴

    if current > threshold or position_error > limit:
        return "ANOMALY"

품질 검사 (③)

def check_insertion_quality():
    image = camera.capture()
    result = model.predict(image)  # OK / NG / PARTIAL
    return result

5. 보안 설계 (⑥)

3단계 보안 아키텍처

단계 방법 효과
1 로컬 네트워크 격리 외부 공격 원천 차단
2 토큰 기반 디바이스 인증 미등록 장치 차단
3 온디바이스 AI 추론 데이터 외부 유출 방지

통신 보안

[ESP32] ──── "DEVICE_TOKEN" ────? [RPI5]
                                     │
                              토큰 검증 후만 통신

6. DigiKey 부품

품목 DigiKey URL 가격
Raspberry Pi 5 8GB SC1431 $95

나머지 부품은 보유품 + 국내 구매로 조달


7. 차별화 포인트

vs 경쟁작 비교

항목 경쟁작 (대부분) AMFX (우리)
난제 커버리지 1~2개 6개 전체
제어 방식 Open-loop Closed-loop
AI 수준 FFT, 고정 모델 Visual Servoing + Agent
이상 대응 알람만 자동 복구
보안 미언급 온디바이스 + 인증
데모 그래프/콘솔 실물 로봇 동작

핵심 차별점 3가지

  1. 핵심 난제 완벽 해결 + 전체 커버: ②③⑤ 완벽 구현 + 나머지 프레임워크 지원
  2. 2단계 Agent 아키텍처: 90% 온디바이스 + 10% 클라우드 보조 (네트워크 단절 대응)
  3. Physical AI 데모: 실제 로봇이 USB를 삽입하는 시각적 임팩트

8. 개발 계획

Quest 2 (01.17 ~ 02.15)

주차 목표
1~2주 H/W 조립, 기본 통신 구축
3~4주 Visual Servoing 구현, YOLO 학습

Quest 3 (02.16 ~ 03.01)

주차 목표
1주 통합 테스트, 이상탐지 튜닝
2주 데모 완성, 문서화, 영상 제작

9. 기대 효과

정량적 효과 (예시)

지표 현재 (수동) AMFX 적용 후
작업 시간 30초/회 10초/회
오류율 5% <1%
이상 대응 시간 수 분 수 초

확장 가능성

  • 다양한 작업: USB 삽입 → 커넥터 체결, 부품 조립 등
  • 다양한 플랫폼: RPI5 → Jetson, 산업용 PLC 등
  • 다양한 규모: 단일 로봇 → 다중 로봇 협업

10. 요약

AMFX는 제조 현장의 핵심 난제 3개(②③⑤)를 완벽 해결하고, 나머지 난제까지 통합 지원하는 프레임워크입니다.

핵심 기술 설명
Physical AI 실제 로봇이 작업 수행 (MG996R 고정밀 서보)
2단계 Edge AI 90% 로컬 처리 + 10% 클라우드 보조
Visual Servoing 실시간 비전 피드백 Closed-loop 제어
Agent-in-Loop 예외 상황 자동 판단/복구
OTA 자동 모델/펌웨어 업데이트
보안 온디바이스 우선 + 토큰 인증

"단순한 아이디어가 아닌, 작동하는 자율제조 시스템을 구현합니다."


작성일: 2026.01.15
제출: Industrial Edge AI Solution Challenge 2026 Quest 1

첨부파일
Self-Healing_AI_Robotics.pdf 다운로드

로그인 후
참가 상태를 확인할 수 있습니다.