slambook2_in_Docker——视觉Slam十四讲代码Docker封装

Slambook2 in Docker

代码:https://github.com/zhh2005757/slambook2_in_Docker
这是一个用于运行高翔博士著作《视觉Slam十四讲》中代码的Docker镜像,同时也可以在物理机上直接进行构建。为了避免十四讲不同代码所依赖的库的版本和操作系统不匹配等问题,采用Docker技术构建了可成功运行所有代码的虚拟环境(基于Ubuntu 16.04)。读者可在Docker中运行,亦可在自己的Ubuntu操作系统上构建(笔者测试的版本为Ubuntu 16.04,不过更高版本的系统应该也可以运行)。

构建和使用

使用Docker进行构建

git代码到本地后,进入根目录直接运行下面的指令

docker build -t : .

“<>”中的请替换为你的镜像名及tag,例如“slambook2_docker:v1"。最终构建好的镜像可能会达到8GB,请确保有足够空间。
PS:不要忘记命令最后的句点”.”。
构建好之后,执行以下命令启动容器。

docker run -d -p 5900:5900 -v /dev/shm:/dev/shm :

上述命令会启动一个基于LXDE桌面的环境的Ubuntu 16.04系统,读者可通过VNC Viewer进行连接(端口为5900)。该镜像基于fcwu/docker-ubuntu-vnc-desktop进行构建,更多详细内容可访问其github 仓库.
容器启动之后,你可以看到一个已经部署好的可运行Slam十四讲所有代码的Ubuntu环境,接下来需要编译书中所有的例程代码。切换到/root/slambook2目录下,运行以下指令进行构建。

mkdir build
cd build
cmake ..
make

然后会生成所有的十四讲中代码的可执行文件,读者可根据书本进行对照和使用。

在物理机上构建

如果读者有需要在自己的系统上构建,请确保你的 gcc/g++ 版本>=5.4.0,cmake版本 >=3.17.5。关于gcc/g++以及cmake的安装,你可以参考Dockerfile以及install.sh中的内容。在编译代码所依赖的库之前,我们需要通过apt-get命令安装Ubuntu软件仓库中提供的一些依赖。

apt-get install -y libssl-dev libsuitesparse-dev qtdeclarative5-dev libqglviewer-dev  qt5-qmake libx11-dev libxmu-dev libglu1-mesa-dev libgl2ps-dev libxi-dev g++ libzip-dev libpng12-dev libcurl4-gnutls-dev libfontconfig1-dev libsqlite3-dev libglew*-dev libssl-dev libpcl-dev freeglut3 freeglut3-dev python-dev python3-dev libgtk2.0-dev pkg-config pcl-tools octovis

然后读者可在slambook2/3rdparty路径下逐个编译依赖库,也可直接运行install.sh(注意:install.sh中包含了cmake的安装指令,如果你已经装好cmake,请删掉这部分指令再运行install.sh,当然你还要注意路径的问题)。最后,你可以编译十四讲书中的代码,然后愉快地运行了。

运行截图

slambook2_in_Docker——视觉Slam十四讲代码Docker封装_第1张图片
slambook2_in_Docker——视觉Slam十四讲代码Docker封装_第2张图片

补充

为了保证编译的成功,笔者对原先十四讲代码中的CMakeLists.txt做了部分修改,详细修改及依赖库的版本之后有时间再补充啦。

你可能感兴趣的:(SLAM&VIO,docker,自动驾驶,ubuntu,slam)