You need to do some research on how to measure positions and distances in an outdoor 3D environment, and match that up with your requirement that the quadcopter "fly around 5 m behind you". Not possible on an experimenter's budget. It MIGHT be possible on a military budget, but if it is, that information would be classified.
bernatripoll:
Any better idea? Is the bluetooth trackeable? the wifi signal?
Your general question is "Can Bluetooth or WiFi be used for directional location?"
And the answer is "No." You would need some sort of direction finding system using directional (scanning) antennae, or radar ranging, neither of which are applicable to Bluetooth or WiFi unless you - as pointed out - can arrange some serious hardware development. Merely assessing signal level - if that information was available from the devices - is of little value and you would in any case be implementing a "hunting" algorithm moving this way and that to find which was closer.
GPS can be made more accurate using a local reference system to feed in corrections. In short, whilst the absolute position may blur, it is possible to compare position on two GPS units and determine relative position more accurately - which is what you are looking for here. How you actually do this - or whether it is simply inherent in the readings you already have, I am not sure.
To amplify on Paul__B's comment, if you want to use GPS tracking, you can buy commercial units in the range of US$1000-3000 that have centimeter accuracy (Trimble is one manufacturer). However they require a nearby fixed base station whose precise location is known.
I'm pretty sure that no such GPS units are available that will fit into a quadcopter, but if you find one, buy two, because you'll need one for yourself. Then you need to figure out how they would communicate in order to have the copter follow. As a learning experience, I suggest to experiment with two ordinary GPS units, and figure out how you would navigate from one to the other.
You need to find some way to find the relative bearing and distance to your target that doesn't involve electromagnetism.
If you can afford to have your target carry an optical beacon, you could detect it optically and determine the bearing. That would involve either some pretty shrewd electronics to detect an optical beacon, or enough processing power and memory to use a brute force technique such as image recognition and tracking. The Arduino isn't a good candidate for the latter. I suspect you will find that people before you have already solved the problem of having an Arduino detect the position of an IR beacon though.
I don't know how you would detect range. Perhaps you could have the beacon emit an ultrasonic range that the 'copter can detect when it is close to the target and use that to tell the 'copter to stop approaching?
PeterH:
I don't know how you would detect range. Perhaps you could have the beacon emit an ultrasonic range that the 'copter can detect when it is close to the target and use that to tell the 'copter to stop approaching?
Ultrasonics are probably the best approach for rangefinding given that you need two-way transmission or an alternate real time reference channel to time the "ping"s, but all of these considerations are distant from the original supposition that it might be practical to follow an ordinary smartphone.
bernatripoll:
I've been working on a quadcopter project for a while, now we want it to be able to follow people.
Our first idea is using gps+bluetooth modules and one smartphone.
But we're kinda worried about the +-distance errors of the gps device.
And well you should be. The best advice about quadcopters I ever saw was "It's not a toy. It's a flying brick, with rapidly spinning razors."
Conceivably, you could have it follow a second Arduino in relative[/b ] safety, if the airborne and carried boards both had GPS units, and with the carried board constantly sending its own fixes to the airborne one. But even then, consider the consequences of a hardware or software failure, or even a sudden wind gust.