-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Is the statement about extrinsicRPY in the readme wrong? #335
Comments
@inntoy Thanks for pointing this out. When I wrote the readme and comments, there were some wrong descriptions about rotations. If you feel up to it, please free to send a push to the repo. It's great to see the results like this. |
@TixiaoShan Thanks for such a quick reply. I'm glad my understanding is correct. I will submit a revised description of extrinsicRPY. |
@inntoy I also find in ImuConverter function that the q_final expression is wrong. But in my opinion, I preserve the yaml extrinsic rotation and transition which imply the convert a point from imu coordinate to lidar coordinate. And then, I change the q_final expression to |
@Richardson-Chong I think your approach is correct. extQRPY(extrinsicRPY) is only used to calculate q_final in the code. |
Have you ever noticed the |
@Richardson-Chong In imuHandler, with the ImuConverter function, imu raw data (acceleration and angular velocity) has been converted to another coordinate system |
You are right. Now the only thing I don't figure out is the gravity acceleration setting of Gtsam. |
@Richardson-Chong In my opinion, the gravity vector should be in the world coordinate (i.e. (0,0,-9.8)). That's why the author said to use a nine-axis IMU, because it can give us the quaternion |
What I mean is that if author use B* as coordinate, should the gravity acceleration also be transformed to B*? But in the code, imuGravity is just equal to g in B. |
@Richardson-Chong Actually, the initial body coordinate (B0) is not necessarily the world coordinate. It can be a rotation between them, which is |
不好意思,这里为了理解的更清楚点,就直接中文给您回复了: |
imuConverter那个函数只是把imu测量值转换到了一个和lidar坐标系只有平移而没有旋转关系的坐标系b*。那预积分其实都是在b*下进行的,那肯定是要加上平移关系才能转换到lidar坐标系下(imu2Lidar里只有平移)。 |
OK,我大致明白了,我仔细看下源码,后面再和您详细交流下 |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
您好,您的邮件我已收到。————祝您每天都有个好心情!
|
can i ask you something? |
您好,您的邮件我已收到。————祝您每天都有个好心情!
|
Thanks for replying .
i am trying to know how to implement the 45 degree tilted velodyne
lidar(vlp16) with the imu(3DM-GQ7 GNSS).
i just tried to modify extrinsic matrix in the params.yaml.. is there a
method that i can do?
2022년 12월 8일 (목) 오후 5:49, Omega_lin ***@***.***>님이 작성:
… 您好,您的邮件我已收到。————祝您每天都有个好心情!
—
Reply to this email directly, view it on GitHub
<#335 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALFL7JY7M36LLVHWXNOERR3WMGOKXANCNFSM5UD6S6PA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
@himhan34 It should be enough to provide extrinsic matrix directly. I guess you are using KAIST dataset? I haven't tested LIO-SAM on this dataset, can you share the running results? |
Um, is the coordinate system of each sensor the same as in the picture I drew? |
2022년 12월 8일 (목) 오후 8:59, Omega_lin ***@***.***>님이 작성:
… wow thanks for replying. i am using my own dataset which is recorded in my
lab's corridor .
this is a extrinsic matrix that i used
extrinsicRot: [1,0,0, 0,1,0, 0,0,1]
extrinsicRPY: [0,1,0, 1,0,0, 0,0,-1]
really thanks for your reply. i am handling this problem in 3 weeks
Um, is the coordinate system of each sensor the same as in the picture I
drew? att means the attitude, acc means the acceleration. @himhan34
<https://github.com/himhan34>
[image: device]
<https://user-images.githubusercontent.com/39400163/206441116-46d1a2a6-cfcf-4eae-ba9b-3e0edfc1e680.png>
—
Reply to this email directly, view it on GitHub
<#335 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALFL7J6UABWHCYDBPCRMPODWMHES3ANCNFSM5UD6S6PA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
for the not 45 degree tilted i think the coordinate is like this. |
I found that |
the pic that i uploaded first was the flat situation, |
Oh, I see. It looks like your extrinsics are wrong. Maybe you can use a calibration tool to get the extrinsics between LiDAR and IMU. I advise this: https://github.com/hku-mars/LiDAR_IMU_Init. But please note that the extrinsic matrix obtained by using this method is |
and interestingly
thanks. i will try that, thanks for helping me!. |
@himhan34 Also, according to this picture, I visually estimate that the rotation in the extrinsics should be: You can write it into your config file, extrinsicRot and extrinsicRPY should be the same. |
Oh, forgive me, looks like the rotation I gave is wrong. Just uses the result from the calibration tool. |
@himhan34 First, check your imu topic name(such as |
thanks i will check it and adept to my config.yaml in lio_sam. |
The saved file will give transform matrix |
thanks!!! have a good day! is it okey that if i have some questions, can i ask you personally in email? |
Sure, my email is [email protected] |
thanks!! have a good day!
2022년 12월 8일 (목) 오후 11:40, Omega_lin ***@***.***>님이 작성:
… thanks!!! have a good day! is it okey that if i have some questions, can i
ask you personally in email?
Sure, my email is ***@***.***
—
Reply to this email directly, view it on GitHub
<#335 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALFL7J7BPLVCAWENPVBZARTWMHXONANCNFSM5UD6S6PA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
I have the same confusion. Why not align the initial body coordinate (B0) with the world coordinate (NEU)? Have you solve the problem? |
@HerB1998 What I said was wrong. First, the imu-integration process is carried out in the local frame |
Hi what is the tool used for lidar-imu calibration. |
您好,您的邮件我已收到。————祝您每天都有个好心情!
|
hello,my imu do not ouput attitude quaternion ,The output is all 0.Did it make any difference? |
您好,您的邮件我已收到。————祝您每天都有个好心情!
|
sorry for the late reply... you solved that? |
Hi @TixiaoShan, thanks for your execllent work!
However, after reading your answer in #6 and the explaination in the IMU alignment part of readme, I am still puzzled about the physical meaning of extrinsicRPY. In the IMU alignment part you said that "We rotate the attitude measurements by -90 degrees around "lidar-z" axis and get the corresponding roll, pitch, and yaw readings in the lidar frame", which implies that extrinsicRPY is q_l_b. But in the yaml file you gave, the physical meaning of extrinsicRPY is to transform the coordinates in the lidar coordinate system to the imu coordinate system, which is q_b_l.
What's more, in the function imuConverter(), the calculation of q_final also verifies that my statement is correct, q_final is q_w_lk, w is the world frame (usually the ENU coordinate system), lk is the lidar frame in time stamp k. Imu's orientation q_from is q_w_bk, bk is the imu frame in time stamp k. If the meaning of extRPY is according to the readme:
** q_from * extQRPY = q_w_bk * q_lk_bk ≠ q_final**
If the meaning of extRPY is according to my statement:
q_from * extQRPY = q_w_bk * q_bk_lk = q_final
So, is the statement about extrinsicRPY in the readme wrong?
Finally, thanks again for your work. Below is a map created with lio-sam. What a nice and beautiful map!
The text was updated successfully, but these errors were encountered: