slam的一些库函数安装

转载自:http://blog.csdn.net/qq_16149777/article/details/78657295

最近在学SLAM,每次编译都少了库函数,然后逆天的linux操作让我这个小白对这些错误提示还有安装库函数很崩溃,从网上找了这个相关文章,学习学习

前言

  本篇博客主要写了视觉SLAM常用库的安装方法,主要包括Eigen线性代数库、Sophus李代数库、OpenCV计算机视觉库、PCL点云库、Ceres非线性优化库和G2O图优化库等。安装步骤是直接从高翔大牛书上搬抄过来了的,目的是为了大家学习SLAM时能够顺利安装好这些开源库。Ubuntu系统为14.04版本,亲测安装有效,童叟无欺!初步先写这些库的安装过程,可能后面会写学习库的笔记等。工欲善其事,必先利其器,大家一起快乐的学习视觉SLAM吧,加油!初稿完成于2017年7月23日上午晴

  Eigen库是一个C++线性代数开源库[1],它提供了有关线性代数、矩阵和矢量运算、数值分析及相关的算法。许多上层的软件库也使用Eigen进行矩阵运算,包括g2o、Sophus等。Eigen库由Ubuntu软件源中提供,通过apt命令可以很方便的安装Eigen。

sudo apt-get install libeigen3-dev

  Eigen与其他库不同,它是一个由头文件搭建起来的库,Eigen头文件的默认安装位置在“/usr/include/eigen3/”中。我们在使用时,只需引入Eigen头文件,不需要链接它的库文件,在CMakeLists.txt里添加Eigen头文件的目录。

#添加头文件
include_directories("/usr/include/eigen3")

  学习更多Eigen知识,请参考:http://eigen.tuxfamily.org/dox-devel/modules.html

   Eigen库提供了几何模块,但是没有提供李代数的支持。一个较好的李代数库是由Strasdat维护的Sophus库。Sophus库支持三维运动的SO(3)、SE(3),此外还支持二维运动的SO(2)、SE(2)和相似变换Sim(3)等内容。它是直接在Eigen库基础上开发的,因此我们不需要安装额外的依赖库。读者可以直接从github上获取Sophus库[2],Sophus库有模板类库和非模板类库两个版本,本书选择的是非模板类库。可以通过输入以下命令获得非模板类的Sophus库:

git clone http://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff

  Sophus库本身是一个cmake工程,使用以下命令对它进行编译(Sophus库只需编译,无需安装)。

cd XXXX                 #进入Sophus库文件目录下
mkdir build             #新建build文件夹
cd build                #进入build文件夹
cmake ..                #build上一层目录下执行CMake命令
make                    #编译

  在CMakeLists.txt中添加Sophus库的头文件和库文件,如下所示。find_package命令是cmake提供的寻找某个库的头文件和库文件的命令。如果cmake能找到它,就会提供头文件和库文件所在目录的变量。

复制代码

#为了使用Sophus,需要使用find_package命令
find_package( Sophus REQUIRED )
include_directories( ${Sophus_INCLUDE_DIRS})        #添加头文件目录

add_executable( useSophus useSophus.cpp)          #添加可执行文件
target_link_libraries( useSophus ${Sophus_LIBRARIES} )  #添加库文件目录

复制代码

 

  OpenCV[3]提供了大量的开源视觉算法库,是计算机视觉中使用极其广泛的图像处理算法库。在Ubuntu下,可以选择从源代码安装和只安装库文件两种方式。从源代码安装是指从OpenCV官网中下载相应版本的OpenCV源码,然后使用cmake命令中编译安装,好处是可以选择的版本比较丰富,而且可以看到源代码;只安装库文件,是指安装由Ubuntu社区人员编译好的库文件,这样就无需重新编译一遍。本书使用的是OpenCV3系列,由OpenCV官网下载安装包编译安装。

  在编译之前,需要先安装OpenCV库的依赖项:

sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev 
libopenexr-dev libtbb-dev

  在configure中选择默认设置即可,opencv3要下载一个ippicv的第三方包(ippicv_linux_20151201.tgz),直接下比较慢,可以自己下后,放到 3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e里即可。 然后对Opencv安装包编译安装,OpenCV库和普通的cmake工程一样,编译安装如下:

......
make             #编译
sudo make install    #安装

  OpenCV库的头文件和库文件默认安装在"/usr/local"目录下,在CMakeLists.txt中添加OpenCV库的头文件和库问价如下所示:

find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS})           #添加头文件目录 

add_executable( imageBasics imageBasics.cpp)          #添加可执行文件
target_link_libraries( imageBasics ${OpenCV_LIBS} )        #添加库文件目录

 注:在安装opencv 3.2时,由于ROS系统自带opencv2,因此需要修改安装目录,采用cmake-gui ..图形化界面来安装,在界面中修改安装目录,参考博客:ubuntu下opencv3和opencv2共存

  PCL库是点云库(Point Cloud Library)[4]。PCL库的安装比较容易,输入以下命令即可(也可以使用源代码安装):

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all

  安装完成后,PCL库的头文件将安装在"/usr/include/pcl-1.7/"中。库文件位于"/usr/lib/"中。在CMakeLists中添加头文件和库文件如下:

find_package( PCL REQUIRED COMPOMENT common io )
include_directories( ${PCL_INCLUDE_DIRS})           #添加头文件目录 

add_executable( joinMap joinMap.cpp)          #添加可执行文件
target_link_libraries( joinMap ${PCL_LIBRARIES} )        #添加库文件目录

  生成的点云文件以pcd的格式存储,用PCL提供的可视化程序打开这个文件:

pcl_viewer map.pcd

 

  Ceres库是来自谷歌的非线性优化库[5],Ceres库面向通用的最小二乘问题的求解,作为用户,我们需要做的就是定义优化问题,然后设置一些选项,输入Ceres求解即可。Ceres库建议去github上下载[6],Ceres库是一个cmake工程,安装前需要安装它的依赖项,主要是谷歌的一些日志和测试工具。

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev 
libgoogle-glog-dev libgtest-dev

  安装好依赖项之后,使用cmake编译并安装Ceres库。Ceres库的头文件安装在"/usr/local/include/ceres/"目录下,库文件安装在"/usr/local/lib/"目录下。在CMakeList.txt中添加头文件和库文件路径的命令,如下。

复制代码

# 添加cmake模块以使用ceres库
list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )
find_package( Ceres REQUIRED )
include_directories( ${CERES_INCLUDE_DIRS})           #添加头文件目录 

add_executable( curve_fitting main.cpp )          #添加可执行文件
target_link_libraries( curve_fitting ${CERES_LIBRARIES} )        #添加库文件目录

复制代码

  g2o是一个基于图优化的库,图优化是一种将非线性理论与图论结合起来的理论,在图优化中将顶点表示优化变量,边表示误差项,从而将非线性最小二乘问题转化成构建一直对应的一个图。g2o库的安装包可以从github上下载[7], 它也是一个CMake工程。安装g2o前需要安装它的依赖库(部分与Ceres由重合):

sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.2 
libcholmod-dev
(注:最后一个依赖项需要table键来填充名称)

  安装完依赖项之后,按照CMake的方式对g2o进行编译安装。安装完成后,g2o库的头文件将在"/usr/local/g2o/"目录下,库文件在"/usr/local/lib/"目录下。在CMakeList.txt中添加头文件和库文件路径的命令,如下。

find_package( G2O REQUIRED )
include_directories( ${G2O_INCLUDE_DIRS} )           #添加头文件目录 

add_executable( curve_fitting main.cpp )          #添加可执行文件
target_link_libraries( curve_fitting g2o_core g2o_stuff )        #添加库文件目录

  octomap的网页见:https://octomap.github.io

  它的github源码在:https://github.com/OctoMap/octomap

  它还有ROS下的安装方式:http://wiki.ros.org/octomap

