“一起做RGB_D SLAM”学习笔记(67)

---------原作笔记,感谢高博
https://www.cnblogs.com/gaoxiang12/tag/一起做RGB-D SLAM/

part6 VS part5

slamBase部分:基本相同,除了part6的slamBase.h中FRAME帧结构中添加一句int frameID;
*.cpp:part5实际上已经基于匹配和计算距离做了初步的位姿优化,part6主要的部分只是添加了g2o模型进一步优化,因此需要做出一些改动,具体改动方案解析见https://blog.csdn.net/qq_40313712/article/details/86500116
*.pro:需要添加一些和g2o有关的库

part7 VS part6

只是又校核了一些关键帧,目前尚未用到基于特征点的词袋模型。

slamEnd.pro文件的书写

QT       += core

QT       -= gui

QMAKE_CXXFLAGS += -std=c++11

TARGET = slamEnd
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

SOURCES += \
    slamEnd.cpp

LIBS += -L$$PWD/../build-slamBase-Desktop-Debug/ -lslamBase

INCLUDEPATH += $$PWD/../slamBase

#指定链接到项目中的库列表
LIBS +=\
        /usr/lib/x86_64-linux-gnu/libopencv_core.so \
        /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so \
       /usr/lib/x86_64-linux-gnu/libopencv_highgui.so \
       /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so  \
       /usr/lib/libpcl_common.so.1.7 \
       /usr/lib/libpcl_io.so.1.7 \
       /usr/lib/libpcl_io.so\
      /usr/lib/libpcl_io_ply.so.1.7 \
       /usr/lib/libpcl_visualization.so.1.7\
/usr/lib/libpcl_visualization.so\
/usr/lib/libpcl_filters.so.1.7\
/usr/lib/libpcl_filters.so\
/usr/lib/libvtkCommon.so\
/usr/lib/libvtkFiltering.so\
/usr/lib/libvtkGraphics.so\
/usr/lib/libvtkRendering.so\
        /usr/lib/x86_64-linux-gnu/libboost_system.so\
/usr/local/lib/libg2o_core.so\
/usr/local/lib/libg2o_cli.so \
/usr/local/lib/libg2o_types_slam3d.so\
/usr/local/lib/libg2o_types_slam2d.so\
/usr/local/lib/libg2o_solver_eigen.so\
/usr/local/lib/libg2o_solver_cholmod.so \
/usr/local/lib/libg2o_solver_csparse.so \
/usr/local/lib/libg2o_csparse_extension.so \
/usr/local/lib/libg2o_stuff.so\
           /usr/lib/x86_64-linux-gnu/libcxsparse.so

INCLUDEPATH += /usr/local/include  \
                /usr/include/opencv2 \
                /usr/include/pcl-1.7 \
                /usr/include/pcl-1.7/pcl\
                /usr/include/eigen3  \
               /usr/include/vtk-5.8\
/usr/local/include/g2o\
                    /usr/include/ni \
                   /usr/include/suitesparse

备注:
g2o依赖的库有csparse和eigen库,所以也要把这两个库添加进来,否则g2o也同样找不到库,导致编译不通过。
pcl库依赖boost的system库,一定要添加这个库,否则编译过程中就会提示:找不到类似generic_system的这种错误。
需要添加C++11配置说明才能运行过去
**参考:**https://blog.csdn.net/jasmine_shine/article/details/50973748#commentBox

BUG处理

error: no frameID
解决:在include/slamBase.h文件的FRAME帧结构中添加

int frameID;  

参考:https://blog.csdn.net/qq_36417644/article/details/81174160
error: undefined reference to symbol 'cs_di_calloc’
解决:应该是缺少了cxsparse,在*.pro文件中把其链接库链接上去

LIBS +=\
/usr/lib/x86_64-linux-gnu/libcxsparse.so

参考:https://github.com/gaoxiang12/slambook/issues/103
经验之谈:一般,在其他IDE上运行过去,但在qt上过不去,报一大堆看不懂的错误,都是.pro中的链接库没写对/全;这时需要对照原函数和错误提示添加/检查链接库

猜你喜欢

转载自blog.csdn.net/qq_40313712/article/details/86585172
今日推荐