Blog

(posted on 13 Apr 2013)

I have been fascinated by the developing field of small, semi-autonomous DIY devices. I have an AR.Drone that, while being nominally remote-controlled, is able to maintain a stable altitude and position, even in light winds with no user input. It is really a user-directed autopilot.

One problem I have noticed with these systems is that they have limited ability to understand where they are and how external forces (and even their own motors) may change their location. Given the scale of these devices (less than a meter in any direction), it would be nice for the device to know where it is, down to an accuracy of centimeters.

My AR.Drone uses a combination of sonar to measure distance above the ground and a downward-facing camera to see small horizontal movements. This allows it to be amazingly accurate at maintaining a position as long as you stay within about 5 meters off the ground. Above 5 meters, it has a much harder time maintaining a consistent altitude and has a habit of quickly taking off into the sky once you reach the limits of sonar. Also, once you start to move, the horizontal location information is lost.

Adding GPS won’t help much because horizontal accuracy is unlikely to be better than 20 meters and vertical accuracy is even worse. (My bicycle rides often seem to be substantially under sea level, according to the GPS on my phone). GPS is great at generally locating where a device is. But, high precision is difficult and expensive to accomplish. Phones have very tiny accelerometers and magnetometers but just like GPS, these seem to be only useful for gross movements and are not very accurate.

What's needed to bridge the gap between GPS and sonar/visual cues is inertial navigation. This uses highly accurate linear and angular accelerometers in an integrative way to determine a position based on a previously known position. Before GPS, this was one of the ways that guidance systems were designed. Even now, many military systems still use inertial navigation, at least as a fallback, just in case GPS is unavailable. The problem has been that such systems have been large and heavy. It was very interesting to see this Wired article about the development of highly accurate but very tiny sensors that should allow for wider adoption of much more accurate inertial guidance in devices.

This will help build DIY autonomous devices that will be fun to work with. But, it has some other applications that I think are interesting, too. Incorporation of such a device will help create a much better record of my bicycle rides. While my ride distances are reasonably accurate, climbing and descending hills are not reported very accurately. This new technology could record these changes in elevation much more accurately and thus give a much better picture of energy use on a ride. Inertial navigation would be great for smartphone apps that keep track of where you are. There are lots of places in cities and even outdoors in more northerly mountainous or heavily treed areas where GPS signals are unavailable. Inertial navigation would help fill in the gaps and even provide higher accuracy. It would sometimes be great for my phone to know that I’m on the 12th floor, near the north side of the elevators of an office building.