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

Clarification on LiDAR tilt configuration in GLIM #86

Open
wsung1 opened this issue Oct 5, 2024 · 3 comments
Open

Clarification on LiDAR tilt configuration in GLIM #86

wsung1 opened this issue Oct 5, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@wsung1
Copy link

wsung1 commented Oct 5, 2024

Hello, koide3-san,

First, I want to express my appreciation for your incredible work!

I’m currently using GLIM to generate HD maps for my mobile robot, which is equipped with a LiDAR (OS1-64) and a built-in IMU. To expand the field of view onto the ground, I have tilted the LiDAR along the y-axis (approximately 30 degrees nose-down pitch).

I believe that the LiDAR pose should be reflected in the transformation T_world_lidar. From what I understand, this is automatically configured by T_world_imu = T_world_lidar * T_lidar_imu, as mentioned in the config_sensors.json file. Since T_lidar_imu is provided and T_world_imu can be estimated using the gyroscope, am I correct in this understanding?

If I’m mistaken, could you please advise on what steps I should take when using a tilted LiDAR with GLIM?

Thank you!

@wsung1 wsung1 added the enhancement New feature or request label Oct 5, 2024
@koide3
Copy link
Owner

koide3 commented Oct 7, 2024

Yes, it's correct. T_world_lidar is a transformation that brings a LiDAR point to the world frame, and is derived as T_world_lidar = T_world_imu * T_lidar_imu.inverse(). The initial sensor pose is automatically determined such that the gravity direction (upward direction) of the IMU is aligned with the Z-direction of the world frame, so you don't need a special care for a tilted LiDAR.

@wsung1
Copy link
Author

wsung1 commented Nov 12, 2024

I apologize for the delayed response, koide3-san.
I understand T_world_lidar = T_world_imu * T_lidar_imu.inverse but my observations do not align with this understanding.
Although my LiDAR is tilted nearly 30 degrees nose-down pitch, I didn't need to revise 'config_sensors.json' because, as we discussed, T_world_lidar should be automatically calculated to account for the LiDAR tilt and compensate for it.
However, in practice, the raw point cloud is tilted as much as the LiDAR itself (see Figure 1).
Figure 1
If the automatic calculation were correct, the point cloud should be parallel to the ground (indicated by the grey line in the middle).
The resulting map also appears tilted (see Figures 2 and 3).
Figure 2
Figure 3
Given that T_world_lidar is not correct, does this indicate a problem with the measurement of T_world_imu?
Is there a way I can debug this, possibly through the log entries shown in Figure 1:
[odom][info] T_world_imu
[odom][info] imu_bias
For a shift, the point cloud could be parallel to the ground by manipulating LiDAR config in 'config_sensors.json'
from
"T_lidar_imu" : [
0.006,
-0.012,
0.008,
0.0,
0.0,
0.0,
1.0
],
to
"T_lidar_imu" : [
0.006,
-0.012,
0.008,
0.0,
0.43,
0.3,
0.9
],
but this is nothing but a makeshift.
Your insights would be greatly appreciated.
Thank you.

@skohlbr
Copy link

skohlbr commented Nov 17, 2024

You still need to provide a correct transform for T_lidar_imu indicating the transform between LIDAR and IMU in the config. If that is set correctly, everything should be working as @koide3 described.

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

No branches or pull requests

3 participants