Beginner, basic questions for autonomous operation


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!

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • Hi

    I'm also working on this exact same problem, I'm working with he University of Agder in Norway, I have created an AI which works well in simulations for autonomous flight, and now the next step is to get hardware control over the device. I have written a piece of C# communicator which well works as well as gravity in space. so I'm moving over to because i actually figured out what ROS means and that fixed a lot of goggling. I'm doing the 3rd choice from your list and its going to run on a raspberry for the moment, might move over to something stronger if the AI proves to demand it.

    if you want i can keep you in the loop on progress made, if you keep me in your loop.

  • hi people,

    i am exactly at the same point as you are, too.

    we have a hexacopter here equipped with a pandaboard additionally. they communicate via mavlink and ros very well, but now i don`t know what to do to get my copter autonomous. i was wondering if anybody could explain some steps how to go on and what one could do to go on if ros and mavlink is running.

    the question is if it is possible to send a message via ros for example "start" and the copter starts and holds position at a hight of 3m for example.

  • I am inclined towards the most appealing option i.e. #3.

    I am also working on the same thing. Have my quad up n flying but now i need it to do autonomous stuff.

    Reason i belv #3 is most appealing is that, the inner loop of stabilization and quad control should be left to the ardupilot without taxing it any further. I am more than glad for the ardupilot doing the polling of sensors, RC receiver and wouldnt want it to be overburdened. Using something such as an SBC/raspberry/panda/gumstix or at best an android phone is going to be awesome. Anyway my immediate aim is to have something that can support rapid development under ROS. Keep posting ur findings. All the best.

This reply was deleted.