0%

ROS melodic 下使用 CSM 库

在学习slam的时候偶尔需要用到 CSM 这个库,但是目前这个库最高支持到kinetic可以直接通过 apt install 下载,后来找到几种做法可以通过源码安装 CSM 使用,在这里记录一下,另外注意一下安装csm需要安装一个gsl的库。

首先从Github上把源码 clone 或者下载下来解压,然后有两种思路可以安装。

  • 第一种方式:只在目录内安装,然后作为第三方库保存在自己的workspace里,比较推荐这种方法,因为安装到usr目录的话可能后续如果要清理会比较麻烦。具体做法是在 csm 目录里使用作者写好的脚本安装:

    1
    ./install_quickstart.sh

    安装完成后使用 csm 所需的文件都在 csm/deploy文件夹里,在需要用到csm的项目和目标链接的CMakeList.txt中加入这两项添加csm的目录和链接csm的动态库(csm的目录位置换成你自己的):

    1
    2
    3
    4
    include_directories(
    ...
    PATH_TO_CSM/deploy/include/csm
    )
    1
    2
    3
    4
    target_link_libraries(target_name
    ...
    PATH_TO_CSM/deploy/lib/libcsm.so
    )

    然后就能顺利编译通过了。

  • 第二种方式:直接安装到本机上,和上面的过程差不多,在 csm 的目录下执行常规的cmake安装操作:

    1
    2
    3
    4
    5
    mkdir build
    cd build
    cmake ..
    make
    sudo make install # 这一步会安装csm到本机上

    安装完成后应该能找到这几个位置: /usr/local/include/csm/usr/local/lib/libcsm.so/usr/local/lib/libcsm-static.a。也是一样在CMakeList.txt做相应修改就可以了:

    1
    2
    3
    4
    include_directories(
    ...
    /usr/local/include/csm
    )
    1
    2
    3
    4
    target_link_libraries(target_name
    ...
    /usr/local/lib/libcsm.so
    )