A Software Testbed for UAV Edge Computing Applications
SkyBed is an open-source software testbed designed to facilitate the development and testing of edge computing applications for Unmanned Aerial Vehicles (UAVs). It provides a scalable and flexible framework for simulating UAV movements, cellular network interactions, and edge-computing scenarios, enabling researchers to evaluate applications, such as collision avoidance, AI image processing, and more.
- Virtual UAV Simulation: Simulate UAV movement with customizable paths, speeds, and behaviors.
- Cellular Network Emulation: Model latency, throughput, and packet loss based on UAV proximity to virtual cell towers.
- Edge Computing Scenarios: Test edge-based applications with real-time or precomputed network parameters.
- Collision Detection: Detect UAV collisions efficiently using a ball-tree-based algorithm.
- Scalability: Simulate hundreds of UAVs simultaneously using containerized vUAVs.
- Repeatability: Create repeatable experiments with configurable scenarios.
- Visualization: Monitor UAVs and cell towers on an interactive, browser-based map.
- Operating System: Linux (WSL2 may work for Windows users)
- Dependencies:
- Docker
- Python 3.11+
- Poetry
- For 6G NeXt Integration:
- Set up the following:
- 6gn-functions
- 6gn-ingester
- tinyFaas (requires modifications to support build tools)
- Set up the following:
- Install Python Dependencies:
poetry install
- Enable Network Configuration without Superuser Privileges:
sudo setcap cap_net_admin+ep /sbin/tc sudo setcap cap_net_raw,cap_net_admin+ep /bin/ip
- Build Docker Images (this may take a while):
docker build -f ns3_lena.Dockerfile -t ns3_lena . docker build -f uav.Dockerfile -t uav .
Follow the instructions in the 6gn-functions repository to configure the anti-collision system.
When running SkyBed with the following command:
skybed --help
Available options will be displayed:
Usage: skybed [OPTIONS] [SCENARIO_FILE] [TEST_SYSTEM_IP]
╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ scenario_file [SCENARIO_FILE] [default: schoenhagen_near_collision] │
│ test_system_ip [TEST_SYSTEM_IP] [default: localhost] │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Open your browser and navigate to:
The schoenhagen_many_drones
scenario simulates 200 UAVs flying near Schönhagen Airport to test collision detection and network performance under heavy load.
To run this scenario:
skybed schoenhagen_many_drones
Additional scenarios are located in the skybed/scenarios directory. To create a custom scenario:
- Copy an existing file from skybed/scenarios/.
- Edit the UAV paths, speeds, or network configurations to match your requirements.
SkyBed was developed as part of a Master's thesis at the Technische Universität Berlin. The thesis can be read here.