IAFT – Indoor Drone Navigation

During my internship at Inspired Automation Future Technologies, I was involved in two projects. The first one was the RACECAR whereas the second was on the navigation of a quadcopter in an indoor environment.  The drone was to be exhibited in the robotics museum to demonstrate the uses of drones for agricultural purposes like pesticide spraying. This was my first hands-on experience with a drone. A pixHawk 2.4 flight controller was used on the drone and raspberry PI for the processing. Since the area of aerial robotics was completely new to me, I had to try various approaches before getting a fair amount of success. I will briefly describe the approaches used.

Above video demonstrates the autonomous take-off, localisation using an overhead camera and stabilised position hold of the drone. Those who have worked with drones would be aware that the PixHawk flight controller already has the provision to navigate the drone autonomously. Then what is the point of the whole project? The critical point to note is that these autonomous modes only work in outdoor environments in the presence of GPS, whereas our project was for indoor environments.

The first thing that came to my mind was to override the GPS check for the flight controller. This was a reasonably good approach, and many people had done this before. Disabling the pre-flight check of GPS would let you switch to stabilized mode but there was no source of localisation nor was there a proper source for altitude measurement as it was almost impossible to measure the height by using just the barometer readings in indoor environments. Thus we tried to use the Marvelmind Indoor GPS beacons. There were four stationary beacons and one dynamic beacon which was mounted on the drone. Now the position could be easily known in three dimensions. The problem was to integrate this localisation with Pixhawk. I was successful in integrating them and the stabilisation and position hold were working well. There was some issue with the navigation which was arising due to faulty yaw measurements. The interference was causing the compass to give inaccurate readings. Moreover, Marvelmind didn't have the feature to provide the orientation of the drone.

The Quadcopter!!
The Quadcopter!!
One with the Drone!!
One with the Drone!!

Thus the next approach used was based on localisation using an overhead camera. In addition to this, we removed the drone control with the help of Pixhawk. Only the sensor readings were taken from the Pixhawk. The Radio receiver channel was replaced by connections from a Raspberry Pi. We manually generated the PPM signals according to the situation. This approach was able to solve the previously faced issues as the feedback was orientation was also provided by the overhead camera. Here is a list of references which might be helpful to understand the project.


1 thought on “IAFT – Indoor Drone Navigation”

  1. Hello,

    Thank you very much for experimenting with Marvelmind Indoor “GPS”! I just came across this post 😉

    Let me help you with your future experiments and those fellow who could follow:

    – Yes, PixHawk has an internal magnetometer that must be disabled. Moreover, we always suggest not to use magnetometers indoor, because the magnetic field is heavily distorted indoor

    Of course we have had the option for Location+Direction. It is is named Paired Beacons:
    https://youtu.be/aBWUALT3WTQ?t=90 – we have had it for nearly three years and always suggest instead of magnetometers
    https://youtu.be/WHYWu9Xy2_k – customer’s drone flying autonomously based on the Paired Beacons

    We will be happy to answer your additional questions and help further.

    Kind regards,

Leave a Reply

Your email address will not be published. Required fields are marked *