cancel
Showing results for 
Search instead for 
Did you mean: 

VL53L7CX blinded by retroreflective surface

ayeiser
Associate II

I'm using several VL53L7CX sensors in a robotics application.  They work well except for when a retroreflective surface is present, which blinds the entire sensor, including SPADs not pointed at the retroreflective surface.  A large retroreflective area is not needed, only a few cm^2 patch.

This is a big problem for us since industrial environments are full of retroreflective surfaces (e.g. safety vests, markings on the ground, etc.).

I'm currently using the default values for sensitivity, sharpener, etc.  Any parameters you recommend tuning/adjusting to make this sensor more robust?

3 REPLIES 3
AlexCloned
Senior

Hi ayeiser,

That's an excellent question, and a very common and frustrating challenge with Time-of-Flight (ToF) sensors in industrial and robotics environments. You've hit on the core problem: retroreflective surfaces return an overwhelming signal that saturates the sensor's SPAD array, effectively "blinding" it.

Unfortunately, it's not possible to directly adjust the VCSEL (laser) power level on the VL53L7CX like you can with some other sensors. ST pre-configures the laser power in the firmware to ensure it remains "eye-safe" and compliant with safety regulations, so this isn't a tunable parameter for the end user.

Based on my experience with these sensors, the key to handling retroreflective surfaces lies in how you process the data and tune the sharpener parameter. Here are two main approaches you can consider, depending on your application's priority:

 

Approach A: Prioritizing the Retroreflective Object

 

This method is useful if the retroreflective object itself is your primary target.

  • Set the sharpener to 0%. This will cause the sensor to return a similar distance for most or all zones, with a large number of zones being blinded by the retroreflector, as you've observed.

  • Utilize the number of targets feature. By setting the sensor to report two targets, you might be able to find a second target that corresponds to the background or other objects. Your software would then need to identify and use this secondary target's data.

 

Approach B: Prioritizing the Background and Context

 

If you're more interested in seeing the world around the retroreflector, this is the recommended approach.

  • Increase the sharpener value to more than 5%. By raising this value, you are telling the sensor to be more selective about what it considers a valid return signal. This helps the sensor differentiate between the overwhelming retroreflective signal and the weaker signals from the background. If it is possible for the sensor to still detect de context and background you will get it this way.

  • Accept measurement errors. With this method, you will likely see a significant number of zones immediately surrounding the retroreflector report an error. However, this trade-off is often acceptable as it allows the rest of the array to provide accurate distance data for the background and other objects.


While these approaches are good starting points, the best solution will depend on your specific environment and how your application needs to react to these surfaces. It's often a matter of trial and error to find the optimal sharpener value for your use case.

I have not personally tried initializing the VL53L7CX with the firmware from the VL53L5CX to reduce laser power, but I think it would be an interesting idea to be discussed. Given that the L7CX uses a wider angle and may need more power to achieve its advertised range, it's possible the L5CX firmware would indeed use a lower power setting. I'm taking into account that an L7CX is in essence an L5 with different optics. However, I would be hesitant to recommend this without an official response from an ST engineer, as it could lead to unexpected behavior.

I've attached a few images from a test I ran to illustrate these points. I used a VL53L8CX sensor because I had the evaluation board on hand, but the principles are the same for the L7CX. The "Scene" image shows my test setup: a primary target at 1m, with other objects up to 1.2m, and a background around 2m. The "Approach_A" image demonstrates how the first strategy looks, while the "Approach_B" and "Approach_B_variant" images show the second strategy with two different sharpener levels. The retroreflective is 10 cm by 10 cm. I hope these visuals are helpful!
Scene:
Scene.jpg

Approach_B_variantApproach_B_variant.jpg

 

Approach_AApproach_A.jpg

Approach_BApproach_B.jpg

ayeiser
Associate II

This is really helpful, thanks!  We'll run some tests and keep you posted.

Also--any updates on when ST is planning on releasing a wide FOV version of the VL53L8CX?  The external sync capability will be really useful.

I don't think a wide FOV version of the L8 is in the works. Some people liked the L7, but it wasn't a big enough seller to continue the line. 

And the L5 is not lower power than the L7. It's the same VCSEL (laser) but the L7 as a wider defuser put over it. It's why the L5 is rated to 4M and the L7 rated to 3.5M.

And the L7 has to integrate for a longer time to get the 3.5M.

And AlexCloned is correct. Your sensor is not blinded by the retro-reflective material, but it probably looks like it is. 

The sharpener percentage is a bit hard to describe - and if anyone can do a better job, please do so.

At the edge of a target there is going to be one zone that is only partially covers the target. So, you get to choose if the near target is reported or the far target.

Say you have a box at 40cm, and a wall behind the box at 1M. If the edge of the box lines up perfectly with the edge of the zone, no issue. But say the box protrudes into the next zone by only a little bit, does the sensor report the near distance - basically increasing the size of the box, or report the far target, basically reducing the size of the box.

The sensor takes the distance and signal strength of each zone, and if the distance of an adjacent zone is the same AND the signal strength is greater than the sharpener percentage, the distance is reported. Otherwise, the next target is promoted. 

There is a problem with the GUI in the pictures above. They only show 1 target. But the sensor can return 1, 2, 3 or even 4 targets. I suggest you go with two targets. In our Box example above, some zones will only have 1 target - at 40cm, the ones at the edge will have two - 40 and 1M and the rest will have one - at 1M. 

And when you go with 2 targets you get to choose the order - nearest first, or strongest first. Generally nearest is strongest, but with retro-reflective vests, it can be the other way round. Go with nearest. 

Use the GIU to do your tests. But log the data and then look into the log file and you will see the other targets.

- john

 

If this or any post solves your issue, please mark them as "Accept as Solution". It really helps the next guy.
And if you notice anything wrong do not hesitate to "Report Inappropriate Content".
I am a recently retired ST Employee. My former username was John E KVAM.