这是一个用matlab编写的对很多张点云地图进行地图压缩与融合的程序。
可以用于对机器人在未知环境中进行探索实时生成的每一帧的点云图将其用EM算法生成高斯混合模型,并对每一帧的高斯混合模型进行融合,生成增量更新的高斯模型地图。也就是将点云地图用高斯混合模型地图来代替,对地图数据量进行了极大的压缩。同时本项目计算出了地图当中任意两个高斯模型之间的KL距离,对于KL距离很小的两个模型可以认为是重叠的,可以只保留一个。
1.GMM文件夹是进行测试的数据集,里面有每一帧的图片,点云图信息和位姿信息。
2.project文件里是可执行的程序。
3./project/GMM4和GMM5是主程序,GMM4是直接对高斯混合模型进行了RT变换,GMM5是先对点云图进行了RT变换,然后直接生成了高斯混合模型。
1.git clone之后在matlab中打开本项目,需要修改本地的数据集文件夹地址(程序第一行filepath的地址)然后对GMM4或者GMM5直接RUN即可开始运行。
2.对GMM4或GMM5第九行的K进行修改可以设置输入为第几帧到第几帧,中间间隔几帧。
3.生成的所有高斯模型的均值存放在MU中,协方差矩阵存放在SIGMA中。
4.运行中可以生成不断增量更新的高斯模型地图,在最后会在变量L中存储任意两个高斯模型的KL距离,L 中的距离与C中的高斯模型序号相对应。