Gps tracking quadcopter (grad project)

oggy

Junior Member
Help Gps tracking quadcopter (grad project)

Hi everyone

I am new to these issues so I have few questions about my grad project. Let me describe it for you. we are asked to build an X type quadcopter that tracks a gps signal on a person and follows he/she in front of him/her (like lily drone). it will be act autonomusly. It stays in a stationary position when the user calls it, it has to hover at a certain altitude and has to maintain the tracking altitude of that person. the schematic is below. we are planning to use xbees for communications and
multiwii type flight controller which has(hold altitude,autopilot, magnetometer, sensors,etc. functions) I also figured out to use ppm encoder to convert data received from xbee pwm to ppm. I want this quadcopter to fly smoothly, strong enough to carry the items mentioned above. and we need to fly it from pc at first. drone.PNG

1. What steps should I follow for this project?
2. Which brand/model of a flight controller should I choose?
3. Do you suggest any Motor-ESC-Frame-Battery configuration?
4. Is it possible to do this project the way I mentioned above(any other(easier) methods)?
5. I know arduino but never written a code related to Xbee and GPS. how can I find codes to combine all devices?
6. How can I do PID settings on this configration?

I appreciate all help.
 
Last edited:

1387

Member
Hi oggy,

I'm no expert at autonomous multirotor, but I think I can help you get started with your plans:

1. I think you should first build a flying multirotor (the machine you want later to be autonomous) of some kind and get used to fly it line of sight without all the electronics like GPS onboard. If you have no experience in piloting whatsoever it could be wise to fly some kind of micro quadcopter first to get used to flying (get recommendations from others there are some micro quads wich have very similar controls as the big ones and thats desirable)

2. I dont have a clue wich flightcontroller to use, but I think this forum has an UAV section, where you should get a good idea from FCs people are using and you probably will get some help about that there.

3. To determine what you need for motor-prop combo, you should try to roughly calculate the weight you're dealing with. Then you should think about what size you want it to be and what flight times you're aiming for. I suppose you don't really need an agile machine, so mid to large sized copter (in the ~350mm motor to motor distance range) should be plenty room to store all your electronics, but that's up to you! Maybe you want to do other stuff with it later other than "only" hovering behind a person.

4. It should be very possible. All you want is 2 flight modes: One for the stationary hover (should exist: position hold), and the other to position hold with the position calculated from the position of the user (~ position hold with variable position). But I don't know how hard it is to build that functionality into the existing FC software. Good thing is most flightcontrollers have open software, so you can modify it to your needs if you have the ability to.

5. Sorry, never done anything with arduino, I only played a little bit with AVR microcontrollers.

6. PID tuning can be done when doing step 1. Just fly it manually and change the PIDs if needed. Most modern flightcontrollers have a more or less working tune for most frames right out of the box.
 

jhitesma

Some guy in the desert
Mentor
It's a fairly tall order and harder than it sounds given that most of the tech is out there already.

MultiWii can do it, but only if you go with a Mega board with the 2560 processor. And then you're still running on a slower 8 bit processor. But the 2560 has the memory and UARTS needed to pull of that kind of autonomous flight.

The xbees also aren't a great choice. They just don't have the range. A number of people have used them and they can work marginally but really you'll be much happier with either 900mhz 3DR data radios or getting an amateur radio license and running 440mhz (best option really.)

Instead of MultiWii I'd strongly suggest looking at PixHawk or Tau Labs. Both 32 bit platform with more advanced processors that are far better suited to what you're trying to do.

I don't have any experience with PixHawk - the community just kind of rubs me the wrong way. But I'm a big fan of Tau Labs and they love researchers and university projects. A Sparky2 or FlyingF4 would be a great controller with lots of flexibility. The Sparky2 is a bit more expensive but IMHO would be a better choice since there's better support for it, it has more UART's available without customizing the code, and it has a built in 440Mhz radio module you can use for both control AND Telemetry simultaneously. They've also done a lot of work on improving the autonomous code lately.

Whatever electronics you go with I'd suggest something like a 550 sized or larger frame with larger (10"-12") props and lower KV motors (900kv range) which will give you more stability and longer flights. Plus with GPS assisted flight it's important to get the GPS and magnetometer away from the motors/radios/ESC's and power wiring - which is really tough to do on a smaller frame.

MultiWii does have a follow me that was implemented over two years ago using the EZ-Gui android app but I haven't seen too many people actually use it successfully. The altitude hold and GPS code on MW just isn't that great due to the limitations of the processors it runs on.

Tau also supports a follow me using Android but it's not very well documented. Peabody124 has some videos up demonstrating it working in conjunction with the gimbal controller he designed for Tau to track subjects.
 

HawkMan

Senior Member
It's a fairly tall order and harder than it sounds given that most of the tech is out there already.

MultiWii can do it, but only if you go with a Mega board with the 2560 processor. And then you're still running on a slower 8 bit processor. But the 2560 has the memory and UARTS needed to pull of that kind of autonomous flight.

The xbees also aren't a great choice. They just don't have the range. A number of people have used them and they can work marginally but really you'll be much happier with either 900mhz 3DR data radios or getting an amateur radio license and running 440mhz (best option really.)

Instead of MultiWii I'd strongly suggest looking at PixHawk or Tau Labs. Both 32 bit platform with more advanced processors that are far better suited to what you're trying to do.

I don't have any experience with PixHawk - the community just kind of rubs me the wrong way. But I'm a big fan of Tau Labs and they love researchers and university projects. A Sparky2 or FlyingF4 would be a great controller with lots of flexibility. The Sparky2 is a bit more expensive but IMHO would be a better choice since there's better support for it, it has more UART's available without customizing the code, and it has a built in 440Mhz radio module you can use for both control AND Telemetry simultaneously. They've also done a lot of work on improving the autonomous code lately.

Whatever electronics you go with I'd suggest something like a 550 sized or larger frame with larger (10"-12") props and lower KV motors (900kv range) which will give you more stability and longer flights. Plus with GPS assisted flight it's important to get the GPS and magnetometer away from the motors/radios/ESC's and power wiring - which is really tough to do on a smaller frame.

MultiWii does have a follow me that was implemented over two years ago using the EZ-Gui android app but I haven't seen too many people actually use it successfully. The altitude hold and GPS code on MW just isn't that great due to the limitations of the processors it runs on.

Tau also supports a follow me using Android but it's not very well documented. Peabody124 has some videos up demonstrating it working in conjunction with the gimbal controller he designed for Tau to track subjects.


Personally, while I love Tau. at this point I'd go with pixhawk. I have had way to many problems with tau on my multirotors using both the sparky and the quanton. thoguh I may attribute some of the faults to the hardware. there was also issues with the software. Especially for anythign GPS related. Like the lack of any feedback on calibtration and such.

Right now I'm setting up a HKPilot32(pixhawk) on my big drone instead and it's a much more mature and functional solution. and it has built in feedback for everything.

TauLabs is more hackable though, especially with the new pico scripts. But if the goal is to get a working solution, then I'd go with PixHawk for now.
 

HawkMan

Senior Member
My proffesor suggested this configuration. What do you think? View attachment 57666


Your professor seems to have a hardon for DJI other than that, it sems ok.

Though, I'm not sure if the DJi Naza actually supports follow me, and as a flight controller it's pretty much completely locked down. sure everythgin that's supposed to work works great out of the box. but you can't really mode or change or fix anything else. So it might not be the best fit for the project.
 

oggy

Junior Member
Your professor seems to have a hardon for DJI other than that, it sems ok.

Though, I'm not sure if the DJi Naza actually supports follow me, and as a flight controller it's pretty much completely locked down. sure everythgin that's supposed to work works great out of the box. but you can't really mode or change or fix anything else. So it might not be the best fit for the project.

I think the same. Do I need a ppm encoder if I choose Pixhawk? How can I do the rf communication(in my case do I need a normal rc receiver?) also What are your thoughts about other components? I am desperate about choosing the right devices since its gonna cost a lot. I have only one shot.
 

