# AGV Interaction Sequence Diagram

이 문서는 소스 코드 분석을 바탕으로 AGV의 버퍼 및 설비(Loader, Cleaner, Unloader) 진출입 시퀀스를 AGV 관점에서 정리한 것입니다.

## 1. AGV 진입 시퀀스 (Entry/In)

버퍼는 경로 복귀를 위한 180도 회전(`Turn`) 과정이 포함되어 있으며, 설비(Loader, Cleaner, Unloader)는 직선 이동 위주로 구성됩니다.

```mermaid
sequenceDiagram
    participant AGV
    participant Sensors
    participant ACS as ACS/Server
    participant Equip as Equipment/Buffer

    Note over AGV: [조건 확인] 충전 OFF & 기구물 간섭 확인

    rect rgb(240, 240, 240)
    Note right of AGV: 버퍼 진입 (Buffer In)
    AGV->>Sensors: Lidar OFF (안전 센서 일시 중지)
    AGV->>AGV: Stop
    AGV->>AGV: Left 180 Turn (방향 전환)
    AGV->>AGV: Lift DOWN
    alt PickOffEnter (카트 반납 시)
        AGV->>AGV: Magnet ON
    end
    AGV->>Equip: 후진 진입 (Backward Low Speed)
    Equip->>Sensors: Mark Sensor 감지
    AGV->>AGV: MarkStop (정밀 정지)
    alt PickOffEnter (카트 반납 시)
        AGV->>AGV: Magnet OFF
    end
    Note over AGV: 진입 완료
    end

    rect rgb(220, 230, 240)
    Note right of AGV: 일반 설비 진입 (Loader, Cleaner, Unloader Enter)
    AGV->>Sensors: Mark Sensor 유효성 확인
    AGV->>AGV: Lift DOWN
    alt PickOffEnter (카트 반납 시)
        AGV->>AGV: Magnet ON
    end
    AGV->>Equip: 후진 진입 (Backward Low Speed)
    Equip->>Sensors: Mark Sensor 감지
    AGV->>AGV: MarkStop (정밀 정지)
    alt PickOffEnter (카트 반납 시)
        AGV->>AGV: Magnet OFF
    end
    Note over AGV: 진입 완료
    end
```

---

## 2. AGV 진출 시퀀스 (Exit/Out)

진출 시에도 버퍼는 경로 복귀를 위한 180도 우회전(`Right Turn`)이 포함됩니다.

```mermaid
sequenceDiagram
    participant AGV
    participant Sensors
    participant ACS as ACS/Server
    participant Equip as Equipment/Buffer

    Note over AGV: [조건 확인] 충전 OFF

    rect rgb(240, 240, 240)
    Note right of AGV: 버퍼 진출 (Buffer Out)
    alt PickOnExit (카트 수거 시)
        AGV->>AGV: Lift UP
    else PickOffExit (빈 차 복귀 시)
        AGV->>AGV: Lift DOWN
    end
    AGV->>Equip: 전진 진출 (Forward Low Speed)
    Equip->>Sensors: Mark Sensor 감지 (진출 지점)
    AGV->>AGV: MarkStop & Stop
    AGV->>AGV: Right 180 Turn (경로 복귀)
    AGV->>Sensors: Lidar ON (안전 센서 활성화)
    Note over AGV: 진출 완료
    end

    rect rgb(220, 230, 240)
    Note right of AGV: 일반 설비 진출 (Loader, Cleaner, Unloader Exit)
    alt PickOnExit (카트 수거 시)
        AGV->>AGV: Lift UP
    else PickOffExit (공차 이탈 시)
        AGV->>AGV: Lift DOWN
    end
    AGV->>Equip: 전진 진출 (Forward Low Speed)
    Equip->>Sensors: Mark Sensor 감지 (진출 지점)
    AGV->>AGV: MarkStop & Stop
    Note over AGV: 진출 완료
    end
```

## 3. 주요 차이점 요약
- **Buffer**: 진입 시 `Left 180 Turn`, 진출 시 `Right 180 Turn`을 통해 방향을 반전시켜 작업 후 원래 경로로 복귀합니다.
- **Equipment**: 별도의 회전 없이 `Backward` 진입, `Forward` 진출을 수행합니다.
- **Common**: 진입 시에는 항상 리프트를 내린 상태(`Lift DN`)를 유지하며, 설비 내부에서의 정밀 정지는 `Mark Sensor`와 `MarkStop` 명령을 조합하여 수행합니다.
