This is a project to establish and execute a successful surveillance algorithm using multiple drones.
OS: Ubuntu 18.04
Gazebo: gazebo-9
ROS: ROS melodic
GCS: QGroundControl
Python: python3.6.9
-
Gazebo
Please note that installation link might be updated to a later version of Gazebo! -
ArduPilot
Recommended: Fork and clone the above repo! -
QGroundControl
Please note that we only require the installation for Ubuntu Linux!
In order to support a multi-drone framework, we need to make some additional changes -
- setup qgroundcontrol (QGC) to accept multiple vehicles -
- Open QGC
- navigate to the settings tab and click on Comm Links
- Click Add
- Fill in the vehicle TCP port as shown
- Repeat for adding new vehicles on different TCP ports
- Note: TCP ports for each vehicle are separated by a value of 100. Therefore, vehicle1 = 8100, vehicle2 = 8200, vehicle3 = 8300 ...
- Make a catkin workspace in your home directory -
$ mkdir -p ~/catkin_proj/src
$ cd ~/catkin_proj/src
$ git clone https://github.com/rbccps-iisc/AutonomousDrones.git
$ cd ~/catkin_proj
$ catkin build --cmake-args -DPYTHON_VERSION=3.6
-
Models
- The models used in the environment are located in models
-
Worlds
- The world files used for using these models in gazebo is located in worlds
-
Launch Files
- The launch files used for using these models in gazebo is located in launch files
-
Scripts
Run each of the following steps in separate terminals -
-
launch gazebo world:
$ cd ~/catkin_proj/src/AutonomousDrones
$ LaunchAPM.sh -
start ardupilot for multiple drones:
$ cd ~/ardupilot/Tools/autotest
$ ./multi-ardupilot.sh -
launch mavros for multiple drones:
$ roslaunch iq_sim multi-am.launch
-
start QGC:
$ ./QGroundControl.AppImage
- In QGC, navigate to the settings tab and click on Comm Links. Then, connect all three vehicles.
-
Running Scripts:
- Terminal 1
$ cd ~/catkin_proj/src/AutonomousDrones/Simulation/scripts
$ python3 drone1_mission.py - Terminal 2
$ cd ~/catkin_proj/src/AutonomousDrones/Simulation/scripts
$ python3 drone2_mission.py - Terminal 3
$ cd ~/catkin_proj/src/AutonomousDrones/Simulation/scripts
$ python3 drone3_mission.py - Terminal 4
$ cd ~/catkin_proj/src/AutonomousDrones/Simulation/scripts
$ python3 gcs_control.py
- Terminal 1