I am a doing my FYP in drone swarm anti collision algorithm.

The project aims to develop an algorithm to fly a minimum of 3 drones and here are the requirements:

  1. 1-the drones can identify the position of the other swarm members and keep a distance (anti collision) between them and the adjacent drone.
  2. The drones are to fly in different orientations like a horizontal formation or a vertical one.
  3. The drones are to fly together as a swarm and either maintain the flight formation during the flight or reposition after reaching destination.
  4. The swarm is to adjust the distance between its members autonomously as in (every drone calculates the distance to its neighboring drone and plan its action position itself accordingly based on a preprogrammed distance

I just started and my first step is to find a method for each drone to calculate the distance between it and the next drone. I have been doing research and I found out that (Ad-hoc networking) gives the ability to calculate the distance between two nodes using the strength of the Wi-Fi signal. However, I could not find a proper research paper to identify how to use that system in a drone swarm and how to obtain the data to be used in the calculations.

so my question is: Is using ad-hoc network the way to go in this project or is there a better method? and in addition, how to actually implement it n a drone swarm, i.e. what type of sensors to use?

To emphasize it more, what is the best reasonable method for a drone swarm to have the ability to locate its members and measure/keep a distance between its members?

Additional information about my project:

  • The project aims to implement the algorithm in a real 3 drone swarm system. However, due to budget issues the project might end up being only a simulation.
  • There are a lot of missing variables in the information I provided , such as: how to control each swarm (each drone individually or leader/follower method), what type of drone/controller/autopilot to use, and other things I can't think of yet. However, my concern at the moment is to identify the method for the swarm to keep a certain distance between them thus having some sort of method to locate each drone in position and distance from the adjacent drone.
  • I will have more follow up questions as I proceed in the project
  • I am doing Final year Mechatronics Engineering
  • $\begingroup$ I think it is important (-ish) to know what the drones will do at the destination, or what they have to perform on the way. To just drop some ballast they can run autonomously, to pick up a heavier object, then leader / follower will work better. $\endgroup$
    – virolino
    Oct 16, 2020 at 12:54
  • $\begingroup$ Thank you for your reply. The drones in my project don't do any functions. It is purely about creating a swarm that can fly together with the requirements I stated in the post. I believe the leader/follower method is preferred. Thank you again. $\endgroup$ Oct 17, 2020 at 15:03

1 Answer 1


It is widely known that in many (most) living societies (human, animal, marine...), individuals prefer to be parts of teams, which inherently have leaders.

In the case of your project, the situation is similar. The leader dictates most of the (flight and mission) parameters for the swarm. The followers:

  • make sure to stay within a certain range from the leader;
  • will make sure to not collide with other team members, or with the environment.

With a minimal effort, you can build redundancy within the swarm, so in case a drone fails to be a leader, another drone will automatically take leadership.

About the technical way to measure the relative positions, I cannot really help right now.

Comment: maybe the easiest would be to have GPS sensors on the drones - the kind of sensors that are synchronized AND of high precision. Unfortunately, they would be expensive beyond any reasonable budget.

  • $\begingroup$ Thank you for your reply. I agree on the Leader/Follower approach. In term of technical methods. I shifted my aim to run this project using Arduino, since I am more familiar with the platform. I have done research on building drones using Arduino which is not hard to find on the internet. Also on communication methods and I found NRF24L01 with clear instructions on how to communicate between two Arduinos. I am still stuck in the method of measuring the distance and locating the position between the follower and the leader. I have found that signal strength is a poor indicator of distance and , $\endgroup$ Oct 17, 2020 at 15:08
  • $\begingroup$ , and that acquiring a high precision GPS is either impossible or expensive. That is why I am thinking of using something like (MPU-9250 Nine-Axis (Gyro + Accelerometer + Compass) MEMS MotionTracking™ Device) in order to obtain information about distance and position between leader and follower. My initial thought is, if I obtain the values of orientation from each drone, then the leader sends the values to the follower and an algorithm is performed to calculate the distance and position, thus the command is executed to position the follower drone based on specific distance and orientation. $\endgroup$ Oct 17, 2020 at 15:11
  • $\begingroup$ Now this is an early research and I don't know if I am able to achieve such goal with said equipment. The image of building each drone and communicating between them is a little bit clearer in my head now. I am yet to figure out how to calculate the distance and position. The NRF24L01 has 6 addresses which means it can connect with 6 different NRF24L01's as senders and receivers. Although I am going into the path of Leader/Follower approach, I believe using this method will create a variable leader swarm with ability of each drone to assume the leader position. However the coding will be ,, $\endgroup$ Oct 17, 2020 at 15:15
  • $\begingroup$ ,will be enormous. One last concern is that I don't know how good is Arduino in handling all these tasks. with all the delay times and loops I can't determine if Arduino will be capable to operate the system. If you have a comment on this particular section that would be appreciated. $\endgroup$ Oct 17, 2020 at 15:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.