This report contains the code behind a Drone Delivery system innovated in fulfilment of the Institute Technical Summer Project organised by the Institute Technical Council of IIT Bombay.
- Creating a complete Drone Delivery system which can be deployed. Currently the system only caters to the IIT Bombay campus but there are plans to scale it to larger areas in future.
- Development of a website which can be used to initiate deliveries and track them.
- Integrating the input from website with the drone network and give corresponding instruction to the drone.
- The Drone system is present in the Drone folder.
- The Website codebase in present in the website folder.
- The world folder has a approximate 3-D model of the Indian Institute Of Technology Bombay campus. The other folders are not of much importance
Below is a basic schematic of our system

- Clone the repository.
git clone https://github.com/ShubhamGupta15/ITSP-Drone_Delivery.git
- To install ROS, Gazebo, mavros, mavlink run the script ubuntu_sim_ros_melodic.sh.
cd ./ITSP-Drone_Delivery
bash ubuntu_sim_ros_melodic.sh
- Clone px4 Firmware in catkin_ws/src using
cd ~/catkin_ws/src
git clone https://github.com/PX4/Firmware.git --recursive.
- Install rosbridge_suite from http://wiki.ros.org/rosbridge_suite.
- Add a folder named offb in catkin_ws/src.
mkdir ~/catkin_ws/src/offb
- Replace the contents of your offb package with the contents of this offb-single vehicle for single drone system and with offb-multi vehicle for multi drone system..
- Copy the launch_rosbridge.sh launch-common.sh and launch-offb.sh in the ROS folder to your catkin_ws root.
cd ~/catkin_ws
cp launch_rosbridge.sh launch-common.sh launch-offb.sh
- Check and modify permisson of all files to executables.
chmod +x launch_rosbridge.sh
chmod +x launch-common.sh
chmod +x launch-offb.sh
- From the worlds folder, add all the contents to both catkin_ws/src/Firmware/Tools/sitl_gazebo/worlds, and sitl_gazebo/models.
- At the end of the line 8 change the world file to iitb2.world from empty.world
cd ~/catkin_ws/src/Firmware/launch
gedit multi_uav_mavros_sitl.launch
- Run catkin build. (not catkin_make)
cd ~/catkin_ws
catkin build
- Install QGroundControl.
- Setup Done!!
The website is based a Django backend along with fontend using HTML,CSS and Javascript.
To see how the setup works see the website instructions
- First launch the rosbridge server using the launch_rosbridge.sh.
cd ~/catkin_ws
./launch_rosbridge.sh
- In a new terminal launch the ROS setup using launch-offb.sh
./launch-offb.sh
- Run QGroundControl.
- Start a Django sever in another terminal. Type the IP 127.0.0.1:8080 in the browser. This will take you to the home page.
- Fill the delivery form and submit.
- The simulation and the QGroundControl will recieve commands and the misson will run.
Here is an example of our system running: https://drive.google.com/file/d/15LzuOwKoyH1I0P72AiTNuyBkBPTJ-sk4/view?usp=sharing
Fair use of ubuntu_sim_ros_melodic.sh from dev.px4.io