从编译运行orbslam2说起
0.基础
"0.基础"而不是"0基础",把它放在1的前面,用0来强调做某件事之前必须已经完成某事的概念.正所谓磨刀不误砍柴工,如果你不想浪费3个小时坎坷的去砍柴,那最好老老实实花上1个小时磨好刀.
本文面向具有cmake,linux shell,ROS基础的SLAM研究者.请读者自行学习以下知识:
robot SLAM基础与orbslam2简介
cmake基础
linux与linux shell基础
ROS基础
1.编译
第三方库的安装或现场编译
首先orbslam2作为一个大型程序,并不是完全自己造的轮子,而是在一些非核心的地方使用了第三方库的.学计算机的都知道如果自己程序使用了第三方库,编译时需要找到头文件,链接时需要找到库文件.大型程序的构建过程也是一样的,orblsam2需要找到第三方库的头文件和库文件,这个交给cmake来处理,我们重点来谈谈它的第三方库.这又分为两个种:
直接使用第三方库.在orbslam2中就是OpenCV,Pangolin等.这一部分必须事先已经正确安装到系统中了
对第三方库做了修改的.在orbslam2中就是g2o,dbow等.这一部分必须由作者提供修改后的源码,现场编译
为了说明这点,我们可以查看工程的CMakeLists.txt文件
target_link_libraries(${PROJECT_NAME}
${OpenCV_LIBS}
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/Thirdparty/g2o/lib/libg2o.so
)
从上