voidScanMatchPLICP::ScanMatchWithPLICP(LDP &curr_ldp_scan, const ros::Time &time) { // CSM is used in the following way: // The scans are always in the laser frame // The reference scan (prevLDPcan_) has a pose of [0, 0, 0] // The new scan (currLDPScan) has a pose equal to the movement // of the laser in the laser frame since the last scan // The computed correction is then propagated using the tf machinery
// account for the change since the last kf, in the fixed frame // 将odom坐标系下的坐标变换 转换成 base_in_odom_keyframe_坐标系下的坐标变换 prediction_change = prediction_change * (base_in_odom_ * base_in_odom_keyframe_.inverse());
// the predicted change of the laser's position, in the laser frame // 将base_link坐标系下的坐标变换 转换成 雷达坐标系下的坐标变换 tf2::Transform prediction_change_lidar; prediction_change_lidar = laser_to_base_ * base_in_odom_.inverse() * prediction_change * base_in_odom_ * base_to_laser_;