HawkMan

Senior Member
Depends on the Rx/Tx you're using.
if you use an rX with PPM out or SBUS then no you don't need it, if you don't. then I would suggest getting an SBUS or PPM capable receiver or alernatively a PPM encoder.

The PixHAwk uses the normal 3DR radios(the HKPilot packages come with a 900 or 433mhz set depending on) which you can use for telemetry and some control like setting up waypoints and such as I understand, and probably for follow me fucntionality. I haven't really looked into follow me on the Pixhawk, so... I'm not sure if it also needs to have a regular radio control. but I would certainly suggest it, you should never fly, even a fully autonomous(maybe especially) drone without the capability of taking full manual control.

Ir your goal is to use it only as a proof of concept for this mostly autonomous project, you could simply get that new DXe or whatever it's called low end Spekrum radio and a satelite module for the PixHAwk(then you don't need a receiver either as I understand it, thoguh arguably the satellite is a reciver but... eh...).

other PPM or SBUS capable systems will probably be as if not at least slightly more expensive.

You could also go on youtube and look at Painless360's PIxhawk series
 

oggy

Junior Member
We probably use pixhawk with gps module
beaglebone black
3dr radioset
z600 v3 with crab frame(600mm)
30A ESC and
DJI E800 3510 350kv motors or similar 360kv turnigy motors
What do you think about this setup? Secondly what type of battery should I choose?(DJI E800 recommends 6S li-po but I dont know anything about the choosing right voltage anc c parameters)
 

HawkMan

Senior Member
Should be ok. I can't comment on battery and power system as I'm not really into the whole DJI system.

but from the kv and size of the quad I suppose a 6S would be good.

From what I can see from painless 360's videos and from just having started to play around with my own hkpilot32 it should support follow-me mode directly with no hacking or any such. just plug the 3dr radio into a phone or tablet with GPS and turn on follow me mode.
 

nilsen

Senior Member
Hey Guys,

Sounds like an interesting project.

I have been using APM/Pixhawk for a while now and for follow-me to work you need to have a device on connected to the ground tx/rx which also has GPS so it knows where to follow-to...

http://www.goodluckbuy.com/index.php?target=products&product_id=111797

Anyways, most of the modules use a USB-OTG (on-the-go) cable to plug into an android device but I recently ordered one where the ground station is bluetooth enabled so you can connect the phone to the module and then you don't need the cable constantly connected.

6s on a relatively small may be over-kill, I had a 690 size hex and it was perfect on 4s.
I'm also not sure you should spend money on the DJI stuff, you can get away with good stuff props from a place like foxtech etc.

I recently got rid of a QAV500 with 13 inch props and replaced it with the TBS discovery pro and the change in stability going from the large-slow motors to the faster (1000kv) motors was day and night.
With large props the craft is generally more floaty and less stable, with smaller props the crafts are more locked in.

Sounds interesting and good luck!
 

oggy

Junior Member
thanks for all comments and advices but I still couldnt find a transmitter-receiver to send the gps signal from user to quadcopter. The only reason I chose DJI motors is to include props and ESCs in one pack also they meet weight per rotor requirements . Can I fit different prop sizes to these engines? Also Pixhawk can be programmed via beaglebone? I know I ask a lot but I really need your help. My bloody Proffesor might include an image proccesing unit DJI (manifold) to make my life harder.
 

HawkMan

Senior Member
You use the 3dr type telemetry radios to send the GPS position of the users.

As nilsen said, with a USB-OTG adapter or cable from a GPS capable phone or tablet. you'll still need a regular controller to be able to arm the craft I believe, but once you arm it and lift off and put it on Follow-me, you "could" leave it, though I wouldn't suggest it, that would require a level of trust I wouldn't put in any autonomous flight today, especially not without the craft also having 360 degree proximity sensors.

I'm not sure what you need the beaglebone for. Pixhawk and a mobile phone with the 3DR radios does everything you need.
 

oggy

