Introduction to drone Swarming with Ardupilot

I recently have been exploring and learning about ardupilot’s multi drone control features. I went ahead and put together a few video tutorials that go over the following

I know that there is a lot more you can do with swarming, but I believe the above tutorials can be a good jumping off point for people starting to experiment with swarming.

each of the above tutorials have accompanying text tutorials on my github aswell, which you can find here

  • Simulating Multiple Drones With Gazebo
  • connecting multiple Drones to QGroundcontrol
  • Controlling Multiple Drones With MAVROS

I hope the above information is helpful!

4 Likes

Very informative, thanks.
Please note I added a screen capture of your video to make the blog more catchy.

1 Like

Very nice !
We have seen this some time ago and were speaking about adding some part on the wiki to help newcomers !

Some tips :

  • to set the SYSID_THISMAV, we have now a --sysid cmdline option !
  • QGC support multicast connection, so using --mcast will be simpler than manually setting a output to 0.0.0.0:xyz
  • with more than 3 vehicles, that is better to not load mavproxy for performance: --no-mavproxy cmdline
  • --add-param-file to append a parameter file on loading instead of modifying vehicleinfo.py

There is also a swarm launcher on sim_vehicle.py that need some documentation :stuck_out_tongue_winking_eye:

I am looking to simulate about 500 drones or even more, I know running these much of ardupilot SITL instances does not look feasible on same machine, my current system starting to getting laggy after starting 16 SITL instances and even after that on my system there doesn’t seem any platform which is capable of simulation of more than 16 drones properly, right now I am using MQTT to exchange messages across multiple python scripts each running their own SITL instances, but these messages starting to get lag when running multiple SITL instances, that’s why this lag messed up the swarming logics and other stuffs but on actual drones things work properly, is there any way around doing simulations of 500 or more drones ? One way I can guess is running multiple SITL instances on multiple systems and exchange MQTT messages across AWS EC2 and then receive MQTT messages coming from multiple systems on a single system which will be running simulation platform like gazebo, blender or something else, but this setup is not practical and too expensive

I apologies. I actually made this post then went on vacation :laughing: These are all things I was completely unaware of! I am going to experiment with these features and update my tutorial once I get a handle on how they all work together!

I am also doing a project on Swarm Formation using Multi-agents control. My mathematical work is completed and also simulated on MatLab but as a point on the graph. I am having 100 followers and 1 leader in my swarm. Gazebo made me install it and have a try. it’s been just 2 days that I am working on ubuntu and gazebo stuff. huge thanks to @sprained_ankle for his videos. but as your target and mine seem similar, I would feel happy and honored if you can share some info with me about controlling each done independently, as you have done. in case you had time please do email me, at 16pwele4902@uetpeshawar.edu.pk

Best Regards.
Qaisar