Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What is the focal distance unit of HDL 64e? meter or centimeter? #499

Open
HappengorC opened this issue Dec 27, 2022 · 2 comments
Open

What is the focal distance unit of HDL 64e? meter or centimeter? #499

HappengorC opened this issue Dec 27, 2022 · 2 comments
Labels

Comments

@HappengorC
Copy link

Hi,

I want to ask what is the focal distance unit of HDL 64e in the HDL 64e XML?

Question:
Is the unit of focal distance meter?

I assumed the focal distance has the unit of meter after I read the source code.

The following equation can compensate for the intensity according to the HDL 64e s3 user manual:

float focal_offset = 256
* (1 - corrections.focal_distance / 13100)
* (1 - corrections.focal_distance / 13100);
float focal_slope = corrections.focal_slope;
intensity += focal_slope * (std::abs(focal_offset - 256 *
SQR(1 - static_cast<float>(tmp.uint)/65535)));

But in this case, the focal distance is assumed to have the unit of centimeter and corrections.focal_distance has the unit of meter. Hence, I think it would be
float focal_offset = 256 * (1 - corrections.focal_distance / 131) * (1 - corrections.focal_distance / 131);
, if corrections.focal_distance has the unit of meter.

valgur added a commit to valgur/velodyne_decoder that referenced this issue May 4, 2023
- Corrected the focal offset coefficient being off by 100x.
- Apply hor / vert offset correction at the last step only

ros-drivers/velodyne#499
valgur added a commit to valgur/velodyne_decoder that referenced this issue May 5, 2023
- Corrected the focal offset coefficient being off by 100x.
- Fix two-point calibration being applied outside its applicable range.
- Apply hor / vert offset correction at the last step only.
- Use x and y mean correction for z instead of y.
- Fix focal slope factor in HDL-64E calib parsing.

ros-drivers/velodyne#499
@from-Pb2Ag
Copy link

Hi, I am working with nuScenes dataset which uses a HDL-32E lidar. When considering the intensity calibration, I find it is interesting when compared to the aforementioned HDL-64E lidar: which has channel-specific focal_distance, and compute focal_offset with some equation and agrees with the manual.

However, it seems focal_distance is channel-nonspecific for HDL-32E as the following code shows, which is also not addressed in corresponding manual. And I wonder whether it has some method to compensate for the intensity just like what we have done with HDL-64E, or it is infeasible (or unnecessary.) to do so. Could you offer me some insight? Thanks a lot.

# standard Velodyne HDL-32E calibration parameters
lasers:
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 0, rot_correction: 0.0,
vert_correction: -0.5352924815866609, vert_offset_correction: 0.0}

@JWhitleyWork
Copy link
Contributor

I'm sorry but I don't know enough technical details about the hardware implementation to be able to answer this. It would be helpful if someone could reach out to Velodyne to ask this question and post a response here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants