LIDAR-Lite 3 Laser Rangefinder correlation data

I am having difficulty using “myLidarLite.correlationRecordToSerial()” to output the correlation data for the LIDAR-Lite 3 connected by i2c to an ATmega 1284. I have tried different combinations of the parameters that show in the LIDARLite.cpp file but always receive the error “invalid use of void expression” for the line of the sketch:
Serial.println(myLidarLite.correlationRecordToSerial());
There are no v3 examples showing how to properly use this. I have tried the line which appears in the v3HP_I2C.ino example: myLidarLite.correlationRecordToSerial(255); but get the same error.

Any guidance would be appreciated.

1 Like

I answered my own question which now leads to another.

The command “myLidarLite.correlationRecordToSerial(256);” by itself sends a serial comma delimited file with the number of elements specified in the parameter (in this case 256) to the monitor of the Arduino IDE. I was wrong trying to embed that in a Serial.print statement.

Now my question is what that data signifies. I am looking for a way to determine if the return distance reading has been corrupted by reflection from or penetration of a glass surface.

1 Like

Indeed, that is the case.
As you can see here from the library source code, it assumes Serial as the debug interface and prints to it directly. Of course, that makes sense since by default on Arduino platform Serial is indeed the one that will show up on the Serial Monitor.

The datasheet/manual does not have many details other than how to read the correlation record and that’s about it.
That being said, this model has been around for a while and there are some bits of information you can find online, such as this post (quoting the manufacturer directly) and this older manual, pages 19-21 may be of interest to you.

I hope this information helps!

Sincerely,

Thanks so much! I wish Garmin was as helpful as you have been. The old manual gave me the information I needed. If you plot out the 256 data points for each line of data you get the correlation waveform as shown on the pages of the old manual you referenced. I now have to figure out how it might be possible to use that data in real time to tell if erratic readings are being caused by reflections off of or partial penetration of glass surfaces.

1 Like

Glad to know the info helped. Good luck with the project!

I need to call on your expertise once again. I am working to develop a product around the LidarLite and am trying to mitigate the effects of reflection / penetration of glass surfaces. I have purchased from you both the v3 and the v3HP models which have slightly different control registers and Arduino libraries. The correlation data dump available in both reveals some helpful data but would be difficult to process in real time. The register 0x4c PEAK_BCK of the v3 provides second peak data which is very helpful to my cause but it is not available in the v3HP which I would prefer to use for its lower power consumption and IPX7 rating.
I have tried reading the 0x4c register in the v3HP in case it was an unsupported feature but it contains no data. The literature for the v3HP in the detailed description for register 0x01 says “additional returns can be evaluated using data downloaded from the peak stack registers, 0x26 and 0x27”. Reading those registers provides data which doesn’t vary much and I’m not sure what it means. Any advice you could give me as to how to obtain second peak data or any other data to help identify false return situations from the v3HP would be very much appreciated.

1 Like

Unfortunately I do have any information concerning those details for the LLV3HP other than what is already in the published documentation.

Since the Garmin may not answer these kind of questions directly I’d recommend raising an issue on their official GitHub concerning this. That way you’ll get the attention of a software developer from their team that does have access to all the proprietary information that we are not privy to, you and I. That is probably your best bet in getting details on:

  • Is the data available at all on the LLV3HP
  • If so, how to access it
  • And if accessible, how to use it (guidelines, ideas, etc.)

Also, if the data is too much to process in real-time you may simply want to use the sensor in many, many different test cases with various lightning conditions, noise, surfaces, angles, etc. and create a model of all those cases. Then you can identify the various patterns of the data returned compared to the situation and find some shortcuts so you can do it in real-time with minimal processing effort/time required.

Sincerely,

Thanks again for your help. I have posted a new issue but don’t see many responses to previously posted ones. Too bad Garmin bought out Pulsed Light - based on the old manual you sent me they appeared to be much more forthcoming with information.

1 Like

Yes, I just saw the issue you created. Hopefully you’ll get some useful answer soon. If not, let me know and I’ll see what I can obtain from our contact at Garmin.

Good morning. It has been 12 days since I posted the issue “LIDAR-Lite v3HP second peak data? #18” on the Garmin GitHub page with no response. If you could reach out to your contact it would be greatly appreciated.

1 Like

@drbrodie
I will forward your concern and post again here when I get a reply.

Hey @drbrodie

Here’s some extra info I just received:

I think they were referring to this commit specifically.

Let me know if that helps.

Sincerely,

Hey, thanks again - that was fast! I really appreciate your willingness to help.
I have been playing with the Peak Stack data using that new function but have yet to discover how to use it to detect glass. I’ll keep working on it but if anyone else has found a solution I would love for them to reply.

1 Like

I have set up an automated test stand to do what you have suggested above and am capturing the distance, signal strength and peak stack readings in a variety of settings in an effort to find a correlation to “bad” distance readings (i.e. where the difference between the LL3 VHP reported distance and the actual is substantial - as in when encountering glass). So far, this has been elusive.
I have found numerous circumstances where the LL3 VHP reports a reasonable distance but the signal strength shows as zero. Any idea how this could be possible?

1 Like

Hmm, that is unfortunate. Some of the situations may be identifiable but some other ones may not. Unfortunately, I have not tried this personally with v3 (only with v1 & v2) so I’m not too sure about the differences there.

Not too sure on that one. You may want to contact the Garmin support through RobotShop’s private support on that.
@geraldinebc15 Want to transfer it to a support ticket? As far as I know Garmin’s support for this kind of stuff redirects through us anyway.

Sincerely,

If you can transfer that to a support ticket that would be great. Let’s see if it just comes back to you.

1 Like

Hello @drbrodie,

We created a support ticket regarding this subject, we will notify you as soon as we get a response from the manufacturer.

1 Like

@drbrodie, would you please describe the conditions in which you are getting a plausible distance, but a zero signal strength? In that condition does it consistently report a plausible distance and zero signal strength?

1 Like

I have prepared a detailed write up in Word and actual test data in Excel in response to your question but cannot upload them here. Is there a way of sending these to you?

In case I can’t send you the detailed information in Word and Excel as mentioned in my previous post, let me give you a short answer to your question.
I am scanning left to right across the inside of a sliding glass door( back-lit by sunlight) in 0.18 degree increments. With 90 degrees being normal to the surface, beginning at 114 degrees and continuing to the end of the scan at 120 degrees (i.e. 24 to 30 degrees off normal) I observe instances where a distance is output but the signal shows as zero. This occurs in 17 of the 132 readings. The non-zero readings are all around 1100 cm while the actual goes from 331 to 349 cm with the changing angle.
First, I need to understand how the device could produce a non-zero distance with a zero signal.
My second question is more general. When I said “plausible” I meant that, not knowing the actual distance, one might conclude that they were getting a valid distance. I don’t need a high degree of accuracy in my application but I do need to know very reliably if a reported distance is completely bogus so that it can be flagged. Any approaches that you can suggest to develop an algorithm solely using available LL3VHP data would be very much appreciated.

1 Like