这是一个双机器人SLAM的后端matlab程序,用于记录前端的数据,生成轨迹,根据回环检测结果进行后端优化。
输入是:
1.两个机器人每一帧的位姿矩阵(每一帧相对于前一帧的位姿矩阵),也可以调成绝对位姿矩阵。
2.每一帧的netvlad文件
3.匹配帧之间的相对位姿矩阵
本项目的功能首先是读取前端产生的位姿矩阵,生成两个机器人各自的轨迹图。然后是对输入的两个机器人的netvlad文件进行匹配。找出每个机器人自身前后帧之间的匹配情况和两个机器人之间的匹配帧。接着根据前端位姿矩阵和回环检测的结果调用图优化库进行图优化,读取图优化之后的新的位姿矩阵进行绘图,可以实现轨迹合并和轨迹优化的功能。
1.主程序是server.m程序,其他.m文件是当中调用的各种函数。
2.进行g2o图优化的代码在distributed-mapper-master文件夹(尚未进行编译)
git clone之后用matlab打开本项目,首先需要修改代码前两行和48-53行的输入文件的目录。
然后需要修改第86行的目录地址,在此之前需要对distributed-mapper-master进行编译。
第52和53行的输入文件是匹配帧之间的相对位姿矩阵,其实是先算出匹配的帧数再从前端获取的数据,其实可以设置为单位矩阵。