# Quadcopter Position Measurement (Accelerometer, GPS or Both)?

I previously thought that an accelerometer on a quadcopter is used to find the position by integrating the data got from it. After I read a lot and watched this Youtube video (specifically at time 23:20) about Sensor Fusion on Android Devices, I seem to get its use a little correct. I realized that it's hard to filter out the considerable noise, generated from error integration, to get useful information about the position. I also realized that it is used along with the gyroscope and magnetometer to for fused information about orientation not linear translation.

For outdoor flight, I thought of the GPS data to get the relative position, but is it so accurate in away that enables position measurement (with good precision)? How do commercial quadcopters measure positions (X,Y and Z)? Is it that GPS data are fused with the accelerometer data?

Generally, for indoor flight, commercial quadcopters do not measure position. Instead, they measure the change in position so as to prevent the quadrotor from moving when it should not. So while accelerometers are not great for maintaining an estimate of the quadrotors position they can be used to stabilize the system, i.e. to determine what commands needed to be executed to maintain their current position.

Drift can still be a problem though. As such the data from the accelerometer is usually combined with other sources of information. The Kalman filter is one approach as the presenter touches on around minute 27. Another is to use a complimentary filter which are nice because they require less processing power. Some of the other sources for data for estimating the state of a quadcopter include the gyroscopes, magnometers, barometric pressure sensors, range finders (usually ultrasonic though I have seen IR sensors used), and optical flow via cameras.

With this additional information you could arguably still use an accelerometer for position estimation. I have not seen this done so I cannot speak to its effectiveness though. I suspect other approaches would be better. One method would be to use a laser range finder to localize the robot. Another would be to use a motion capture system as many research facilities do.

As a side note, beware that GPS gives absolute position $\pm \epsilon$ where $\epsilon$ accounts for error, i.e. give or take some error, as opposed to relative position.

• Optical flow is not the only way, and in fact it needs the robot to move (or at least the camera). There's stereo vision, monocular active vision with IR projection (structured light like kinect for example), and some others. In fact, a research for indoor navigation using computer vision should give a lots of proposed solutions. – Diego C Nascimento Jan 8 '14 at 18:40
• That's true and it's why only gave some examples instead of a strict enumeration. – DaemonMaker Jan 8 '14 at 19:15
• @DaemonMaker Actually , I have already had the quadcopter, its board is PX4FMU. You may view its on-board sensors. Since the pressure sensor is already there, is it enough to measure the altitude with high precision? Do I need to fuse its data with the accelerometer or GPS? – Moayad Hani Abu Rmilah Jan 9 '14 at 8:33
• Yes, you will need to fuse it with the other sensors because the readings will change as a result of linear movement. Even if you command it to remain with in the same plane of elevation the pressure sensor will read greater pressure as it moves. – DaemonMaker Jan 9 '14 at 22:07

Is ... GPS data ... fused with the accelerometer data?

Yes, many aircraft use sensor-fusion techniques so both GPS data and accelerometer data effect the estimated X, Y, Z position. Often they use a Kalman filter to do the data fusion. ( ; Why do I need a Kalman filter? )

Measuring X,Y,Z accurately for each photo is important for assembling photos into an aerial photographic map. (a) (b)

Low-cost GPS receivers typically produce a X,Y,Z position once a second with an accuracy better than 20 meters. That is "good precision" for photographic mapping with a small RC aircraft or finding the destination runway in a manned aircraft. It's pretty much useless for a quadcopter flying in a room or a small field less than 20 meters on a side.

(Some GPS receivers are available that use DGPS and other techniques to get better accuracy, or generate a position many more times per second, or both).

How do ... quadcopters measure positions (X,Y and Z)?

They usually don't.

My understanding is that most quadcopters aren't doing aerial mapping or fully autonomous motion, so they don't bother calculating XYZ position. (c) (d)

As you already know from that video, quadcopters use the accelerometers to improve their estimates of the aircraft orientation (its pitch, roll, yaw). The quadcopter needs to know the orientation in order to stay right-side-up and to avoid spinning uncontrollably.

How do ... quadcopters measure positions (X,Y and Z)?

The people at the GRASP lab at U Penn measure XYZ position of their quadcopters using lots of expensive motion capture cameras bolted to the walls. They produce lots of really impressive-looking videos.

A few cutting-edge research projects are trying to measure XYZ positions using cameras attached to the quadcopters. ("sFly Quadrotors Navigate Outdoors All By Themselves") ( Track a moving object ) ("Encouraging Developments In Quadcopters (w. Lots Of Video)")

Before GPS, commercial aircraft used airport radio beacons to do instrument landing navigate. I see some people talking about related techniques for radio beacon localization for quadcopters.

Ian suggests tagging each landmark with a unique augmented reality glyph. Some people find it more practical to use a camera on the quadcopter to detect and estimate relative bearing to a simple red rectangular landing pad. ("Autonomous Quadcopter Docking System")

• Before GPS, commercial aircraft used airport radio beacons to do instrument landing No, they used it to do navigation not landing! Today even with GPS, VOR (a signal is transmitted from the station in each degree with a different pattern with a highly directional antenna) is still used as navigation, and ILS (normally directional antennas in the airport) rules for landing, GPS is not used for that, the accuracy of ILS is much better. – Diego C Nascimento Jan 8 '14 at 20:25
• This gives good clarification. What I can think of now is that I need to use the accelerometer to get the velocity by integrating its measurements once. I don't know how much effective the application of a low pass filter will be to reduce the error in the generated velocity. From your answer, it seems to me that it is nearly impossible to make autonomous path tracking with the following sensors: accelerometer, gyroscope, magnetometer, GPS and barometric pressure because it is hard, with these sensors, to know the position. – Moayad Hani Abu Rmilah Jan 10 '14 at 7:43

Position measurement is all about dealing with uncertainty. Entire books have been written on how to estimate good position from uncertain data coming from several sources, so I won't try to summarize that here.

In general though, what you need will depend a lot on how accurate you need to be. Getting GPS fixes once per second (5 times per second on some hardware) is great for something like a large boat. However, 5 fixes per second is pretty bad when you're moving at high speeds in close quarters, like a quadcopter does -- not to mention the (roughly) 20-foot circle of uncertainty in GPS positions.

There are many position, velocity, and acceleration sensors that you can buy. Only some of them are practical for any given application, and terribly few of them are good enough to be considered real-time ground-truth by themselves (either operating in tightly controlled environments, or costing you hundreds of thousands of dollars). So, you need to pick a good mix of sensors so that each one can help keep the inaccuracies of the other sensors in check. This is entirely dependent on your robot and its application; there is no one-size-fits-all.

Typically, you'd combine a high-accuracy-low-frequency method like GPS (or other triangulation-based scheme) with a moderate-accuracy-high-frequency method like an accelerometer or gyro. This keeps estimates from drifting too far while giving some reasonable real-time adjustments.

• Well, as I already have the quadcopter, its board is PX4FMU. You may view its on-board sensors. – Moayad Hani Abu Rmilah Jan 9 '14 at 7:43
• It looks like the built-in onboard sensors are meant to handle things like real-time stability: gyros, accelerometers, magnetometers, and a pressure (altitude) sensor. The list of peripherals suggests that you'd either drive this quadcopter "open loop" (using a remote control), outdoors with GPS, or indoors with a tracking system and radio telemetry. – Ian Jan 9 '14 at 15:14