All the descriptions I have found suggest that laser rangefinders use time-of-flight analysis to find the range. However, I don't understand what kind of specialized hardware they must have. At 300Megameters/second, a rangefinder that can range down to 10 meters with 90% accuracy would need about 1nanosecond resolution. Can't do this with DSP with hardware that I know of, at least not with a naive implementation. Any idea how they pull it off?
BetterSense: Can't do this with DSP with hardware that I know of, at least not with a naive implementation. Any idea how they pull it off?
Why not? This isn't about DSP as much as it is about accurate timing. Start a timer, send the light and then stop the timer when light comes back. Subtract to determine the distance. Your accuracy is limited by the speed of the timer you run.
Well, what's the fastest timer you can cram in a small package and run on batteries?
It sounds like you would need many GHz frequency to have enough accuracy. Do they make timers that fast?
They probably do. The highway cops each as one of the laser range finders specialized at finding how quickly the range to the moving car changes per second ;)
If a timer is that fast then we could use a coil of fibre optic cables as a form of memory storage by measuring the cable and finding the smallest pulse size capable with the clock and then fill up fibre.
2 GHz is like 500 picoseconds, which means a pulse would be 15cm long. So to get 1cm reading you would need a clock of 30 GHz.
Unless my maths as http://www.wolframalpha.com/input/?i=500+picoseconds+distance+light+travels is off.
Remember that a timer is just a counter. So it isn't (relatively) difficult to design and manufacturer a counter that runs at gigahertz speeds.
Also, they don't have to be digital. You could charge a precision capacitor and measure the voltage, as another example. (this is how high speed pulse triggers work in modern digital oscilloscopes.)
You could potentially interleave counters to get a higher effective resolution, again, a technique used by modern digital oscilloscopes. (they have digitizers that run up to 100Gigasamples/s, which are many digitizers interleaved).
I would also imagine these devices are taking many, many readings and averaging to account for some drift in the components used.
Don't get wrapped up in the numbers. The techniques used are simple, just at a very fast speed...
hellonearthis: If a timer is that fast then we could use a coil of fibre optic cables as a form of memory storage by measuring the cable and finding the smallest pulse size capable with the clock and then fill up fibre
You could, but that would be an expensive form of memory. If you think of dram, it works in a similar way. Charge up a cap, measure the voltage. Periodic refreshing is needed. Same idea you have, but with light.
Based on the research I have done (and admittedly, I'm no expert), most laser range-finders don't use time-of-flight, except in instances where the distances are very great, or where high-accuracy and costs are not an issue. The electronics needed for those speeds (especially for small distances) are not cheap (but they are available).
Instead, most range-finders use a couple of different methods - the cheapest being triangulation; basically the laser is spaced apart from the sensor, which is typically a linear CCD array of many elements. The CCD is sensitive to the wavelength of the laser being used. With the baseline distance between the sensor and the array known, and the known angles of the sensor and the laser, it is possible to calculate the sides of the triangle formed (with the laser dot at the apex), via which CCD element is most strongly activated by the laser dot.
For a homebrew example: http://sites.google.com/site/todddanko/home/webcam_laser_ranger
Alternatively, instead of a linear CCD, you could have a singular photodiode or phototransistor as the sensor, and scan the laser via a spinning mirror, and when you sense the pulse of the laser, the angle of the mirror, plus the baseline and the angle of the sensor can be used to give you similar information.
For a homebrew example: http://letsmakerobots.com/node/2651
The other method that I have heard about involves modulating the laser at a given frequency, then using a sensor to measure the returned laser beam modulation. Over a given distance, there will be a phase shift in the modulation comparison - this shift is proportional to the distance being measured.
For a homebrew example: http://scitoys.com/board/messages/1/325.html
Oh - and @James C4S - the type of memory you are referring to (involving a laser and a fiber optic coil) would be more akin to the old-school mercury or nickel-wire delay lines used for computer memory (and originally radar) back in the 1940s and 50s. In fact, I used to have an old transistorized calculator that had a bank of nixie tubes for the numerical output, and used a nickel-wire delay line for the memory. Unfortunately, I was a stupid kid, and took it apart; in the end I threw it all away (I still kick myself for that mistake - it would've been a great addition to my old-computer collection I now have - sigh).