# Drones

## Recommended Posts

dsm1891    2746

hi,

I have a sudden interest in programming for drones, and im trying to find one with an SDK, but unless unless you want to pay $300 for a parot one (which I don't) im not having much luck. I did find one a while ago for$130ish.

I don't really have any fancy specifications other than my phone being the controller for the drone (drone-phone communication), although gps would be nice.

Anyone have any experience with drone programming and or where to get a good deal for a drone with an sdk?

##### Share on other sites
sevenfold1    170
What kind of phone? Apple, Android?

If the SDK is open-source, then you probably don't have to pay for it.
If the SDK is proprietary, then they might charge a fee.

It sounds interesting. But, if I was going to develop drone apps, I would first take a look at the market for them, and see if it's worthwhile. Anything that is wasted time is wasted money, in my opinion.

##### Share on other sites
dsm1891    2746

What kind of phone? Apple, Android?

If the SDK is open-source, then you probably don't have to pay for it.
If the SDK is proprietary, then they might charge a fee.

It sounds interesting. But, if I was going to develop drone apps, I would first take a look at the market for them, and see if it's worthwhile. Anything that is wasted time is wasted money, in my opinion.

Oh, sorry, I did forget to say, android.

I wouldn't mind paying a fee, so long as it isn't $100s. Its for my own personal use, I don't intend on releasing apps. #### Share this post ##### Link to post ##### Share on other sites alh420 5995 At hobbyking.com you can find lots of cheap drone parts, including several flight controllers which are open source. They are usually based on the Arduino platform. There are several open source projects that support the flight controllers, multiwii was the first one (works with any arduino, and a wii nunchuck). Several arduino-based flight controllers are now sold that contain a CPU and all the sensors you need. Baseflight is based on multiwii, supports (at least one) flightcontroller with 32 bit arm processor (normal arduino is 8 bit AVR) Cleanflight is another project, based on baseflight with support for more hardware. I don't know of one where your phone is the controller though, but your probably could make that work through some telemetry solution (I know of some you can at least easily connect to Android phones) In any case, you don't want your phone to do the actual flight controller calculations, that would be way too much lag, you need that in realtime, on the drone, so you will need a flight controller on the drone. (also, strapping the phone to the drone would be too heavy, unless you build a big drone, which is expensive) You can then control the flight controller through a serial connection. The telemetry I mentioned is serial-over-radio. Wlan could also work, there are small cheap wlan-chips you can buy from places like Adafruit and Sparkfun. A problem with wlan though is the latency, but should be ok for a slow drone I doubt you will find anything that works right out of the box though, it will take some programming of your own and lots of research. 100$ should be possible, for a small one, but it will not be easy to do. (as in, just buying a complete thing with everything and an SDK), you will need to buy it in parts and construct it yourself.

... or just wait, I'm sure someone will release something like you want within a year or two :P

Edited by Olof Hedman

##### Share on other sites
dsm1891    2746

At hobbyking.com you can find lots of cheap drone parts, including several flight controllers which are open source.

They are usually based on the Arduino platform.

There are several open source projects that support the flight controllers, multiwii was the first one (works with any arduino, and a wii nunchuck).

Several arduino-based flight controllers are now sold that contain a CPU and all the sensors you need.

Baseflight is based on multiwii, supports (at least one) flightcontroller with 32 bit arm processor (normal arduino is 8 bit AVR)

Cleanflight is another project, based on baseflight with support for more hardware.

I don't know of one where your phone is the controller though, but your probably could make that work through some telemetry solution (I know of some you can at least easily connect to Android phones)

In any case, you don't want your phone to do the actual flight controller calculations, that would be way too much lag, you need that in realtime, on the drone, so you will need a flight controller on the drone. (also, strapping the phone to the drone would be too heavy, unless you build a big drone, which is expensive)

You can then control the flight controller through a serial connection. The telemetry I mentioned is serial-over-radio.

Wlan could also work, there are small cheap wlan-chips you can buy from places like Adafruit and Sparkfun.

A problem with wlan though is the latency, but should be ok for a slow drone

I doubt you will find anything that works right out of the box though, it will take some programming of your own and lots of research.

100\$ should be possible, for a small one, but it will not be easy to do. (as in, just buying a complete thing with everything and an SDK), you will need to buy it in parts and construct it yourself.

... or just wait, I'm sure someone will release something like you want within a year or two

ok, thanks ill look into that site

.

I have seen lots of SDKs online for mobile to drone, and also lots of 'out of the box' drones use mobile phones for controlling them, instead of traditional joysticks (?). this enables them to be light / less expensive. So I doubt there is that much lag?

--edit--

Im not against building my own, but in an ideal world I would like everything to be in one box :)

Edited by dsm1891

##### Share on other sites
alh420    5995

I have seen lots of SDKs online for mobile to drone, and also lots of 'out of the box' drones use mobile phones for controlling them, instead of traditional joysticks (?). this enables them to be light / less expensive. So I doubt there is that much lag?

Those all have flight controllers.

You can let the phone replace the radio in an RC-system, and use it to send steering information, but you will need intelligence on the receiving end too.

Since a drone is an unstable flying machine, you need a flight controller to keep it level.

The flight controller constantly polls the sensors to calculate the orientation of the drone and adjusts the motor speed controllers.

