/Simulated-UAV-Patrol-and-Tracking-System

Drone Cooperation Simulated System: OM2M-Based System for Tracking and Patrol Missions

Primary LanguagePython

Simulated UAV Patrol and Tracking System

Youtube Video Demo

Youtube Demo video

GIF Demo

Demo GIF

Documentation

  • Final Project Report: /demo/P76124168_物聯網_期末提案.pdf

Introduction

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.

Pre-requisites

  • Docker
  • python3
  • node.js

How to run (Development)

  1. Install python dependencies

    •   pip install -r requirements.txt
  2. Run OM2M CSE, and wait for it to be ready

    •   docker-compose up
  3. Run simulated enviroment

    •   cd simulated_enviroment
        python app.py
  4. Run IN-Server

    •   cd in_server
        python app.py
  5. Run Track Drone API (AE)

    •   cd drone
        python track_drone_app.py
  6. Run Patrol Drone API (AE)

    •   cd drone
        python patrol_drone_app.py
  7. Run Frontend

    •   cd gcs-application
        npm install
        npm run dev

port

  • 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)

Structure

.
├── 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

Icon References

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

Info icons created by juicy_fish - Flaticon

Tick icons created by Freepik - Flaticon