---
# System prepended metadata

title: 程式架構介紹

---

# 程式架構介紹

## 大綱
UAV-OS 使用到 multiprocessing 與 multithreading 的架構，好讓程式在運行多個功能時，可以維持其穩定度與效能。以下會跟各位一一介紹每一個
Process代表的功能，以及Code的資料夾結構。

## 資料結構
![](https://i.imgur.com/zwfubT9.png)

打開專案檔，你應該會看到類似的架構，現在為各位一一介紹一下：
* `UAVCore.py`：作業系統核心，也是程式的啟動檔。所有Process會從這個地方被Start，也會在這個地方Join(結束)。未來也會加入錯誤偵測與OS Service 監控的工作。 
* classes：所有城市的類別定義，都會放在這裡，通常是重複使用到的物件類別，才會特別放在這個資料夾中
* module：常用、公用程式，都會放在這邊
    * algo：主要放置演算法用，例如ArUco Marker的辨識演算法，就會出現在這個資料夾中
* Process：定義每個系統Process，主要分為以下幾個
    * `AutoFlightProcess.py`：無人機自動降落的演算法
    * 
