- Final Project Report:
/demo/P76124168_物聯網_期末提案.pdf
This is a simulated drone patrol and tracking system based on OM2M.
The simulation environment generates a person (detection target) who wanders around the map and periodically leaves the map, only to respawn after a certain interval.
The patrol drones begin patrolling when all drones are on standby. If a drone detects the target, it will briefly take over the tracking mission until the tracking drone successfully follows the target. The other patrol drones will then return to base and wait on standby.
The tracking drone usually stays at the base and starts its tracking mission only when a patrol drone detects something unusual. It continues this tracking mission until the target leaves the visible range.
- Docker
- python3
- node.js
-
Install python dependencies
-
pip install -r requirements.txt
-
-
Run OM2M CSE, and wait for it to be ready
-
docker-compose up
-
-
Run simulated enviroment
-
cd simulated_enviroment python app.py
-
-
Run IN-Server
-
cd in_server python app.py
-
-
Run Track Drone API (AE)
-
cd drone python track_drone_app.py
-
-
Run Patrol Drone API (AE)
-
cd drone python patrol_drone_app.py
-
-
Run Frontend
-
cd gcs-application npm install npm run dev
-
- 3000: Frontend
- 8122: Simulated Enviroment
- 8125: Patrol Drone API (MN-AE)
- 8126: Track Drone API (MN-AE)
- 8127: IN-Server (IN-AE)
- 9332: IN-CSE (8080)
- 9333: Patrol-Drone-MN-CSE-1 (8282)
- 9334: Patrol-Drone-MN-CSE-2 (8282)
- 9335: Patrol-Drone-MN-CSE-3 (8282)
- 9336: Track-Drone-MN-CSE-1 (8282)
.
├── README.md # This file
├── config.py # Configuration file
├── demo # Demonstration files
│ └── github-demo.gif
├── docker-compose.yml # Use to run OM2M CSE
├── drone # Drone API
│ ├── domain # Drone domain
│ │ ├── SimulationMap.py # Simulated Environment Controller
│ │ └── drone
│ │ ├── BaseDrone.py
│ │ ├── PatrolDrone.py
│ │ └── TrackDrone.py
│ ├── patrol_drone_app.py # Patrol Drone API (MN-AE)
│ └── track_drone_app.py # Track Drone API (MN-AE)
├── format.py # Python code formatter
├── gcs-application # Frontend
│ ├── README.md
│ ├── index.html
│ ├── package-lock.json
│ ├── package.json # Frontend dependencies
│ ├── public
│ │ └── favicon.ico
│ ├── src
│ │ ├── App.vue
│ │ ├── assets # Icons
│ │ │ ├── alarm.png
│ │ │ ├── check.png
│ │ │ ├── embassy.png
│ │ │ ├── info.png
│ │ │ ├── logo.png
│ │ │ ├── logo.svg
│ │ │ ├── patrol-drone.png
│ │ │ ├── suspicious.png
│ │ │ └── track-drone.png
│ │ ├── components
│ │ │ └── HelloWorld.vue
│ │ ├── layouts
│ │ │ └── default
│ │ │ ├── AppBar.vue
│ │ │ ├── Default.vue
│ │ │ └── View.vue
│ │ ├── main.ts
│ │ ├── plugins
│ │ │ ├── index.ts
│ │ │ └── vuetify.ts
│ │ ├── router
│ │ │ └── index.ts
│ │ ├── store
│ │ │ ├── app.ts
│ │ │ └── index.ts
│ │ ├── styles
│ │ │ └── settings.scss
│ │ ├── views
│ │ │ └── Home.vue
│ │ └── vite-env.d.ts
│ ├── tsconfig.json
│ ├── tsconfig.node.json
│ └── vite.config.ts
├── in_server # IN-Server (IN-AE)
│ ├── app.py
│ └── routes # blueprint
│ ├── enviroment.py
│ ├── patrol_drone.py
│ └── track_drone.py
├── om2m-configuration # OM2M CSE configuration files
│ ├── in-configuration # IN
│ │ └── config.ini
│ └── patrol-drone-1-configuration # MN
│ └── config.ini
├── requirements.txt # Python dependencies
├── simulated_enviroment # Simulated Enviroment
│ ├── app.py
│ ├── controller
│ │ └── human_route.py
│ └── domain
│ ├── Human.py
│ └── SimulationMap.py
└── utils # Utilities
└── Om2mRequestSender.py
Government icons created by Freepik - Flaticon
Suspicious icons created by Freepik - Flaticon
Drone icons created by Freepik - Flaticon
Drone case icons created by Freepik - Flaticon
Alarm icons created by Freepik - Flaticon