There are loads of open source quadcopters out there, but they're all a bit too DIY for me--I just want something cheap that works right out of the box. I love the Parrot AR.Drone, which fits that bill, but it's not really a UAV, because you can't give it waypoints and it doesn't know where it is since it doesn't have GPS.
Adding GPS to the AR.Drone would be easy if you could get access to the datastream the AR.Drone is sending back via WiFi, and there is indeed a physical port that could allow that, but Parrot has not enabled that and they don't want to emphasize that possibility for fear that the AR.Drone might get regulated as a UAV, rather than a flying toy.
So rather than wait for them to turn that on, I decided to take matters into my own hands. As you can see above, I just added an ArduPilot, a GPS and an Xbee to the AR.Drone. They're powered by a tap off the balancing connector of the quad's battery, but otherwise they don't have any connection to the onboard electronics.
(Note: you don't really need ArduPilot for this--you could probably connect the GPS right to the Xbee--but I'm using it right now to parse the GPS data and just send down the essentials, along with providing a power regulator for the Xbee and GPS module. But going forward, having ArduPilot onboard will let us add other sensors and do more onboard processing.)
All this setup does is send back GPS coordinates to the ground station, with an Xbee at each end. But that's enough to turn the AR.Drone into a proper UAV, since Parrot has already released software that lets you control the AR.Drone from a PC. So all we need to do is modify that code to take the GPS telemetry in from the Xbee, compare that with given waypoints, and calculate a directional vector for the AR.Drone to fly to hit the next waypoint. Then that XYZ command can be sent back to the AR.Drone via WiFi using the Parrot data standard.
So in a sense, the AR.Drone handles the inner loop (stabilization) of an autopilot onboard, but the outer loop (navigation) we'll do from the ground station, along with image processing and other mission planning. Because the outer loop only needs to run at GPS speed (1Hz-4Hz), wireless latency isn't an issue.
Right now, the only official AR.Drone PC ground station is for Linux (here), which is a bit over my head. But now that the quads are getting out to developers, I'm sure someone will port that to Windows, at which point I can have a go at writing the software to read the incoming Xbee data from the serial port and turn it into flying commands to send back via WiFi.
Stay tuned....
Comments
I own an AR Drone 2.0 and I have achieved well over 100 feet in altitude here in North Texas where land still exists in wide open spaces. However, the limited range of wifi along with the drone's inability to broadcast its signal with any power allows only a max range of 300 feet - line of sight and that's with USB recording and possibilities of losing control of your drone. Even with an upgraded battery, once 30% kicks in - its time to head home ASAP as I have literally had my drone fall from the sky enroute back to home from that height. I was surprised I was still able to give it some minimal commands at 0% and the drone sputtered down to 50 feet or so before a quick plummet to 20 feet and then a fall to the ground. I have also had issues with Texans shooting it down with air rifles since they are supressed and have enough energy to knock the drone over the tilt parameters which in turn causes emergency shut off. It took the BB or pellet well enough that I can still fly it however. Check out tateconcepts channel on YouTube for more videos (and yes my boating or firearms videos too). - Brian
is max amp the only batt. upgrade
Why not use happykillmore-gcs Ground Control Station software as it should work with this hardware?
http://code.google.com/p/happykillmore-gcs/
If you program in Python (or Matlab or C), here is a little platform I created to allow you to auto-pilot the AR.Drone with a minimum of effort. You just write a single Python function (accepts image and navdata input, outputs nav commands), and my code does the rest.
- Simon
Hi Chris ,
today i write my first program on ardrone :) Hello World .. I compile it and it work ... I put a Urbi on it and i controll the drone by a simple telnet console ... Ardrone Hacked !!! I Think that it is simple to connect Navigation board and fly it autonomous ...