I'm studying the viability of arducopter drones (quads or hexas) for research purposes at my lab. I've been reading about it and I have some final questions left. I hope some of you can clarify my doubts!
The first goal is to have autonomous operation, using an on-board camera. The second one is to perform multi-vehicle cooperation. In any case, we want to use the APM capabilities and only issue movement commands (i.e. nothing low-level control-related), and using ROS in particular if possible.
Given, that, I'm trying to clearly understand how one can have an algorithm issuing orders to the drone. I see three approaches, and this is where I would want confirmation or refutation of my understanding:
1) Directly modify the code that controls the drone, adding any needed logic. Showstoppers: spare CPU, no drivers for extra hardware? (e.g. wifi that we want to use later)
2) If equipped with telemetry kit, somewhat communicate with it to fetch data and relay orders to the robot. Not appealing when moving to multi-vehicle since we don't want to depend on base stations attached to each drone. Also, not sure if readily doable.
3) Most appealing: having something else on-board (gumstix, raspberri pi?) that communicates somehow (MAVlink?) with the arduino.
I'd like to know if someone else is going with option 3), because I think there's a mavlink node for ROS. Also, if I'm missing some other options.
Thanks in advance!