视觉SLAM十四讲&ROS的系统配置

1.安装g++,打开终端,输入: 

sudo apt-get install g++

g++是C++的一个编译器,在安装完之后,可以直接将.cpp文件编译成可执行文件.out

g++ hello_slam.cpp -o hello.out
./hello.out     

输入sudo apt install git,后期安装库会用到

2.安装cmake,在终端下输入:

sudo apt-get install cmake

理论上,任意一个C++程序都可以用g++来编译,但是一个工程可能有许多文件夹和源文件,使用cmake会变得更加方便,cmake会生成一个makefile文件,然后用make命令根据makefile文件的内容来编译整个工程

CMakeLists.txt:

#声明要求的cmake最低版本
cmake_minimum_required(VERSION 2.8)

#声明一个cmake工程
project(HelloSlam)
#添加一个可执行程序
add_executable(helloSlAM hello_slam.cpp)

之后终端中输入cmake .对工程进行编译后会生成CMakefiles,再利用make对工程进行编译,

编译成功后在终端运行./helloSLAM,即可得到输出结果,运行指令为映射的节点名

 更新:如果在安装一些库的时候提示cmake版本不足,参考以下博客:

Ubuntu升级Cmake的正确方式_cmake 升级_Liangtao`的博客-CSDN博客

3.使用库,学习如何使用cmake生成库,并且使用库中的函数,库中没有可执行程序

编写slambook中p33的hello库

add_library(hello libHelloSLAM.cpp)

这条命令告诉cmake,我们想把这个文件编译成一个叫做hello的库,使用cmake编译整个环境

4.安装VS Code ,参考下面链接:

1.4.2 安装VScode · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

下载链接:Documentation for Visual Studio Code

下载完之后,可以将VS Code添加到收藏夹,

安装几个插件C++、Python、Cmake Tools、中文插件chinese、ROS

5.在VS Code中添加自定义库:

右下角点击Linux,配置json,将自己编写的库文件和头文件添加

c_cpp_properties.json的includePath里面添加引用库的头文件路径

tasks.json里的args里添加头文件的库文件

6.安装Eigen库: 输入:

sudo apt-get install libeigen3-dev

Eigen是一个C++开源线性代数库,提供了快速的有关矩阵的线性代数运算,只有头文件!

许多上层的软件库也是用Eigen进行矩阵运算,包括g2o、Sophus等利用

sudo updatedb 

locate eigen3

来进行eigen库的定位

如果ubuntu无法打开源文件eigen/core,是因为Eigen的库默认位置在"/usr/include/eigen3/Eigen"中,需要输入sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen,将其映射到"/usr/include"中,(奇怪的是Eigen并没有库,照做就是)

7.安装OpenCV,之前在这里卡壳好多次了,我们安装的是3.2.0,参考:

高翔视觉slam第五讲:opencv版本冲突情况安装3.2+测试代码imageBasics_Evanzxh的博客-CSDN博客

手动下载 https://codeload.github.com/opencv/opencv/zip/3.2.0

b1d81ea6fc774637a4efec7cbaf5ab42.png

下载完成之后如果跑代码失败,提示If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config

ubuntu安装、卸载opencv以及报错解决措施_MclarenSenna的博客-CSDN博客_卸载opencv报错

下面附上两个版本共存的操作,遇到了可以查看

Ubuntu下OpenCV2和OpenCV3共存的方法_qiqzhang的博客-CSDN博客

注意CMakeLists.txt文件的编写

如果使用find_package(OpenCV REQUIRED)的时候,其本质是去/usr/local/share下面寻找cmake文件,而两个版本的cmake文件同名,所以必然是后安装的版本覆盖前安装版本的cmake文件

b22f81712c0547d7818b499e82bf2853.png

如上图所示,OpenCV的cmake文件在 /usr/local/opencv3/share/OpenCV下面

所以要在find_package前面加上

set(OpenCV_DIR "usr/local/opencv3/share/OpenCV")

# 寻找OpenCV库
find_package( OpenCV REQUIRED )
# 添加头文件
include_directories( ${OpenCV_INCLUDE_DIRS} )
# 可执行程序
add_executable( imageBasics imageBasics.cpp )
# 链接OpenCV库
target_link_libraries( imageBasics ${OpenCV_LIBS} )

8.安装Ceres:

ubuntu18.04安装Ceres - 科研路上的绊脚石 - 博客园

9.安装Pangolin,详见下网址:

ubuntu18.04安装Pangolin - 科研路上的绊脚石 - 博客园

按照流程走,记住最后一步cmake --build .<br><code class="cpp plain hljs">sudo make install</code>,不用管他直接执行sudo make install

安装完之后,pangolin相关的程序可运行

报错:“/usr/local/include/sophus/common.hpp:36:10: fatal error: fmt/core.h: 没有那个文件或目录”

可以参考:

Sophous:编译时,报错 “/usr/local/include/sophus/common.hpp:36:10: fatal error: fmt/core.h: 没有那个文件或目录”_fatal error: fmt/format.h: 没有那个文件或目录_辣条真香啊的博客-CSDN博客

视觉SLAM十四讲——第三四讲笔记_cmakefiles/trajectoryerror.dir/trajectoryerror.cpp_Cc1924的博客-CSDN博客

10.安装g2o:

ubuntu18.04安装g2o - 科研路上的绊脚石 - 博客园

error while loading shared libraries: libg2o_core.so: cannot open shared object file: No such file or directory:

在build文件夹目录环境下输入:sudo ldconfig

然后编译就可以了,因为g2o刚装,没生效。

11.安装Sophus

装完可以运行ch4之前的程序,前提注意更改程序内语句的路径

ubuntu18.04安装sophus - 科研路上的绊脚石 - 博客园

安装好之后应该就可以运行ch4里的程序,前提是启动器需要提前配置好

12.安装Meshlab(ch9):

①终端安装:

sudo add-apt-repository ppa:zarquon42/meshlab

sudo apt-get install meshlab

②软件中心安装

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjAzNTU5NjQ=,size_20,color_FFFFFF,t_70,g_se,x_16

参考

高翔视觉SLAM十四讲(第二版)各种软件、库安装的以及报错解决方法_m0_60355964的博客-CSDN博客_slam软件

13.安装DBoW3(ch11):

git clone https://github.com/rmsalinas/DBow3.git

按照cmake流程对它进行编译安装,在运行ch11里面的词袋模型程序时,提示:

没有规则可制作目标“/usr/local/lib/libDBoW3.a”,由“gen_vocab” 需求

解决办法:只需要将CMakeList.txt中的libDBow3.a改为libDBow3.so即可。

13安装PCL库(ch12):

只需要一条命令:

sudo apt-get install libpcl-dev pcl-tools

14.安装octomap库(ch12):

sudo apt-get install liboctomap-dev octovis

15.安装GTest(ch13):

在运行ch13的整体SLAM框架时,首先cmake会报错

d8314ffa733a412ca40849858872d1b3.png

 这是因为没有安装GTest,直接用以下命令来进行

sudo apt-get install libgtest-dev
cd /usr/src/gtest
sudo mkdir build 
cd build
sudo cmake ..    //一定要以sudo的方式运行,否则没有写入权限
sudo make        //这个也一样要以sudo的方式
sudo cp libgtest*.a /usr/local/lib   //将生成的libgtest.a 和 libgtest_main.a 拷贝到系统的lib路径下

参考

[Ubuntu]GTest安装和测试_PangCoder的博客-CSDN博客_ubuntu18.04 gtest

①在cmake和make之后,我们需要运行bin/run_kitti_stereo,注意,这里有一个操作,即修改run_kitti_stereo.cpp文件,不要assert,在vo->Run()前面加一行vo->Init()

②还有一个细节就是,不要进入bin目录启动run_kitti_stereo,而是在ch13的终端下,输入./bin/run_kitti_stereo

最终可以看到整个SLAM框架的运行:

8e1adb0ea61446d7a593e69c0ed6d57f.png

16.安装ROS-melodic:

第一步:sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
第二步:sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
第三步:(进行第三步的时候记得换阿里源,并切换外网)
sudo apt update
sudo apt install ros-melodic-desktop-full
第四步:(这一步可以不用管)
sudo rosdep init
rosdep update

如果失败:#打开hosts文件
sudo gedit /etc/hosts
#在文件末尾添加
151.101.84.133 raw.githubusercontent.com
#保存后退出再尝试

第五步:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
最后一步:
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值