Closed narutojxl closed 2 years ago
Hi @narutojxl --
1.3.1
1.3.1
q
and -q
represent the same rotation so sign flips ultimately won't affect the solution. Sign flips are not preferable for controllers, however, so we chose to keep the check prior to publishing to minimize number of operations in the main loop.Thanks again very much for your questions and bug catches.
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.
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
).
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.
Hello authors, I have some trivial questions to look for your help. Thanks for your help.
this->rotq.inverse() * closest_pose_r
norclosest_pose_r.inverse() * this->rotq
?theta_rad *=2;
?