37 const auto& robot_T_sensor = sensorPoses.at(scan.header.frame);
39 const auto&
timestamp = scan.header.timestamp;
41 if (not robotPoseQueue.has(
timestamp.toMicroSeconds()))
47 const Eigen::Isometry3f map_T_robot =
48 robotPoseQueue.lookupInterpolate(
timestamp.toMicroSeconds())->pose;
49 const Eigen::Isometry3f map_T_sensor = map_T_robot * robot_T_sensor;
51 auto cloudSensorFrame = toCartesian<Point>(scan.data);
54 rangeFilter.applyFilter(cloudSensorFrame);
57 pcl::transformPointCloud(cloudSensorFrame, cloudMapFrame, map_T_sensor);
60 projector.
project(cloudMapFrame);
62 *cloud += cloudMapFrame;