vectr-ucla / direct_lidar_odometry

[IEEE RA-L & ICRA'22] A lightweight and computationally-efficient frontend LiDAR odometry solution with consistent and accurate localization.
MIT License
815 stars 168 forks source link

some trivial questions #8

Closed narutojxl closed 2 years ago

narutojxl commented 2 years ago

Hello authors, I have some trivial questions to look for your help. Thanks for your help.

kennyjchen commented 2 years ago

Hi @narutojxl --

Thanks again very much for your questions and bug catches.

narutojxl commented 2 years ago

Thanks author fast reply. For the first question in code, Eigen::Quaternionf dq = this->rotq * (closest_pose_r.inverse());, does this dq have a actual physical meaning? Because this->rotq.inverse() * closest_pose_r represents curr scan to cloest keyframe rot, closest_pose_r.inverse() * this->rotq represents cloest keyframe to curr scan rot, they all have a actual physical meaning.

kennyjchen commented 2 years ago

Yes, dq is the relative rotation which brings closest_pose_r to this->rotq, such that

dq * closest_pose_r = this->rotq

or

dq = this->rotq * closest_pose_r.inverse()

Since we're interested in the magnitude between the current pose and a keyframe, it doesn't matter which "direction" we go since we take the absolute value of this angle (lines 1145, 1149, 1151).

narutojxl commented 2 years ago

OK, I see its meaning is a global delta_rot which transforms cloest_pose_r into curr rot. Thanks very much! My problem is solved, close it now.