资讯详情

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

1.g2o

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

a.下载源码

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

安装依赖: 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 参考博客: 博客 安装后应配置,否则操作程序会出现以下错误 解决办法: sudo gedit /etc/ld.so.conf 添加以下代码: /usr/local/lib 终端运行: sudo ldconfig

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

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

问题: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 参考博客: 博客

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(如需)

// 克隆源码 $ 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 $ cmae -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF … $ sudo make install

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 (系统自带) pkg-config opencv --modversion sudo cat /usr/local/include/ceres/version.h (系统自带) gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h或者 dpkg -s libeigen3-dev | grep Version

标签: ld11传感器sh50传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台