Improving LiDAR sensor measurements at close range

Hi,

I’m using [LiDAR Lite V3HP for short distance measurements (like up to 2m).

LiDAR is working just fine from 90cm to 200cm, but inaccuracy from 30cm up to 90cm is 5cm (this is exactly what documentation is saying).

Do you have any tip what can i do to improve accuracy when distance is below 90cm?

I’ve tried to use different colors/materials as detectable object, but it didn’t help much (except that shiny one were terrible).

Current LiDAR settings:

SIG_COUNT_VAL (register number: 0x02) - 0x1D

THRESHOLD_BYPASS (register number: 0x1C) - 0x00

ACQ_CONFIG_REG (register number: 0x04) - bits 2 and 4 are set to True

REF_COUNT_VAL (register number: 0x12) - 0xFF](https://static.garmin.com/pumac/LIDAR-Lite_v3HP_Instructions_EN.pdf)

I believe this one https://www.sparkfun.com/products/18009 performs a bit better at short range; as for improving the current set-up, you might be able to change the lighting and/or reflectance of the object?

That is something what I’ve already tried with different colors and materials. The only thing I’ve been able to achieve is worse results with shiny objects.

Thx, I can try this sensor which you have sent :slight_smile:

I have bought a Lidar Lite V3 (not HP) and noticed the same issue as you have, that the reading is incorrect up to 90 cm. I suspect this is because the signal is too strong and thus impacting noise/peak level.

On my desk, I have plotted a line of 100 cm, with a mark every 5 cm. The Lidar at the start (0cm) and a box to reflect back the Lidar Laser signal moving every 5 centimeters. I have then adjusted the sketch to show the average of 100 readings and then make an average of that.

Then made a correction table. When the measured distance returned is below 100, you can apply the correction that belongs to the range.

E.g. if you get a distance reading of 55 cm, that is in between 53.55 and 57.38 thus the correction factor is (0.22 + 0.25) / 2 = 0.23 to apply. You get 42 cm , 55 *( 1- 0.23) , real distance.

Real	measured	Correction
		
100	100,54	         0,01
95	96,76	         0.02
90	95,2	         0.05
85	83,37	        -0.02
80	81,12  	         0.01
75	77,4	         0.03
70	75,41	         0.07
65	72,46	         0.10
60	69,14	         0.13
55	65,12	         0.16
50	61,92	         0.19
45	57,38	         0.22
40	53,55	         0.25
35	43,25	         0.19
30	40,16	         0.37
25	39,72	         0.40
20	33,24	         0.44
15	26,73	         0.55
10	22,2	         0.55
5	18,33	         0.73

While this is not 100% accurate, there are remarks to add :

  1. When looking at the average of 100 readings, without moving the box the number was fluctuating every 100 readings… WHY ?

  2. If the 100 cm line was not 100% straight in front of the sensor the readings would differ a lot.

This makes me believe that applying a correction table is providing good enough information and no need for an extra sensor.

Just an alternative thought. :slight_smile:

Thank you very much for checking that!

I tried using excel to prepare mathematical equation, which will compensate LiDAR inaccuracy.

It was quite good idea, but in the end I also mounted [VL53L1X which is much more accurate (up to 3mm) on distance up to 140cm. This is what I need and for now I think i will just stop using LiDAR.](PiMoroni VL53L1X time-of-flight - distance sensor Botland - Robotic Shop)