I'd like to create a platform to be able to test various visual based VTOL UAV control techniques for indoor environments. I've got some theoretical background in this field already and would like to move on to building a real flying platform. Yet I'd like to ask you guys to take a critical look at what I'm planning to do in terms of interface compatibility and feasibility in general.

I was planing to buy an ArduCopter Kit, a BeagleBoard-xM, a simple USB web camera to work with the BeagleBoard and an Optical Flow sensor board (either CYE8, ArPrMi or ADNS2620). I'm not planning to use a GPS or magnetometer in the first place, but if possible I wouldn't like to deny the possibility of doing so in the future. I need telemetry, so XBee is essential, as I'd like to use the ArduCopter's Ground Station.

All of the above OF sensors have an I2C interface (so they could go with the APM instead of magnetometer I suppose, but if there is another way I'd like to keep the magneto), those from Embedded Eye have SPI as well. There is an SPI interface on the BeagleBoard along with USB, UART and Ethernet. I'm not sure however how to interchange data between the BeagleBoard and the APM - would it be possible? I'd like to use the APM as the autopilot.


Any suggestions welcome.


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

Join diydrones

Email me when people reply –


  • it is better to use gumstix board small and light


  • Hi, I'm almost doing the same thing :)

    I'm planning to purchaise a new quadcopter (Ardupilot) and apply computer vision stuff on it , but the ardupilot has just few MHZ of processing ( 16MHz Atmega) so i have decided to let it for flight control and port all my vision stuff to some evaluation board (Beagle Board) and make BB control the navigation of the UAV so for example if quadcopter is tracking a green ball for example,so capturing frames and compute the appropriate direction from BB and then feed the conclusion ( the direction) to Ardupilot to navigate the Quadrotor. 

    But i have a problem , what is the best interfacing way that i may use to connect the two boards together ? is it USART ? or USB ? or something else ? and if i know the best way of interfacing, what do i need to edit in ardupilot code to make it accept commands from BB ?


    is there any progress in this point ?

  • I have been interested in using cameras to do image processing for navigation with a ARM linux SoC as well. First BeagleBoard-xM is a OMAP3 and for only 20-30 bucks more you can get a OMAP4 SoC with the new dev board project www.pandaboard.org this board has Dual 1GHz ARM Cortex A9 CPU with a much better GPU that can do full 1080p!!! Also both the BeagleBoard and the PandaBoard have camera inputs directly on the board. That input might be better for IO than using a USB camera.

    For image processing a good library is OpenCV (http://opencv.willowgarage.com/wiki/) and for managing flight paths is ROS (ros.org). Now the APM can handle most low level stabilization and flight control but for indoor image processing or 3D mapping via SLAM using ROS is a much more suited to control flight navigation. One cool project that can be used  to send data back and forth between the ARM board and the APM is avr_bridge (http://www.ros.org/wiki/avr_bridge).

    Also if you choose to use OpenCV there is a DSP acceleration library for the OMAP3 DSP: http://code.google.com/p/opencv-dsp-acceleration/

    As for connecting to the ARM board a USB cable would be the best, hopefully with the new ArduPilot Mega 2560 and the Atmega8U2 controller for USB can bring faster serial communication between the AVR and ARM boards.
  • the APM has 4 UART, 1 is used for GPS, 1 for USB and 1 for telemetry, the 4th is not used now

    you can interfece more than one sensor to I2C (up to 256 i think) so you will allways be able to use magneto


    you can interchange data between beagle board and apm through an UART (the 4th) or through USB

    you have to modify the APM software to make it react on data comming from the beagle board


    you should use a bigger frame than default arducopter frame, you can't fit the beagle board in this one

This reply was deleted.