Junior Member
beaglebone or an arduino has to control the quad for autonomous actions also control proximity sensors as you mentioned above. It has to hover itself when user activates a call signal. I know the only way is to write some codes to control drone autonomously(including obstacle avoidance) I need to know that if I can control(preprogram) pixhawk with arduino or beaglebone. I am not allowed to use a remote controller. If I get all these parts and merge them so what would be the point of a grad project. I have to involve by programming the quad according to the requirements of the project.
 

HawkMan

Senior Member
Then your professor is an idiot asking you to reinvent the wheel ;)

All these functions the FC already does. and no matter how autonomous you make the craft, tell the professors that the craft will NEVER be without an operator always holding the controller and ready to take manual control in case anythign happens, and that if he disagrees with that, he's an irresponsible fool and he needs to contact both the AMA and the FAA for instructions on autonomous drones without pilot override.

In any case, if you're not allowed to use the FC for any of it's autonomous functions, then you're better off using a simple FC like a Naze32 that does nothing but control the motors according to the inputs, and then hook up all the GPS and other stuff to your Beaglebone or arduino and have that sense the actual control inputs to the FC. This would also completely override any RC control so eh... you'll have to do a lot of tie down testing and with motor protectors before you even think about letting it fly free with student grade code(no offense ;))

It's a bit pointless though as you'll essentially just make what others have already done.

Personally if the idea with the project is to "make something" with a drone, I would skip the idea of making something that's already done. and instead use what is already there in the FC's and instead find something else to do.

For example. if you use the DJI manifold, my suggestion (school budget provided, but with the prof's DJI hard-on I wouldn't imagine it's a problem). I'd get a DJI Matrix drone and the manifold. and fine new and innovative ways to control the drone with that. object or pattern recognition for example. Fut an array of IR let's on a helmet(like a police hat/helmet) and make a drone(using the matrix platform with the proximity sensors) that will follow the person/office around, and stream video of his surroundings back to a base station. Or maybe a Drone that recognizes a football and automatically tracks and follows a football during a game. Or maybe a sentry drone that auto docks for charging and will detect and track and film heat signatures within a perimeter.Heck even a firedrone with a heat sensing camera that would loiter around a fire, be it building or brush, and locate hot spots from the air and report them back to the firefighters. Or other such autonomous features that you could program with the matrix+manifold system and a variety of cameras, IR and heat cameras and such. and as a benefit the matrix platform is a solid platform that is designed to be experimented with.

that's what I would suggest, instead of reinventing the wheel, invent something new and potentially useful. The drone platform has so much potential, and we keep seeing professors wasting the potential of it by asking students to reinvent the wheel with them instead of having them do something new. You still have professors telling students to make flight controllers for them... such wasted potential.

anyway rant off. But there's your best options, ask the prof. to be able to do something entirely new with it, or just skip all the fancy flight controllers and move all the actual location and tracking code to the arduino and let the FC just handle the autoleveling and stabilization and for that you don't need a pix or a DJI :).
 

nilsen

Senior Member
If you want to make something autonmous with obsacle avoidance you can even add the new "lidar lite" module to the pixhawk with a range of 40 meters it's quite impressive but as HawkMan says it's nothing new and you would just putting together something that already exists.
If you go the route of the Naze or multiwii and then use a beaglebone/arduino to control it, wouldn't you just be re-writing the apm code again?
I think HawkMan has a point in that you should try and do something new and useful.

You asked if you can use different props for the DJI setup - Yes you could but it wouldn't be optimal, if you used smaller props the motors wouldn't spin fast enough, and larger props wouldn't be ideal either.

You can use a tool like ecalc to work out your motor/prop combo as well as batteries and motors and all-up-weight.

15 inch props are huge for a multirotor, they swing fast and are dangerous if things go wrong, not to mention very expensive.

Personally I would aim at the 10-12 inch mark.
 

oggy

Junior Member
you guys are totally right. However my stubborn proffesor wants us to program all the tracking and howering operations. I gues I am gonna turn back to using multiwii pro with xbee. damn it.