시나리오 내용 반영

This commit is contained in:
KIM SU BO committed 2026-10-08 16:43:48 +09:00
1 parent d9287de729
commit 350bb92bf9
270 files changed
+198867

No files matched your search

+59
View File
@@ -0,0 +1,59 @@
# 🚀 드론 5대 군집 편대 비행 시뮬레이터 (5-Drone Swarm Formation Simulator)
Three.js 3D 그래픽 엔진과 Python 백엔드(Starlette + Uvicorn + WebSockets)를 연동하여 **드론 5대(리더 1대 + 윙맨 4대)**의 군집 편대 비행을 마우스로 실시간 조종하고 관제할 수 있는 고성능 시뮬레이터입니다.
---
## 🌟 드론 5대 군집 구성
| 콜사인 | 명칭 | 색상 | 역할 |
| :----------- | :----------- | :------------------- | :------------------------------------ |
| **ALPHA-01** | `VIPER-01` | **Cyan (#00f0ff)** | 편대장 / 리더 드론 (마우스 목표 추종) |
| **ALPHA-02** | `GHOST-02` | **Pink (#ff0055)** | 윙맨 1 (우측 내측 Starboard Inner) |
| **ALPHA-03** | `PHANTOM-03` | **Green (#00ff88)** | 윙맨 2 (좌측 내측 Port Inner) |
| **ALPHA-04** | `SPECTER-04` | **Amber (#ffb700)** | 윙맨 3 (우측 외측 Starboard Outer) |
| **ALPHA-05** | `SHADOW-05` | **Purple (#b026ff)** | 윙맨 4 (좌측 외측 Port Outer) |
---
## 📐 5대 군집 편대 모드 (Swarm Formation Modes)
1. **V 편대 (V-Formation)**: 리더를 정점으로 4대의 윙맨이 좌우 대칭 V자 대형 유지
2. **다이아몬드 (Diamond / Arrowhead)**: 리더(선두), 좌/우익, 중앙 후방, 후미 고공 경계 대형
3. **횡대 일렬 (Line Abreast / Side-by-Side)**: 5대의 드론이 좌우로 넓게 일렬 횡대 대형 유지
4. **종대 직렬 (Column / Tandem / Trail)**: 5대의 드론이 리더 뒤로 일렬 종대 추종
5. **군집 선회 (Swarm Orbit)**: 4대의 윙맨이 리더 주위를 90도 간격으로 3D 나선 회전 선회
6. **사선 편대 (Echelon Right)**: 우측 45도 대각선 사선 대형
---
## 🎮 실행 및 조종 방법
### 로컬 환경 실행
```powershell
# sample/DRON 디렉토리에서 실행
.\run.bat
```
또는
```powershell
python app.py
```
브라우저에서 **`http://127.0.0.1:8000`** 접속
### ☁️ Google Colab 환경 실행
1. [drone_simulation_colab.ipynb](file:///d:/edunlab/milicontent2/sample/DRON/drone_simulation_colab.ipynb) 파일을 Google Colab에 업로드합니다.
2. 1단계 ~ 3단계 셀을 순서대로 실행합니다.
3. 3단계 실행 시 출력되는 **Cloudflare 터널 링크**를 클릭하면 별도 포트포워딩 없이 브라우저에서 3D 시뮬레이터가 실행됩니다.
### 조종 키
- **마우스 클릭 / 드래그**: 3D 공간 상에서 리더 드론의 목표 비행 위치 지정 (나머지 4대의 윙맨이 편대를 유지하며 자동 추종)
- **마우스 휠 / `W`, `S` 키**: 군집 비행 고도(Altitude) 상승 / 하강
- **숫자키 `1` ~ `4`**: 카메라 모드 전환 (1: 군집 궤도뷰, 2: 리더 추적뷰, 3: FPV 조종석, 4: 편대 프로필)
- **`M` 키**: 드론 엔진 사운드 On/Off
- **`Space` 키**: 착륙 패드 중앙으로 위치 초기화