https://www.youtube.com/watch?v=oH9C43To3Dk
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.
UserCode.pde
Comments
This is very cool. Congrats!
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.
That rox!
Thanks in advance if you share the code
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.
Great to hear. Actually, we're going to be supporting the Beaglebone Black, too, so we might be able to take it as is!
Chris,
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.
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!
Awesome!