Update: Switching over to inch mode stabilized the display, no more flipping back and forth.
As you note that would likely be from the lower resolution of the measurement. Centimeters provide 2.5 times the measurement resolution, so jitter is going to be more pronounced. You might display the raw microseconds returned and compare those to see what you're actually getting.
I've always believed that on these types of sensors you're best off averaging the results. At 10 Hz you could average together three bounces and it would still be fairly reactive to measurement changes.
I meant what I said. "Raw" means the microsecond timings from the device, not calculated results that have been converted to inches, centimeters, or some other units of measure. The device does not output PWM values of actual light TOF. There are no sub-microsecond timings (the minimum return pulse is 115 us). You may have "no idea how these devices work" but the datasheet is available to all of us.
Six picoseconds out and back. But I think with phase matching, it's a lot easier.
If the modulation frequency results in a modulation wavelength of two meters, you can compare phases of the transmitter and receiver over several continuous periods with a quadrature mixer/detector to get the distance. You don't need to measure the actual pulse return time.
As Phil says, it's likely modulating the beam and comparing the phase shift, similar to how other low cost laser distance measurement sensors work (even many laser theodolites work this way). Regardless, you don't really have to know how the device works to follow the output timings in the datasheet. It doesn't output a result in centimeters, meters, inches, feet, kilometers, parsecs, or other arbitrary units of measure, just the width of a pulse in microseconds that linearly corresponds to distance. Therefore those values will have the best resolution for comparison.
I kind of imagine there is a modulated signal going out, and that modulated signal is received back. Plus a ton of noise. Somehow what goes out is correlated with what comes in. And after a lot averaging a distance estimate is made. Equivalent to a new picoseconds at the speed of light.
Boggles my mind. But hey, those LIGO guys do the same thing to detect gravity waves. Detecting the movement of mirrors down to a thousandth of the size of a nucleus over a distance of 4Km.
One of these just arrived -- I'm looking forward to try it out.
As to how it works, here is a link to a fascinating thread, and if I'm not mistaken, it led to a couple of viable, successful products. time-of-flight-laser-project
I don't think LaserPing and those other laser ranging products are based on the same technology. By appearances (and specs), LaserPing may be based on one of the all-in-one ToF modules from ST, such as VL53L0X. This module is said to be time-of-flight, but technically that can cover quite a broad range of underlying technologies. It might be true ToF, it might be phase-shift comparison, or a combination of these two. (Because the detector is actually an array, which supports gesture detection, it's also possible they are using or combining interferometric measurement.)
There might be a more technical description of what the module is doing, but for trade secret reasons, ST may not divulge the particulars. If anyone finds something feel free to post. Ideally it should describe in a lot more detail what's happening internally.
Erco will be first to note you can get something similar from Chinese eBay for $10 or $15. But LaserPing is particularly brilliant because it's a drop-in physically and electrically compatible with everyone's favorite (and most copied) ultrasonic distance measurement module.
One thing I am curious about is the refresh rate. The sensor datasheet specs 10 Hz. The Parallax datasheet specs 15 Hz in PWM mode and 22 Hz in serial mode. Either Parallax is wringing more performance out of the chip than it specs, or the module is just sending duplicate data when the sensor hasn't taken a new reading.
'Still, though, an impressive product!
-Phil
I don't see a datasheet for the sensor. The LaserPing's sensor FOI and FOV differ from both the RFD77402 and VL53L0X. It physically resembles the RFD77402 but isn't exactly the same.
It's pretty clear it's the RFD77402 (or else a variation not yet in regular distribution channels); the package and FOV/FVL are the same as in the datasheet, and in fact they use the same art. I tried to obfuscate for Ken's sake by noting the ST product, but essentially they both do the same thing.
While the respective datasheets of these products lack a low-level discussion of how they implement ToF, what's far more interesting (in my mind) is that both have receiver arrays which are capable of mapping. Obviously LaserPing doesn't use this feature, but it shows these and similar modules have wide-ranging use in low-cost robotics.
One thing I am curious about is the refresh rate. The sensor datasheet specs 10 Hz. The Parallax datasheet specs 15 Hz in PWM mode and 22 Hz in serial mode. Either Parallax is wringing more performance out of the chip than it specs, or the module is just sending duplicate data when the sensor hasn't taken a new reading.
'Still, though, an impressive product!
-Phil
I don't see a datasheet for the sensor. The LaserPing's sensor FOI and FOV differ from both the RFD77402 and VL53L0X. It physically resembles the RFD77402 but isn't exactly the same.
In Section 4 (Performance) of the RFD77402 datasheet, both the FoV and FoI match. It seems the FoI is software configurable, but defaults to 23 degrees.
Sparkfun made a "SparkX" module with the RFD77402 on it. They noted "Max read rate: 10Hz (in practice we’ve seen nearly 20Hz)" -> https://www.sparkfun.com/products/14343
The parallax doc says typical is 15hz in pwm, and 22 in serial mode. I assume the difference is because the timing is different depending on the distance, and the datasheet is using the worst case timing for longest range reads.
The VCSEL emitter integrated into the package is particularly adapted for this sort of sensor application. There is of course face surface emission, also VCSELs can be very fast (up to 25GHz in communications systems), with high coherence, low divergence and tight bandwidth.
E.g. http://myvcsel.com/emerging-applications/
Yes. Phase correlation of a modulated return signal with a quadrature mixer/detector. You don't need to know the edge position of the returning waveform. Just multiply it by the sine and cosine of the emitter's modulator and integrate over time. From the relative outputs you can compute the phase shift without needing picosecond response times.
As Phil notes, the technique is quite likely not true lightwave transit time, but comparing phase shift of a modulated signal (usually over multiple frequencies in the low MHz range). At these distances that's a more accurate approach than true ToF, not to mention cheaper. Actual ToF works great for laser transits operating over blocks, miles, or moons.
That sounds more like it, Phil. I could not imagine it was actually timing edges of pulses.
Reminds me now of the practical exercise we did in university 4 decades ago. With a chopper and a lot of averaging (integrating) we could tell if a light bulb was on or not across from the other side of the lab. Even if it was so dim you could not see it glow.
The company I'm working for now is spending over 2000 dollars a pop on FLIR IR cameras to detect pedestrians at crossings. Given the results I'm seeing from those cameras I'm thinking a couple of these pings stuck on the poles at each intersection would work as well. Or better.
Here's a graph taken using the serial 9600 baud option, 700+ readings, to show the scatter as the sensor sat in one place looking at a sheet of cardboard. Also there is real time math applied for smoothing, stage one a 3-point median to drop out some of the outliers, and then stage 2, a digital lowpass, modest exponent 4, time constant ~0.5 second.
I was looking at page 31 of the RFD77402 data sheet, Figure 17: Scatter Chart Showing Measured Distances Versus Actual Distance .
I think the dots on the graph represent different sensor chips, not the statistical scatter for an individual chip. At 240 mm the +/- 10% scatter lines would allow values from 216 to 264, but my result with my one sample chip is tighter, from 236 to 247. The 3-point median held it to 237 to 244 and the added lowpass to 239 to 242. With a ruler, I measure it crudely as pretty close to 240mm. So, there may be variation from one chip to another, but calibration may be possible, to the extent that speed of response can be traded for accuracy. I don't see anything specifically about performance in the '77402 data sheet that addresses the sampling statistics of an individual device.
757 samples average = 240.33, standard deviation = 1.93
After filters, standard deviation = 0.58, time constant ~0.5s
A couple more observations. I put a photodiode probe in front of the laserPING, to see what it would see from the VCSEL. There were bursts of pulses, each pulse being on the order of 1 to 6 milliseconds and the bursts being spaced at about 45 milliseconds, same as the RS232 output. The width of the pulses and the number of pulses in the burst changed with distance, shorter pulses and more of them at close distance. The 'scope shots are from a laserPING reading 500mm and a one reading 100mm. The probe has low bandwidth, so if there is a much higher frequency component within the pulses, the probe won't see it.
Comments
As you note that would likely be from the lower resolution of the measurement. Centimeters provide 2.5 times the measurement resolution, so jitter is going to be more pronounced. You might display the raw microseconds returned and compare those to see what you're actually getting.
I've always believed that on these types of sensors you're best off averaging the results. At 10 Hz you could average together three bounces and it would still be fairly reactive to measurement changes.
Mail a LaserPING or two to Dave at EEVblog to help get the word out!
Mailbag
PO Box 7949
Baulkham Hills NSW 2153
AUSTRALIA
https://www.eevblog.com/about/contact/
https://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ
The range of this thing is 2 meters. I make that about 12ns flight time at the longest range.
I have no idea how these devices work but is it even possible to get that raw flight time out of them?
Or do you mean something else?
I meant what I said. "Raw" means the microsecond timings from the device, not calculated results that have been converted to inches, centimeters, or some other units of measure. The device does not output PWM values of actual light TOF. There are no sub-microsecond timings (the minimum return pulse is 115 us). You may have "no idea how these devices work" but the datasheet is available to all of us.
Does it really tell us how this thing works?
-Phil
A year ago, at the Sensors Expo in San Jose, I saw a demo by the Ledar guys https://leddartech.com/distance-measurement/#
Looks like a similar technology, except they were looking in 16 directions at the same time. Apparently using LEDs, not lasers.
Either way, resolving 1mm seem like quite a trick. That's like 3 picoseconds !
If the modulation frequency results in a modulation wavelength of two meters, you can compare phases of the transmitter and receiver over several continuous periods with a quadrature mixer/detector to get the distance. You don't need to measure the actual pulse return time.
-Phil
I kind of imagine there is a modulated signal going out, and that modulated signal is received back. Plus a ton of noise. Somehow what goes out is correlated with what comes in. And after a lot averaging a distance estimate is made. Equivalent to a new picoseconds at the speed of light.
Boggles my mind. But hey, those LIGO guys do the same thing to detect gravity waves. Detecting the movement of mirrors down to a thousandth of the size of a nucleus over a distance of 4Km.
As to how it works, here is a link to a fascinating thread, and if I'm not mistaken, it led to a couple of viable, successful products.
time-of-flight-laser-project
Another one, a followup by Bean,
Measure-the-speed-of-electricity...
I haven't looked at the data sheet for this new baby, but I'd guess it is based on the same principles.
There might be a more technical description of what the module is doing, but for trade secret reasons, ST may not divulge the particulars. If anyone finds something feel free to post. Ideally it should describe in a lot more detail what's happening internally.
Erco will be first to note you can get something similar from Chinese eBay for $10 or $15. But LaserPing is particularly brilliant because it's a drop-in physically and electrically compatible with everyone's favorite (and most copied) ultrasonic distance measurement module.
-- Gordon
$7.05 and dropping to be precise: https://www.ebay.com/itm/VL53L0X-Time-of-Flight-ToF-Ranging-Sensor-940nm-Laser-Distance-Module-I2C-IIC/112147451264
That's an I2C sensor, as Gordon mentioned, the Laser PING makes comms easier, outputting a pulsewidth or serial data.
SWEET!
I don't see a datasheet for the sensor. The LaserPing's sensor FOI and FOV differ from both the RFD77402 and VL53L0X. It physically resembles the RFD77402 but isn't exactly the same.
-Phil
While the respective datasheets of these products lack a low-level discussion of how they implement ToF, what's far more interesting (in my mind) is that both have receiver arrays which are capable of mapping. Obviously LaserPing doesn't use this feature, but it shows these and similar modules have wide-ranging use in low-cost robotics.
In Section 4 (Performance) of the RFD77402 datasheet, both the FoV and FoI match. It seems the FoI is software configurable, but defaults to 23 degrees.
The parallax doc says typical is 15hz in pwm, and 22 in serial mode. I assume the difference is because the timing is different depending on the distance, and the datasheet is using the worst case timing for longest range reads.
E.g. http://myvcsel.com/emerging-applications/
At the end of the day it's a laser.
But what gets me is that a 1mm resolution is a difference in time of 3 picoseconds.
I'm sure the clock of this device is not running at such a rate. Something cunning is going on to do this.
-Phil
Reminds me now of the practical exercise we did in university 4 decades ago. With a chopper and a lot of averaging (integrating) we could tell if a light bulb was on or not across from the other side of the lab. Even if it was so dim you could not see it glow.
The company I'm working for now is spending over 2000 dollars a pop on FLIR IR cameras to detect pedestrians at crossings. Given the results I'm seeing from those cameras I'm thinking a couple of these pings stuck on the poles at each intersection would work as well. Or better.
The other advantage of modulation, of course, is noise-immunity to external IR sources.
-Phil
Except the part about squeezing all that into a tiny chip one can by for a few cents. After all these years chip technology still boggles my mind.
This is going to be very useful!
Would be interesting to see the same graph for different distances. Say, 60mm (a little above the 50 wall), (you did 240), 500mm, & 1500mm
I was looking at page 31 of the RFD77402 data sheet,
Figure 17: Scatter Chart Showing Measured Distances Versus Actual Distance .
I think the dots on the graph represent different sensor chips, not the statistical scatter for an individual chip. At 240 mm the +/- 10% scatter lines would allow values from 216 to 264, but my result with my one sample chip is tighter, from 236 to 247. The 3-point median held it to 237 to 244 and the added lowpass to 239 to 242. With a ruler, I measure it crudely as pretty close to 240mm. So, there may be variation from one chip to another, but calibration may be possible, to the extent that speed of response can be traded for accuracy. I don't see anything specifically about performance in the '77402 data sheet that addresses the sampling statistics of an individual device.
757 samples average = 240.33, standard deviation = 1.93
After filters, standard deviation = 0.58, time constant ~0.5s
Sorry.