复制代码

Ubuntu Prerequisites

You can either install libQGLViewer as a system-wide package (libqglviewer-qt4-dev in Ubuntu), or use the version we provide in the "external" directory. If the CMake compilation can't find an installed qglviewer, it will automatically compile our supplied version and link against it. For building the GUI, you need to make sure that qmake for Qt4 is used (qmake -v). If yours is set to Qt3 in Ubuntu, you can change it to qmake-qt4 by running sudo update-alternatives --config qmake after installing the dependencies below.

All dependencies for the library and viewer on Ubuntu 12.04 can be met by running:

sudo apt-get install build-essential cmake doxygen libqt4-dev \
    libqt4-opengl-dev libqglviewer-dev-qt4

Note: For older version of Ubuntu, the last package name is libqglviewer-dev or libqglviewer-qt4-dev instead.

复制代码

 注意:安装ROS版本的octomap后再编译无ROS版本的ocotomap会出错,需要卸载ROS

前言

  本篇博客主要写了视觉SLAM常用库的安装方法,主要包括Eigen线性代数库、Sophus李代数库、OpenCV计算机视觉库、PCL点云库、Ceres非线性优化库和G2O图优化库等。安装步骤是直接从高翔大牛书上搬抄过来了的,目的是为了大家学习SLAM时能够顺利安装好这些开源库。Ubuntu系统为14.04版本,亲测安装有效,童叟无欺!初步先写这些库的安装过程,可能后面会写学习库的笔记等。工欲善其事,必先利其器,大家一起快乐的学习视觉SLAM吧,加油!初稿完成于2017年7月23日上午晴

  Eigen库是一个C++线性代数开源库[1],它提供了有关线性代数、矩阵和矢量运算、数值分析及相关的算法。许多上层的软件库也使用Eigen进行矩阵运算,包括g2o、Sophus等。Eigen库由Ubuntu软件源中提供,通过apt命令可以很方便的安装Eigen。

sudo apt-get install libeigen3-dev

  Eigen与其他库不同,它是一个由头文件搭建起来的库,Eigen头文件的默认安装位置在“/usr/include/eigen3/”中。我们在使用时,只需引入Eigen头文件,不需要链接它的库文件,在CMakeLists.txt里添加Eigen头文件的目录。

#添加头文件
include_directories("/usr/include/eigen3")

  学习更多Eigen知识,请参考:http://eigen.tuxfamily.org/dox-devel/modules.html

   Eigen库提供了几何模块,但是没有提供李代数的支持。一个较好的李代数库是由Strasdat维护的Sophus库。Sophus库支持三维运动的SO(3)、SE(3),此外还支持二维运动的SO(2)、SE(2)和相似变换Sim(3)等内容。它是直接在Eigen库基础上开发的,因此我们不需要安装额外的依赖库。读者可以直接从github上获取Sophus库[2],Sophus库有模板类库和非模板类库两个版本,本书选择的是非模板类库。可以通过输入以下命令获得非模板类的Sophus库:

git clone http://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff

  Sophus库本身是一个cmake工程,使用以下命令对它进行编译(Sophus库只需编译,无需安装)。

cd XXXX                 #进入Sophus库文件目录下
mkdir build             #新建build文件夹
cd build                #进入build文件夹
cmake ..                #build上一层目录下执行CMake命令
make                    #编译

  在CMakeLists.txt中添加Sophus库的头文件和库文件,如下所示。find_package命令是cmake提供的寻找某个库的头文件和库文件的命令。如果cmake能找到它,就会提供头文件和库文件所在目录的变量。

复制代码

#为了使用Sophus,需要使用find_package命令
find_package( Sophus REQUIRED )
include_directories( ${Sophus_INCLUDE_DIRS})        #添加头文件目录

add_executable( useSophus useSophus.cpp)          #添加可执行文件
target_link_libraries( useSophus ${Sophus_LIBRARIES} )  #添加库文件目录