Sensors is at least a gyro and an accelerometer, but can also include barometer, magnetometer, gps, and more.

Advanced drones, like the ones you see doing impressive stuff like playing tennis on youtube also use external sensors (cameras) to track its position.

You really want to react on the sensor information as fast as possible

To send that info to the phone to be processed and then back again would mean the information is too old, which might mean under or overcompensation and make it wobble out of control. Even the control loop on the flight controller needs to written with hard realtime requirements, which might make it troublesome to get a mobile to do it even if you strapped it to the drone, because of its multitasking OS.

Good thing though is you can get a very small and light flight controller for pretty cheap.

So, you need the flight controller to handle the finer points of keeping the drone in the air, then you can use whatever to send signals to the flight controller to tell it to go up/down left/right etc.

ARDrone uses wifi for it, but it is a slow drone. (which is a good idea if the pilot is unexperienced...)

For a racer drone, you also need as little lag as possible on the control signal, but I guess that is a special case :P

##### Share on other sites
dsm1891    2746

usefull stuff

oh sorry, I misunderstood.

Thanks for the information,

##### Share on other sites
SillyCow    1461

Good thing though is you can get a very small and light flight controller for pretty cheap.

Where? I've been looking for a PC to radio (more convenent to program than phones). I couldn't find one, only arduino projects that require you to build the radio from scratch.

##### Share on other sites
alh420    5995

Good thing though is you can get a very small and light flight controller for pretty cheap.

Where? I've been looking for a PC to radio (more convenent to program than phones). I couldn't find one, only arduino projects that require you to build the radio from scratch.

I don't think we are talking about the same thing... Not sure what you are looking for. (disclaimer if the stuff below is totally useless to you...)

With flight controller, I mean the SoC + sensors mounted on the drone and used to fly it, that does not include communication with the flight controller.

These cost anything between <10 to >200 euro depending on features and brand (http://www.hobbyking.com/hobbyking/store/uh_listCategoriesAndProducts.asp?cwhl=XX&pc=1762&idCategory=1763)

To communicate with the flight controller from your PC, you could use something like this: http://www.hobbyking.com/hobbyking/store/__55560__HKPilot_Transceiver_Telemetry_Radio_Set_V2_915Mhz_.html

That's rs232-over-radio, not very high band width, but nice range and should be enough for sending control signal. (no video)

Other alternatives would be XBee (https://www.sparkfun.com/products/8742) or Wifi (https://www.sparkfun.com/products/13678), with higher band width, but shorter range.

Usually (as in normal hobby use) they are controlled by PPM-signals from an RC receiver though. I don't know of any way to send such signals with your PC, but I'm guessing it is easier to bypass it with one of the above things, at least for drone flight controllers, since they all have serial ports too.

(second disclaimer: These are not plug-and-play solutions, but will need some getting hands dirty with code and possibly a soldering iron :) )

Edited by Olof Hedman

##### Share on other sites
SillyCow    1461

I don't think we are talking about the same thing...

This looks cool, but it's  not what I was looking for. I want my computer to "look" at my drone and control it from the outside (like a human operator).

##### Share on other sites
Talroth    3247

You would still want an on board flight controller to handle the primary flight controls. That is, the system that keeps it level and in the air, or pitched at a given angle moving at a set flight speed and elevation. That stuff needs to be internal to the craft to be reliable. From there you can have the drone take external high level input.

Think of it as a high and low level system pairing. The high level system can do things like decide "Go over there", or "Raise altitude to X", while the low level system breaks down the higher level commands into the different engine rotational speeds needed to achieve the high level goals, and be able to correct for issues like being bumped around by a slight breeze. The lower level system should also ideally be able to do some of its own thinking, such as "I've lost contact with the base station computer, return to home base or settle and land where I am" kind of thing.

Trying to do quad copters without onboard flight controller systems is a road of frustration and pain.

##### Share on other sites
alh420    5995

What Luckless said.

And to expand a bit on it:

You always have the flight controller, also in a normal radio controlled drone, it's not possible to fly it without one.

The system for a normal RC drone would look like this:

Human -> RC Transmitter ===over the air====> RC Receiver -> Flight Controller -> Speed Controller(s) -> Motor(s).

So if you want to fly it with an external computer (or phone) there are two roads:

- get or build an RC transmitter compatible with whatever radio standard the receiver in the drone uses (there are several from the different RC manufacturers), that can be controlled by a PC/Phone.

- Replace the receiver with something easier and cheaper to get/build a transmitter for (my suggestion)

Edited by Olof Hedman

##### Share on other sites
SillyCow    1461

You always have the flight controller, also in a normal radio controlled drone, it's not possible to fly it without one.
The system for a normal RC drone would look like this:
Human -> RC Transmitter ===over the air====> RC Receiver -> Flight Controller -> Speed Controller(s) -> Motor(s).

At the risk of hijacking the thread:

What I wanted to achieve was: To write a computer vision program which allows a PC with a pair of cameras to control an RC vehicle as well as a human with a set of eyes. While I did find the computer vision algorithms I was looking for, I ended up giving up, beause it seemed too hard to emulate the RC. I assumed [falsely] that it would be as easy as emulating a TV remote control. My main problem, was that I couldn't find any USB rc controller.