Zihao-Felix-Zhou/UavNetSim
UavNetSim: A Python-based simulation platform for designing and testing communication protocols and control algorithms in UAV swarm.
What it solves
UavNetSim is a Python-based simulation platform designed to model and test UAV (Unmanned Aerial Vehicle) communication networks. It addresses the complexity of simulating cross-layer interactions—combining physical signal interference, MAC protocols, routing, and drone mobility—to evaluate network performance metrics like packet delivery ratio (PDR) and end-to-end delay.
How it works
Built on the SimPy library, the platform uses a modular architecture to simulate the entire network stack:
- Physical Layer: Models wireless channels, including Line-of-Sight (LoS) and signal interference (SINR calculations).
- MAC Layer: Implements protocols such as CSMA/CA, Pure ALOHA, and TDMA to handle channel contention.
- Network Layer: Provides various routing protocols, including DSDV, Greedy forwarding, and several Reinforcement Learning (RL) based approaches (e.g., Q-Routing).
- Mobility & Control: Includes 3D mobility models (Gauss-Markov, Random Walk, Random Waypoint), A* path planning for obstacle avoidance, and virtual force-based topology control.
- Energy Model: Tracks power consumption based on flight speed and communication activity.
Who it’s for
It is primarily for researchers and developers working on UAV-assisted wireless communication, flying ad-hoc networks (FANETs), air-ground integrated networks, and those developing AI-based routing or motion control algorithms for drone swarms.
Highlights
- AI Integration: Native support for Reinforcement Learning (RL) and other AI-based algorithms for routing and control.
- Cross-Layer Modeling: Simulates interactions from the physical layer up to the application layer.
- Visualization: Provides visual tracking of UAV flight trajectories and packet forwarding paths.
- Extensibility: Modular design allows users to easily plug in custom protocols or application scenarios.
Related
- Project
- Project
- Project
- Project
- Project