I've noticed a lot of people are talking about autoland - and no wonder; landing can be tricky, and is generally the part of the flight where you're most likely to break something. I plan to get my UAV to autoland, because I'm not a great RC pilot, and I don't want to spend money and time on it to then have it crash and break. So far, however, there's one thing that has consistently stumped most autoland projects: altimeters. GPS is not accurate enough, laser is expensive, ultrasound is fuzzy and doesn't like soft surfaces like grass, IR has calibration issues with differences in colour and reflectiveness, and barometric is less precise and changes with airspeed, weather, and a bunch of other things.

So obviously, a cheap yet accurate solution must be found. So here's an idea:
- Take a cheap camera (a keychain digital camera, a basic webcam, whatever) and mount it staring straight down underneath your aircraft.
- Take a cheap laser pointer and mount it pointing down and at an angle (either forward or back) underneath your aircraft.
- Note how the laser dot moves across the camera's field of vision as the aircraft's altitude changes, and calibrate accordingly.

This could be implemented a number of ways. Those with any kind of video streaming could watch the camera feed directly and just mark the altitudes on. Or, you could write a simple image processing algorithm that finds the dot and measures how far across the field of vision it is and calculates the altitude from there. If you want, you could add a second laser pointer such that the dots overlap at the moment the wheels touch ground, and use the distance between the dots to gauge altitude, and then, measuring whether the dots are symmetrical about the direction of flight would also tell you whether the aircraft is roughly level relative to the ground.

Obviously, to get the most accuracy you'd have to mount the laser at quite an angle so that the laser dot moves a long way across the field of vision per centimetre of altitude. I'd suggest setting it such that the dot is at the furthest extent possible at the GPS's accuracy limit, and almost at the furthest opposite extent at touchdown. In other words, if your GPS gives altitude to +/- 15m, then the laser should be turned on at 20m, and enter the camera's field of view at 15m AGL. Then, the dot moves across the screen as the aircraft descends, and reaches the other side of the screen about 10cm BELOW the point where the aircraft's wheels hit the ground (you don't want the dot to go off the screen by accident, because that'd confuse it and possibly cause a crash, so have a safety margin).

I don't know how well this would work, but it's the best way I can think of making a simple, affordable altimeter that might give acceptable accuracy. What do you guys think?

Tags: altimiter, autoland, laser

Views: 795

Reply to This

Replies to This Discussion

I don't think that this is feasible on an Arduino. You could use an imaging processor, and then pass down a simplified image to the Arduino. I'm actually developing a solid state laser rangefinder that ranges over a crosshair "+" shape, using an fpga. Something similar might be feasible if you're comfortable with vhdl.
Just a clarification: the max() function would work fine because it's not working with a one-bit bitmap - MATLAB's default way of importing images is to convert to a greyscale image, and then treat it as a matrix where each element is a number from 0 to 255 representing the brightness of the corresponding pixel, so the max() function finds the value and location of the brightest pixel.

The data rate is a concern, however. I wonder if you could tell is to disregard the edges of the image on its way in, or maybe check each section iteratively looking for values above a certain threshold. Otherwise... I wonder if something like those Sharp IR sensors could be modified - made to work with other light sources, perhaps...
Yeah, but you're going to waste too much memory and since the bandwidth is very limited the search will be slow. You'd only be able to fit 32x256 pixels at best (assuming the memory was empty, and it never ever will be), which may not be enough to give you any decent resolution.

I've been thinking about it though, and I'm beginning to believe that it might work :) if there was a camera unit that would poop raw bitmap data (greyscale for example) over serial or similar low level interface, the Arduino could drop pixels that are not interesting (those that will never have the red dot on) and only process and store a thin strip of pixels, simplify them to 1-bit (if value < 128) bit = 0; else bit = 1;) and use the approach mentioned previously to find the brightest line. A VGA camera could provide you with 640 steps of resolution and it would cost you 2.5 KB of memory (if the Arduino used a 640x32 strip). That's a precision of 1 inch over a 50ft interval on flat ground. I'll crunch some numbers to see what kind of framerate would be achievable.
Thanks! This is all still very much in the concept stage; I'm new to the UAV scene (in fact, I'm new to Arduino in general; I'm still waiting for mine to be delivered) so I'm still getting my head round what they can and can't do, and how to go about attempting various things. Still, I learned pretty quickly not to get too attached to any ideas, and as a result, my aim here is simply to work out an accurate rangefinder. If it can't be done with a laser and camera, I'll look for another way. If there's a chance it can, though, I'll give it a go! So, any help that anyone can give is much appreciated, and rest assured that if/when I get something that works, I'll post it on here right away.
Well it's looking pretty grim. Assuming the camera outputs a raw greyscale bitmap the best theoretical framerate would be 21 SPF (that's right, seconds per frame) on just the download, before any processing is even attempted.

Around 3 SPF (again, transfer only) if the camera outputs just the bits (black or white).

I think the concept is valid, but it ain't exactly right up Arduino's alley. At least not over the UART.
What about DGPS - I've performed autoland with DGPS without any issue, the UAV even flare within a few feet of the ground.
DGPS only works where there are ground stations to give you the corrections. I don't think there are any ground stations in my area, and even if there were, I like the idea of a UAV that can function anywhere, without being limited to certain areas.
have you considerd ultrasonic sensor like sonar ive seen some setups that have an external relay. could you use something like that to decelerate your motor.i think they are used to activate breaks in a car somehow but they are pretty light weight
As I said in my original post, others have tried ultrasonics, and found them to be a little fuzzy. They can be confused by a number of things, doppler effect chief among them, as well as the possibility of outrunning the echo.
Following are two excerpts from a historical application of using light for low altitude measurement;

"...the use of fixed beams of light to determine the altitude of a plane had been developed during World War I" (See also THE DAM BUSTERS (1954))

"Two spotlights were mounted under the nose and under the fuselage such that their beams would intersect 60 feet (18 m) from the underside of the plane. At the correct height, the two spots of light would merge into one on the surface of the water. The crews practised over the Eyebrook Reservoir in Leicestershire (built in 1940 to supply Corby steelworks), and the Derwent Reservoir, Derbyshire." (See also
THE DAMBUSTES RAID)
The Dambusters didn't really use the lights to measure their altitude, at least not in the strictest sense of the word. What's needed here is a system to tell the aircraft exactly what its altitude is. The Dambuster's system only tells you whether your altitude is 60ft (or whatever you have the light beams tuned to). At any other altitude, you have to measure the distance between the two spots, which brings you back to my original proposal of using a webcam or similar.
MLR-100 laser rangefinder - weight: less than 1 oz.

RSS

Social Networking

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.

A list of all T3 contests is here

Advertisement

© 2013   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service