A few co-workers and I at NASA's Marshall Space Flight Center (MSFC) have been working on a small formation flying project over the last 9 months.  Our project is to demonstrate formation flying using a decentralized mesh network first by flight testing the concept with small UASes (nearly standard 3DR quads), and then simulating the same system being used on satellites.  We had a very successful demo flight last week with 5 quads flying, and I thought now would be a great time to show our results and share our work with the sUAS community.

We've been using 3DR UAS systems for several years now on several projects including an internal NASA search and rescue unmanned system competition and to provide aerial footage of test flights of the Mighty Eagle lunar lander testbed at MSFC.  

For this new project, we took the standard quad frame and electronics with Pixhawks as the flight computer and added to that a Beaglebone Black to run our formation logic and a pair of XBee radios to provide the formation communication between our vehicles (which we call nodes).  Each node communicates using its two XBees which are each running a separate mesh network for redundancy.  The nodes exchange state information that they receive from the Pixhawks (GPS position, etc.) and then use that information to determine where they are in the formation and where they need to go.  Since they all share their information, there is no one master or leader of the formation.  

We have two primary modes.  In the first mode, the vehicles are provided a GPS location and a formation shape which they then fly to and establish a formation.  We can change the formation position and shape by sending an update from our ground control station (GCS) using some custom GUIs we developed. In the second mode, we can designate one vehicle as the leader of the formation, and the other nodes will automatically begin following that leader as we move it either via RC or from our GCS.  

We've always gotten great help and feedback from this open source community, so we just wanted to return the favor and share the work we've been doing. Here's a video of our latest flight of 5 vehicles.  The video has overlays of two of our custom GUIs as well as the audio from our ground control team.  


Views: 6994

Comment by Jason Short on July 7, 2014 at 4:02pm


3D Robotics
Comment by Chris Anderson on July 7, 2014 at 4:04pm

So cool! Thanks for sharing -- is the code posted anywhere or any plans to integrate this into the main codebase? We'd be happy to help!

Comment by Chris Becker on July 7, 2014 at 4:25pm


We haven't yet posted the code anywhere, but we hope too soon. We've traded some emails with folks at 3DR already, and we'd love to integrate our code into the main codebase at some point. Most of our custom code is currently running on the Beaglebone because we wanted to keep the required mods to the ArduCopter code at a minimum. But there's nothing fancy going on and no reason most (probably all) of our code couldn't run directly on the Pixhawk.

3D Robotics
Comment by Chris Anderson on July 7, 2014 at 5:20pm

Great to hear. Actually, we're going to be supporting the Beaglebone Black, too, so we might be able to take it as is!

Comment by Garrick Merrill on July 7, 2014 at 5:37pm

Here's a couple pics of the quads we're using.  Like Chris said, they're pretty standard quads with a small payload box underneath that carries our Beaglebone stack.  We designed a custom cape for the BeagleBone Black that can carry the two Xbees as well as provide a DF13 connector for the serial connection to the Pixhawk.

Comment by Julien Dubois on July 8, 2014 at 3:43am

That rox!

Thanks in advance if you share the code

Comment by Bill Piedra on July 8, 2014 at 6:32am

Yes, please share the code - that's fantastic.  I have been toying with the same idea for 4G/LTE telemetry instead of XBee.  For 4G/LTE Telemetry for Pixhawk I'm using a Raspberry Pi and verizon 4G/LTE dongle.  I am also testing a new system called DroneDeploy which is basically the same thing, but also with a very nice, but simple, web application for building missions.   

Comment by BayAreaCrasher on July 8, 2014 at 8:47am

This is very cool.  Congrats!

Comment by Hclmed on July 8, 2014 at 1:18pm

Is this based entirely on GPS? If so, is its tolerance limited to the 1 meter or so accuracy of GPS?

Comment by Chris Becker on July 8, 2014 at 1:41pm


Yes, currently all the positioning is based on GPS, so like you guessed, we keep the spacing among the vehicles greater than a tolerance that we trust the GPS, maybe about 1 to 3 meters.  We've discussed using some other sensor for finer-grained relative distancing between the vehicles but haven't yet explored that option.


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service