视觉SLAM-1-ORB_SLAM2环境搭建以及实时点云的保存和加载

ORB-SLAM2环境搭建

操作系统:ubantu16
参考博文:https://blog.csdn.net/learning_tortosie/article/details/79881165
注明:若计算机性能不强,建议打开"build.sh"和"build_ros.sh"文件,将make后面的-j去掉。
编译过程中一定会遇到各种错误,请仔细查看提示并百度,全部都能解决。

利用MATLAB对相机进行内参标定

相机内参标定:https://www.cnblogs.com/flyinggod/p/8470407.html#commentform
Asus.yaml文件中的参数改成自己相机的参数,不精确问题不大,程序自己会找最优解。

实时点云的保存与加载

ORB-SLAM2点云保存https://blog.csdn.net/felaim/article/details/79667635
ORB-SLAM2点云加载https://blog.csdn.net/felaim/article/details/79671160
注明:最后的mySettingsFile = strSettingsFile;应该写在system.cc的构造函数中

=重新编译时一定要先执行"build.sh"后"build_ros.sh"。因为前者是作用于外层的ORB-SLAM2,后者才是作用于里层ROS的可执行文件,里面的ROS执行文件需要引用外层libORB-SLAM2库,所以先更新外层,再更新里层,不能直接编译"build_ros.sh"。

bin文件转换

经过上述操作,相信已经得到了MapPointandKeyFrame.bin文件,现将bin文件转换pcd和las
bin转换为pcd:https://blog.csdn.net/qq_35491306/article/details/82903371
las转换为pcd:https://blog.csdn.net/qq_40985985/article/details/106333359

上述点云格式转换其实可以直接在CloudCompare中进行直接转换。

保存为其他格式文件

由于bin文件为二进制文件,只能在特定的软件中读取,而不能直接文本打开文件看看数据,因此就想直接保存为PCD格式的文件。
PCD文件格式:https://blog.csdn.net/a464057216/article/details/54864591
将上述map.cc文件中的save函数进行修改,原函数中的f.write是写入二进制数的,因此要直接利用输入输出流ofstream,直接f< 注意:一旦修改,之后的点云的加载就用不了了,本人保存点云仅需要坐标数据在其他软件打开供研究使用,本人修改输出文件类型是因为改博客生成的点云在其他平台打不开。

你可能感兴趣的:(slam)