Hi, Sorry if this is a newbie thing, but I’ve searched online and not found anything.
I’m taking a first pass looking at data from an OS0 rev6, and I’m surprised to find what looks like a calibration error?
Here is a map of what the lidar sees when mounted about 2m above the floor and roughly level. I take all points below z=0 and ransac out the ground plane with a 2cm residual. Before the ransac is blue, after is orange:
Crudely speaking, every 5th ring looks a few cm lower than it’s neighbors.
Data is being taken with a default configuration using the SDK, then put through a ros pointcloud topic. Is this expected? It looks to my naive eye like a small pitch error on these rings.
I also tried once with a rev7 and the same readout software and this effect was not seen, but I haven’t seen anything suggesting that the rev7 should be better in this respect, so I’m confused.
If you can share the SDK code used to generate the XYZ point cloud that would be helpful to ensure there is no simple programming issue.
Assuming the code looks correct… This technically meets the range accuracy of the REV6 datasheet, but it isn’t the typical level of accuracy I would expect (or that should be desired!), unless your floor is super specular - meaning it extends above the lambertian reflectivity range where the accuracy spec is relaxed.
Since you mentioned REV7, REV7 does have an improved accuracy over REV6 and beats its own datasheet significantly in most scenarios.
Are you the original purchaser of this lidar and is it recently purchased?
If so, I would create a technical support ticket so that we can check your sensor serial number and manufacturing history as well as check the warranty. You can also share raw data with us so we can check the context of the scene directly and better diagnose: https://ouster1234567.my.site.com/customers/s/login/?ec=302&startURL=%2Fcustomers%2Fs%2F
I’ve tried two different REV6 units with very similar results, so it’s not likely a particular unit. I’ll look into getting a raw data pull.
The floor is a scuffed, black warehouse floor, which has shiny and dull regions, but it’s not as shiny as a lab floor.
In any case, the ring pattern highly suggests that on certain rings, either the pitch or range calibration is slightly off.
I don’t think I can share the codebase (and I’m not the author) but looking through it it seems to simply use the device defaults and use the SDK to generate the pointcloud with the usual LUT methods. The code has a changelog with the most recent update as [20230403] ; have there been significant changes since then that could effect this?