How To Control Multi Ardrone with One PC?
My name is Zaman, i live in Depok, West Java, Indonesia. Now I have six parrot ARDrone's in lab for my research, and this is so cool! :)
Currently, me and my team want to make all of this ARDrone moving autonomously and doing some collaborative action with another drones (swarm concept) to accomplish a particular object. We use ROS (Robot Operating System) specifically Ardrone Brown for the implementation.
My question is can i control some drones with one PC as the main controller? If not any, do you have some idea for doing this?
Thanks a bunch for helping me.
RE: How To Control Multi Ardrone with One PC? - Added by Nanu Swamy 1116 days ago
Interesting... Unless you change the firmware running on the Drone to accept and process "broadcast" messages, I don't think there is a way. Since the communication uses TCP sockets, with a unique "wifisid/ipaddress/port" combo for each drone there is no easy way to control multiple drones with one master. Checkout http://ardrone.parrot.com/parrot-ar-drone/en/gpl
One way I can think of without firmware changes - is to have a one master controller delegate the job of controlling each drone to a set of "slave" machines each of which in turn manage a single drone based on the masters command. So the master basically works with a set of slave machines to control a platoon of drones. The slave needs to constantly update the master with the status of each of the drone it is managing and receive commands that have to be sent to the drone...
With multiple 802.11 radio adapters, you may be able to somehow do things.
Also checkout the defunct Microsoft research project - Virtual-Wifi @ http://research.microsoft.com/en-us/projects/virtualwifi/ (there is a link in there to download software)
If you are thinking of such a project, I think you may be better of building your own quadcopter, and using a different communication mechanism that has better reach than 802.11. Google around you will find a few...
Have you looked @ http://code.google.com/p/arducopter/wiki/ArduCopter ?
RE: How To Control Multi Ardrone with One PC? - Added by Mark Mellar 1116 days ago
Hey there, we're also trying to utilize these gadgets for swarm intelligence research, we aren't quite there yet but here's where we are.
I don't know anything about ROS, but the method we've been investigating has been trying to modify each drone's internal wifi settings to make them connect to a router rather than setting up their own ad-hoc network. The drones could then each have their own unique static i.p. or you could do something fancy with DCHP to enable commands to be sent to each individual drone from a single host computer (or several hosts I suppose, or even between the drones which would be interesting for implementing a fully self organizing swarm).
We're currently stalled on this though as I managed to break one of the drone's wifi, basically it no longer sets up a network so we can't use it at all. We aren't going to risk more of the drones until we figure out how to fix the ones we break (if anyone has any suggestions they'd be appreciated.)
My 2 pence, let us know how you get on :)
RE: How To Control Multi Ardrone with One PC? - Added by pareshkumar brahmbhatt 1083 days ago
Hey Mark Mellar,
Do you have a tutorial or something that you could point me to so I can get started on modifying my drone's internal settings? I wanted to see how it does internal flight stabilization, in hopes to modify it to make it better, or implement frontal and bottom optical flow flight stabilization as the Zagreb R&D group is doing. I am in favor of trying multiple USB wifi adaptors. Just plug in a USB hub which will require external power and put the required amount of USB wifi adaptors on it, though I have not tried it myself, it seems like the most no invasive way.
Concerning the broken drone, if it's a soft break then have you tried using the Serial interface underneath and pushing new firmware to it? Did you try holding down the unpair and reset buttons for 30 seconds? I usually to revert back to 1.1.3, then update it from there.
Maybe try USB wifi dongles and modify the ROS packages ARDroneLib files in /home/paresh/ros_workspace/brown-ros-pkg/experimental/ardrone_brown/ARDroneLib/Soft/Build/custom.makefile to allow you to send commands to each different drone. Of course this would mean having "ardrone_brown ardrone_driverXX" XX represents each unique instance of a ROS node talking with its respective AR Drone.
If you have any interest, I have the AR Drone working in Ubuntu 12.04 and ROS Fuerte. With USB Gamepad teleop control and Camera toggle working in the drone_brown package. I am now trying to make a Glade GTK GUI that will display all the sensor data in a manageable way similar to how Steven Hobley has with his C# project for the AR Drone.
Drexel current progress using Brown U's package - http://dasl.mem.drexel.edu/wiki/index.php/Main_Page#AR_Drone_and_ROS_.5BKarthik_Y.5D
Steven Hobley's C# AR Drone Controller - http://www.stephenhobley.com/blog/2010/11/28/c-sdk-for-ar-drone-now-available/
[Attached file is an image of Steven Hobley's GUI in his C# project.]
My 2 cents
images.jpg (10 KB)