复制代码

 

  OpenCV[3]提供了大量的开源视觉算法库,是计算机视觉中使用极其广泛的图像处理算法库。在Ubuntu下,可以选择从源代码安装和只安装库文件两种方式。从源代码安装是指从OpenCV官网中下载相应版本的OpenCV源码,然后使用cmake命令中编译安装,好处是可以选择的版本比较丰富,而且可以看到源代码;只安装库文件,是指安装由Ubuntu社区人员编译好的库文件,这样就无需重新编译一遍。本书使用的是OpenCV3系列,由OpenCV官网下载安装包编译安装。

  在编译之前,需要先安装OpenCV库的依赖项:

sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev 
libopenexr-dev libtbb-dev

  在configure中选择默认设置即可,opencv3要下载一个ippicv的第三方包(ippicv_linux_20151201.tgz),直接下比较慢,可以自己下后,放到 3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e里即可。 然后对Opencv安装包编译安装,OpenCV库和普通的cmake工程一样,编译安装如下:

......
make             #编译
sudo make install    #安装

  OpenCV库的头文件和库文件默认安装在"/usr/local"目录下,在CMakeLists.txt中添加OpenCV库的头文件和库问价如下所示:

find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS})           #添加头文件目录 

add_executable( imageBasics imageBasics.cpp)          #添加可执行文件
target_link_libraries( imageBasics ${OpenCV_LIBS} )        #添加库文件目录

 注:在安装opencv 3.2时,由于ROS系统自带opencv2,因此需要修改安装目录,采用cmake-gui ..图形化界面来安装,在界面中修改安装目录,参考博客:ubuntu下opencv3和opencv2共存

  PCL库是点云库(Point Cloud Library)[4]。PCL库的安装比较容易,输入以下命令即可(也可以使用源代码安装):

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all

  安装完成后,PCL库的头文件将安装在"/usr/include/pcl-1.7/"中。库文件位于"/usr/lib/"中。在CMakeLists中添加头文件和库文件如下:

find_package( PCL REQUIRED COMPOMENT common io )
include_directories( ${PCL_INCLUDE_DIRS})           #添加头文件目录 

add_executable( joinMap joinMap.cpp)          #添加可执行文件
target_link_libraries( joinMap ${PCL_LIBRARIES} )        #添加库文件目录

  生成的点云文件以pcd的格式存储,用PCL提供的可视化程序打开这个文件:

pcl_viewer map.pcd

 

  Ceres库是来自谷歌的非线性优化库[5],Ceres库面向通用的最小二乘问题的求解,作为用户,我们需要做的就是定义优化问题,然后设置一些选项,输入Ceres求解即可。Ceres库建议去github上下载[6],Ceres库是一个cmake工程,安装前需要安装它的依赖项,主要是谷歌的一些日志和测试工具。

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev 
libgoogle-glog-dev libgtest-dev

  安装好依赖项之后,使用cmake编译并安装Ceres库。Ceres库的头文件安装在"/usr/local/include/ceres/"目录下,库文件安装在"/usr/local/lib/"目录下。在CMakeList.txt中添加头文件和库文件路径的命令,如下。

复制代码

# 添加cmake模块以使用ceres库
list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )
find_package( Ceres REQUIRED )
include_directories( ${CERES_INCLUDE_DIRS})           #添加头文件目录 

add_executable( curve_fitting main.cpp )          #添加可执行文件
target_link_libraries( curve_fitting ${CERES_LIBRARIES} )        #添加库文件目录

复制代码

  g2o是一个基于图优化的库,图优化是一种将非线性理论与图论结合起来的理论,在图优化中将顶点表示优化变量,边表示误差项,从而将非线性最小二乘问题转化成构建一直对应的一个图。g2o库的安装包可以从github上下载[7], 它也是一个CMake工程。安装g2o前需要安装它的依赖库(部分与Ceres由重合):

sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.2 
libcholmod-dev
(注:最后一个依赖项需要table键来填充名称)

  安装完依赖项之后,按照CMake的方式对g2o进行编译安装。安装完成后,g2o库的头文件将在"/usr/local/g2o/"目录下,库文件在"/usr/local/lib/"目录下。在CMakeList.txt中添加头文件和库文件路径的命令,如下。

find_package( G2O REQUIRED )
include_directories( ${G2O_INCLUDE_DIRS} )           #添加头文件目录 

add_executable( curve_fitting main.cpp )          #添加可执行文件
target_link_libraries( curve_fitting g2o_core g2o_stuff )        #添加库文件目录

  octomap的网页见:https://octomap.github.io

  它的github源码在:https://github.com/OctoMap/octomap

  它还有ROS下的安装方式:http://wiki.ros.org/octomap

复制代码

Ubuntu Prerequisites

You can either install libQGLViewer as a system-wide package (libqglviewer-qt4-dev in Ubuntu), or use the version we provide in the "external" directory. If the CMake compilation can't find an installed qglviewer, it will automatically compile our supplied version and link against it. For building the GUI, you need to make sure that qmake for Qt4 is used (qmake -v). If yours is set to Qt3 in Ubuntu, you can change it to qmake-qt4 by running sudo update-alternatives --config qmake after installing the dependencies below.

All dependencies for the library and viewer on Ubuntu 12.04 can be met by running:

sudo apt-get install build-essential cmake doxygen libqt4-dev \
    libqt4-opengl-dev libqglviewer-dev-qt4

Note: For older version of Ubuntu, the last package name is libqglviewer-dev or libqglviewer-qt4-dev instead.

复制代码

 注意:安装ROS版本的octomap后再编译无ROS版本的ocotomap会出错,需要卸载ROS。

 

 

前言

  本篇博客主要写了视觉SLAM常用库的安装方法,主要包括Eigen线性代数库、Sophus李代数库、OpenCV计算机视觉库、PCL点云库、Ceres非线性优化库和G2O图优化库等。安装步骤是直接从高翔大牛书上搬抄过来了的,目的是为了大家学习SLAM时能够顺利安装好这些开源库。Ubuntu系统为14.04版本,亲测安装有效,童叟无欺!初步先写这些库的安装过程,可能后面会写学习库的笔记等。工欲善其事,必先利其器,大家一起快乐的学习视觉SLAM吧,加油!初稿完成于2017年7月23日上午晴

  Eigen库是一个C++线性代数开源库[1],它提供了有关线性代数、矩阵和矢量运算、数值分析及相关的算法。许多上层的软件库也使用Eigen进行矩阵运算,包括g2o、Sophus等。Eigen库由Ubuntu软件源中提供,通过apt命令可以很方便的安装Eigen。

sudo apt-get install libeigen3-dev

  Eigen与其他库不同,它是一个由头文件搭建起来的库,Eigen头文件的默认安装位置在“/usr/include/eigen3/”中。我们在使用时,只需引入Eigen头文件,不需要链接它的库文件,在CMakeLists.txt里添加Eigen头文件的目录。

#添加头文件
include_directories("/usr/include/eigen3")

  学习更多Eigen知识,请参考:http://eigen.tuxfamily.org/dox-devel/modules.html

   Eigen库提供了几何模块,但是没有提供李代数的支持。一个较好的李代数库是由Strasdat维护的Sophus库。Sophus库支持三维运动的SO(3)、SE(3),此外还支持二维运动的SO(2)、SE(2)和相似变换Sim(3)等内容。它是直接在Eigen库基础上开发的,因此我们不需要安装额外的依赖库。读者可以直接从github上获取Sophus库[2],Sophus库有模板类库和非模板类库两个版本,本书选择的是非模板类库。可以通过输入以下命令获得非模板类的Sophus库:

git clone http://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff

  Sophus库本身是一个cmake工程,使用以下命令对它进行编译(Sophus库只需编译,无需安装)。

