Collaborative Target Search with a Visual Drone Swarm: An Adaptive Curriculum Embedded Multi-stage Reinforcement Learning Approach
Official project website for the paper "Collaborative Target Search with a Visual Drone Swarm: An Adaptive Curriculum Embedded Multi-stage Reinforcement Learning Approach"
If you are using the code, please give us a star 🌟 and cite our paper:
@ARTICLE{10322867,
author={Xiao, Jiaping and Pisutsin, Phumrapee and Feroskhan, Mir},
journal={IEEE Transactions on Neural Networks and Learning Systems},
title={Collaborative Target Search With a Visual Drone Swarm: An Adaptive Curriculum Embedded Multistage Reinforcement Learning Approach},
year={2023},
volume={},
number={},
pages={1-15},
doi={10.1109/TNNLS.2023.3331370}}
The updated video refers to the [https://youtu.be/jnVLEBWte1U].
Table 1: Target Distribution for Env 2, Unit: m
Position 1 | Position 2 | Position 3 | Position 4 | Position 5 | Position 6 | Position 7 | Position 8 | Position 9 | |
---|---|---|---|---|---|---|---|---|---|
x | 2.88 | 0.25 | 1.84 | -0.45 | -1.78 | -2.38 | -2.38 | 2.08 | 2.05 |
y | 4.63 | 4.29 | 6.33 | 6.48 | 6.47 | 5.41 | 1.81 | 1.49 | 3.46 |
z | 0.27 | 0.24 | 0.24 | 0.20 | 0.18 | 0.19 | 0.26 | 0.31 | 0.28 |
pip install -r requirements.txt
to set up the dependencies and software requirements. This result of running this command does not include ROS installation. This requirement is tested on an AMD64 architecture device running Ubuntu 20.04 and ROS Noetic.- Connect the computing center to the same network used by the OptiTrack Mocap Server. It is recommended that the ethernet cable is used for this connection to avoid using multiple wireless adapters.
- Configure Motive application on the OptiTrack Mocap Server to stream data related to drones to address location
192.168.1.100
- Edit
sample.launch
default launch file ofvrpn_client_ros
(useroscd vrpn_client_ros && cd launch
to navigate to the launch file) to change the IP address from localhost to192.168.1.100
, used by the OptiTrack Mocap Server - Connect a DJI Tello Edu drone using wireless adapter directly or docker container (please refer to the extra instruction)
- Navigate to the repository folder
- Type in the terminal
cd Control
- Type in the terminal
python3 single_drone_control.py
for controlling a single drone orpython3 collaborative_two_drones_control.py
for controlling two drones using one computing device for each drone
-
1.1. VisualDrone_single_drone.onnx: Trained neural network model file for single drone target search in ONNX format
1.2. VisualDrone_collaborative_drones.onnx: Trained neural network model file for collaborative two drones target search in ONNX format -
2.1. single_drone_control.py: Python script file for controlling the single drone target search using the model in (1.1)
2.2. collaborative_two_drones_control.py: Python script file for controlling the collaborative two drones target search using the model in (1.2)
- Ubuntu 18.04 or 20.04
- AMD architecture device (Strongly recommended, but not required)
- ROS Melodic or Noetic
- TelloPy library (https://github.com/hanyazou/TelloPy)
- PyAV library (https://github.com/PyAV-Org/PyAV)
- vrpn_client_ros ROS 1 Package (http://wiki.ros.org/vrpn_client_ros)
- ONNX Runtime
- Torchvision
- OpenCV
- PIL library
- NumPy