上一节介绍使用cartographer的思路和大纲,其中第一步是先处理各类原始数据转换成cartographer数据类型。
本节就开始介绍将最常用的激光雷达LaserScan传感数据转换为cartographer中的TimedPointCloudData数据。还有cartographer中的TimedPointCloudData数据和Ros的sensor_msgs::LaserScan数据相互转换,方便引入Rosbag进行储存和读取。
目录
2:LaserScan传感数据转换cartographer数据
1:TimedPointCloudData数据类型
【timed_point_cloud_data.h】中查看数据结构:
//时间
common::Time time;
//原点
Eigen::Vector3f origin;
//点云数据
TimedPointCloud ranges;
//坐标
Eigen::Vector3f position;
//帧内时间
float time;
//反射强度
std::vector<float> intensities;
2:LaserScan传感数据转换cartographer数据
cartographer::sensor::TimedPointCloudData ScanToTimedPointCloudData()
{
cartographer::sensor::TimedPointCloudData time_point_cloud;
time_point_cloud.time = cartographer::common::NowTime();
cartographer::sensor::PointCloudWithIntensities point_cloud;
float angle_min = -M_PI;
float angle_max = M_PI;
fl