cd XXXX                 #进入Sophus库文件目录下
mkdir build             #新建build文件夹
cd build                #进入build文件夹
cmake ..                #build上一层目录下执行CMake命令
make                    #编译

  在CMakeLists.txt中添加Sophus库的头文件和库文件,如下所示。find_package命令是cmake提供的寻找某个库的头文件和库文件的命令。如果cmake能找到它,就会提供头文件和库文件所在目录的变量。

复制代码

#为了使用Sophus,需要使用find_package命令
find_package( Sophus REQUIRED )
include_directories( ${Sophus_INCLUDE_DIRS})        #添加头文件目录

add_executable( useSophus useSophus.cpp)          #添加可执行文件
target_link_libraries( useSophus ${Sophus_LIBRARIES} )  #添加库文件目录

复制代码

 

  OpenCV[3]提供了大量的开源视觉算法库,是计算机视觉中使用极其广泛的图像处理算法库。在Ubuntu下,可以选择从源代码安装和只安装库文件两种方式。从源代码安装是指从OpenCV官网中下载相应版本的OpenCV源码,然后使用cmake命令中编译安装,好处是可以选择的版本比较丰富,而且可以看到源代码;只安装库文件,是指安装由Ubuntu社区人员编译好的库文件,这样就无需重新编译一遍。本书使用的是OpenCV3系列,由OpenCV官网下载安装包编译安装。

  在编译之前,需要先安装OpenCV库的依赖项:

sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev 
libopenexr-dev libtbb-dev

  在configure中选择默认设置即可,opencv3要下载一个ippicv的第三方包(ippicv_linux_20151201.tgz),直接下比较慢,可以自己下后,放到 3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e里即可。 然后对Opencv安装包编译安装,OpenCV库和普通的cmake工程一样,编译安装如下:

......
make             #编译
sudo make install    #安装

  OpenCV库的头文件和库文件默认安装在"/usr/local"目录下,在CMakeLists.txt中添加OpenCV库的头文件和库问价如下所示:

find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS})           #添加头文件目录 

add_executable( imageBasics imageBasics.cpp)          #添加可执行文件
target_link_libraries( imageBasics ${OpenCV_LIBS} )        #添加库文件目录

 注:在安装opencv 3.2时,由于ROS系统自带opencv2,因此需要修改安装目录,采用cmake-gui ..图形化界面来安装,在界面中修改安装目录,参考博客:ubuntu下opencv3和opencv2共存

  PCL库是点云库(Point Cloud Library)[4]。PCL库的安装比较容易,输入以下命令即可(也可以使用源代码安装):

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all

  安装完成后,PCL库的头文件将安装在"/usr/include/pcl-1.7/"中。库文件位于"/usr/lib/"中。在CMakeLists中添加头文件和库文件如下:

find_package( PCL REQUIRED COMPOMENT common io )
include_directories( ${PCL_INCLUDE_DIRS})           #添加头文件目录 

add_executable( joinMap joinMap.cpp)          #添加可执行文件
target_link_libraries( joinMap ${PCL_LIBRARIES} )        #添加库文件目录

  生成的点云文件以pcd的格式存储,用PCL提供的可视化程序打开这个文件:

pcl_viewer map.pcd

 

  Ceres库是来自谷歌的非线性优化库[5],Ceres库面向通用的最小二乘问题的求解,作为用户,我们需要做的就是定义优化问题,然后设置一些选项,输入Ceres求解即可。Ceres库建议去github上下载[6],Ceres库是一个cmake工程,安装前需要安装它的依赖项,主要是谷歌的一些日志和测试工具。

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev 
libgoogle-glog-dev libgtest-dev

  安装好依赖项之后,使用cmake编译并安装Ceres库。Ceres库的头文件安装在"/usr/local/include/ceres/"目录下,库文件安装在"/usr/local/lib/"目录下。在CMakeList.txt中添加头文件和库文件路径的命令,如下。

复制代码

# 添加cmake模块以使用ceres库
list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )
find_package( Ceres REQUIRED )
include_directories( ${CERES_INCLUDE_DIRS})           #添加头文件目录 

