多传感器融合定位的环境配置

我的电脑的系统Ubuntu18.04

写在开头:
一步步编译你的程序,缺少什么库就安装什么库,完了删除build和devel文件夹,重新catkin_make

1.g2o

安装旧版本的g2o(经过我的测试,这个版本不出错,但是这个版本在运行十四讲的代码时会报错,所以可以安装14讲的版本)

a.下载源码

十四讲的版本或者
https://codeload.github.com/RainerKuemmerle/g2o/zip/refs/tags/20200410_git
14讲第二版

安装依赖:
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev
libgtest-dev

b.编译

$ cd g2o
$ mkdir build
$ cd build
$ sudo ldconfig
$ cmake . .
$ make -j4
//安装
$ sudo make install
注意:一定要在编译前进入build,进行sudo ldconfig
参考博客:
博客
在安装完之后还要进行配置,不然运行程序时会出现如下的错误
error while loading shared libraries: libg2o_core.so: cannot open shared object file: No such file
解决办法:
sudo gedit /etc/ld.so.conf
添加如下代码:
/usr/local/lib
在终端运行:
sudo ldconfig

卸载
sudo rm -r /usr/local/lib/libg2o* /usr/local/include/g2o /usr/local/bin/g2o*

后续1,最近又发现的问题:

我最近又编译第四章的代码,出现了如下的错误:

在这里插入图片描述
这里应该是g2o版本的原因,我之前装的是14讲里的,于是我又装成了这个版本:
最近的g2o版本
安装步骤还是没有变化。

后续2,最近又发现的问题:

在编译第十章的时候出现的问题:

在这里插入图片描述
我刚开始以为是g2o版本的问题,就又装了其他的版本的,最终发现在CMakeLists.txt中加入:

set(CMAKE_CXX_STANDARD 14)

2.安装更新版本的cmake(如果需要)

a.查看当前版本

cmake --version

b.卸载cmake

(安装ros时可跳过)
sudo apt remove cmake
注:再此步骤中,如果安装了ros系统,提示会卸载许多与ros相关的cmake文件,可能会导致ros无法使用,所以跳过此步。

c.下载更高版本cmake

可在cmake官网下载,

d.安装cmake

(1)将cmake-3.xx.x.tar.gz解压
(2)将原来版本的cmake执行文件删除
cd /usr/bin/
sudo rm cmake
(3)将cmake-3.16.8.tar.gz提取出来并安装
cd cmake-3.16.8
./configure
make
sudo make install
cmake --version

重装cmake之后遇到的问题:
问题:bash: /usr/bin/cmake: 没有那个文件或目录
因为直接使用cmake系统回到默认的/usr/bin中去寻找,但是src中安装的cmake是在/usr/local/bin中,所以当然不会找到。解决方法:

做一个链接即可:ln -s /usr/local/bin/cmake /usr/bin
然后使用/usr/local/bin/cmake进行编译。
参考博客:
1.博客1
2.博客2

3.ceres(1.14版本)

a.先删除之前的ceres-solver:

sudo rm -r /usr/local/lib/cmake/Ceres
sudo rm -rf /usr/local/include/ceres /usr/local/lib/libceres.a
sudo rm -r /usr/local/share/Ceres

b.安装依赖

// 安装依赖
$ sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev
在Ubuntu18.04上面安装libcxsparse3.1.2,在安装失败情况下,可以改成libcxsparse3

c.下载ceres-solver-1.14.0

wget ceres-solver.org/ceres-solver-1.14.0.tar.gz

d.解压

tar xvf ceres-solver-1.14.0.tar.gz

e.编译

cd ceres-solver-1.14.0
mkdir build
cd build
cmake . .
make -j4
make test
sudo make install
参考博客:
1.博客1
2.博客2
3.博客3

4.sophus

用14讲第二版中新版本
cd Sophus-
mkdir build
cd build
cmake . .
make
sudo make install
参考博客:
博客
注意:ubuntu20.04会遇到问题,解决办法如下:
cmakelist那加一句set(CMAKE_CXX_FLAGS "-Wno-error=deprecated-declarations -Wno-deprecated-declarations ")
28句之后
参考博客

5.fmt(如果需要)

// 克隆源码
$ git clone https://github.com/fmtlib/fmt.git

// 编译及安装
$ mkdir build
$ cd build
$ cmake . .
$ make
$ sudo make install

6.Geographic

// 需要自己下载源码
下载地址: https://sourceforge.net/projects/geographiclib/

// 解压并进入文件夹
$ cd GeographicLib-1.51

// 编译及安装
$ mkdir build
$ cd build
$ cmake . .
$ make
$ sudo make install

7.gflags(如果需要)

Ubuntu20.04系统,安装ceres时候,已经安装gflags、glog,无需再次安装gflags库、glog库

// 克隆源码
$ git clone https://github.com/gflags/gflags

// 解压并进入文件夹
$ cd gflags

// 编译及安装
$ mkdir build
$ cd build
$ cmake . . //★★★如果下一个glog编译报错,讲cmake …更改成 cmake … -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC … ★★★
$ make
$ sudo make install

8.glog (如果需要)

// 克隆源码
$ git clone https://github.com/google/glog

// 安装以来
$ sudo apt-get install autoconf automake libtool

// 配置
$ ./autogen.sh
$ ./configure

// 编译及安装
$ mkdir build
$ cd build
$ cmake . .
$ make
$ sudo make install

9.gtsam

// 克隆源码&自行下载
$ https://github.com/borglab/gtsam/archive/4.0.2.zip

// 解压并进入文件夹
$ unzip gtsam-4.0.2.zip
$ cd gtsam-4.0.2

// 编译及安装
$ mkdir build
$ cd build
$ cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF …
$ sudo make install
注意:ubuntu20.04需要4.0.3以上版本,参考如下
4.0.3版本
https://github.com/borglab/gtsam/releases/

10.Protobuf

源码地址
需要googletest

这个库我到目前为止还没装好,因为ros安装完之后会自动安装一个3.0.0版本的protobuf,但我自己删除了(结果gazebo不能用了),重新安装了3.14版本的,因为课程中说用的是3.14版本的,但我装完之后编译代码的时候会报错
在这里插入图片描述
我对比了ros自带的protobuf,结果发现文件里确实有FindProtobuf.cmake文件,但我当时已经删除了,我现在还不知道是什么原因。

最新的发现,用ros自带的protobuf好使,不需要重新下载,不要轻易卸载ros自带的库,不然会出现意想不到的错误。

目前我的/usr/local/include目录如下图所示:
在这里插入图片描述
库的版本:pip list
1.opencv 3.2.0(系统自带)
pkg-config opencv --modversion
2.ceres 1.14
sudo cat /usr/local/include/ceres/version.h
3.eigen 3.3.4(系统自带)
gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h或者
dpkg -s libeigen3-dev | grep Version
4.pangolin0.5

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值