cancel
Showing results for 
Search instead for 
Did you mean: 

VL53L5CX Multi-Zone Sensor get x,y,z of points relative to origin?

VBhat.1
Associate III

Hi, I was trying to create a small 8x8 / 4x4 point cloud using a VL53L5CX sensor, and I can get the depth data for each zone, but I was wondering if there was a way to get x,y,z from this information? Like if there was a way to know the vertical and horizontal angle for every zone on the VL53L5CX and then calculate the x,y,z location of the points using that and the depth data.

Any help would be appreciated!

20 REPLIES 20
Thank you.
This email contains confidential information. If you have received it in error, you must not read, use, copy or pass on this e-mail or its attachments.
If you have received the e-mail in error, please inform me immediately by reply e-mail and then delete this e-mail from your system. Thank you
Diese E-Mail enthaelt vertrauliche Informationen. Sollten Sie sie irrtuemlich erhalten haben, duerfen Sie diese E-Mail oder ihre Anhaenge nicht lesen, verwenden, kopieren oder weitergeben.
Sollten Sie die Mail versehentlich erhalten haben, teilen Sie mir dies bitte umgehend per Antwort-E-Mail mit und loeschen Sie diese E-Mail dann aus Ihrem System. Vielen Dank

Hi John,

Where can I find the code for VL53L5_Plane_Algo.h and its associated C files? I'd like to play around with the Plane_Detection8x8 functionality. Or if there's a better plane detection algorithm that's fine too. (we have an NDA).

Thank you

I know it's been a while, but can I know how the values for Pitch and Yaw arrays were obtained? Thank You

Hello !

I also try to get XYZ coordonates of each pixel of the VL53L5CX (with the 4x4 Matrix) but I don't understand how the Pitch and Raw values were obtained.
Thank you !

John E KVAM
ST Employee

Have a look at the two arrays. And let us consider pitch first. 

The exact center of the part is actually a dot in the center of the matrix. (Right between the zones of:

135,45

225, 315

we are using a cylindric coordinate system. So the 0 angle is to the west, 90 degrees North, 180 East and 270 is South. 

Notice the 45's are at the one up, one over, two up and two over etc.

But you need another angle. You need to know how far off straight ahead your target is. And that's the Yaw. 

If you are very near straight ahead, the angles are small (4.5) and they get larger as you get toward the 45. 

(The sensor is 43 degrees or so in field of video, but we are pointing to the center of the zone - not the edge. )

The result of the function call is an (X,Y,Z) point in the Cartesian coordinate system. 

So if you had an object straight ahead and 1M away, it's pitch would be anything, the yaw would be 0 and the distance from the sensor would be 1M. In the XYZ coordinate system it would be (0,0,1)

- john


If this or any post solves your issue, please mark them as 'Accept as Solution' It really helps. And if you notice anything wrong do not hesitate to 'Report Inappropriate Content'. Someone will review it.

Thank you.
I understand the idea. Just for the ones who would do it with the 4x4 configuration, there are the two matrix pitch and yaw :

const double Pitch_4x4[16] = {
    66.67,  73.25,  73.25,  66.67,
	73.25,  80.24,  80.24,  73.25,
	73.25,  80.24,  80.24,  73.25,
	66.67,  73.25,  73.25,  66.67
};

const double Yaw_4x4[16] = {                        
    135.00, 108.40, 71.60, 45.00,     				
    161.60, 135.00, 45.00, 18.40,                
    198.40, 225.00, 315.00, 341.60,				
    225.00, 251.60, 288.40, 315.00				
};

 
This method doesn't work so well to calculate the normal vector of the plan seen by the sensor.
Thank you for your answer !

Hello, I know this thread was quite a while ago. But is there any possible way to do point cloud generation with a Vl53L3CX at all. I am quite new to TOF Sensors. 

The VL53L3 is a single zone sensor. So you would only get 1 point in your cloud. You need the VL53L5, L7, or my favorite , the L8. 


If this or any post solves your issue, please mark them as 'Accept as Solution' It really helps. And if you notice anything wrong do not hesitate to 'Report Inappropriate Content'. Someone will review it.

Hello, this is quite late but would you add this piece of code in the main.c file for a 53L5A1 MultiSensorRanging or SimpleRanging Project for example. I am quite lost on how to implement this piece of code.

John E KVAM
ST Employee

there is no way I can write that for you. But someone else already did it on another thread. Have a look at:

https://community.st.com/t5/imaging-sensors/vl53l5cx-multi-zone-sensor-get-x-y-z-of-points-relative-to/td-p/172929

 


If this or any post solves your issue, please mark them as 'Accept as Solution' It really helps. And if you notice anything wrong do not hesitate to 'Report Inappropriate Content'. Someone will review it.