add_executable( curve_fitting main.cpp )          #添加可执行文件
target_link_libraries( curve_fitting ${CERES_LIBRARIES} )        #添加库文件目录

复制代码

  g2o是一个基于图优化的库,图优化是一种将非线性理论与图论结合起来的理论,在图优化中将顶点表示优化变量,边表示误差项,从而将非线性最小二乘问题转化成构建一直对应的一个图。g2o库的安装包可以从github上下载[7], 它也是一个CMake工程。安装g2o前需要安装它的依赖库(部分与Ceres由重合):

sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.2 
libcholmod-dev
(注:最后一个依赖项需要table键来填充名称)

  安装完依赖项之后,按照CMake的方式对g2o进行编译安装。安装完成后,g2o库的头文件将在"/usr/local/g2o/"目录下,库文件在"/usr/local/lib/"目录下。在CMakeList.txt中添加头文件和库文件路径的命令,如下。

find_package( G2O REQUIRED )
include_directories( ${G2O_INCLUDE_DIRS} )           #添加头文件目录 

add_executable( curve_fitting main.cpp )          #添加可执行文件
target_link_libraries( curve_fitting g2o_core g2o_stuff )        #添加库文件目录

  octomap的网页见:https://octomap.github.io

  它的github源码在:https://github.com/OctoMap/octomap

  它还有ROS下的安装方式:http://wiki.ros.org/octomap

复制代码

Ubuntu Prerequisites

You can either install libQGLViewer as a system-wide package (libqglviewer-qt4-dev in Ubuntu), or use the version we provide in the "external" directory. If the CMake compilation can't find an installed qglviewer, it will automatically compile our supplied version and link against it. For building the GUI, you need to make sure that qmake for Qt4 is used (qmake -v). If yours is set to Qt3 in Ubuntu, you can change it to qmake-qt4 by running sudo update-alternatives --config qmake after installing the dependencies below.

All dependencies for the library and viewer on Ubuntu 12.04 can be met by running:

sudo apt-get install build-essential cmake doxygen libqt4-dev \
    libqt4-opengl-dev libqglviewer-dev-qt4

Note: For older version of Ubuntu, the last package name is libqglviewer-dev or libqglviewer-qt4-dev instead.

复制代码

 注意:安装ROS版本的octomap后再编译无ROS版本的ocotomap会出错,需要卸载ROS。

SLAM地图构建与定位算法,含有卡尔曼滤波和粒子滤波器的程序 SLAM算法的技术文档合集(含37篇文档) slam算法的MATLAB源代码,国外的代码 基于角点检测的单目视觉SLAM程序,开发平台VS2003 本程序包设计了一个利用Visual C++编写的基于EKF的SLAM仿真器 Slam Algorithm with data association Joan Solà编写6自由度扩展卡尔曼滤波slam算法工具包 实时定位与建图(SLAM),用激光传感器采集周围环境信息 概率机器人基于卡尔曼滤波器实现实时定位和地图创建(SLAM)算法 机器人地图创建新算法,DP-SLAM源程序 利用Matlab编写的基于EKF的SLAM仿真器源码 机器人定位中的EKF-SLAM算法,实现同时定位和地图构建 基于直线特征的slam机器人定位算法实现和优化 SLAM工具箱,很多有价值的SLAM算法 EKF-SLAM算法对运动机器人和周围环境进行同步定位和环境识别仿真 SLAM using Monocular Vision RT-SLAM机器人摄像头定位,运用多种图像处理的算法 slam(simultaneous localization and mapping)仿真很好的入门 SLAM自定位导航的一个小程序,适合初学者以及入门者使用 slam算法仿真 slam仿真工具箱:含slam的matlab仿真源程序以及slam学习程序 移动机器人栅格地图创建,SLAM方法,可以采用多种地图进行创建 SLAM算法程序,来自悉尼大学的作品,主要功能是实现SLAM算法 对SLAM算法中的EKF-SLAM算法进行改进,并实现仿真程序 SLAM的讲解资料,机器人导航热门方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值