slambook2(ch12)—— Ubuntu18.04安装pcl库 + octomap库 + 例程演示 + VMware虚拟机扩展磁盘容量

slambook2(ch12)—— Ubuntu18.04安装pcl库 + octomap库 + 例程演示 + VMware虚拟机扩展磁盘容量

  • 一、单目稠密重建:
    • 1.dense_mapping.cpp
  • 二、点云地图:dense_RGBD
    • 1.pointcloud_mapping:
      • 安装pcl库
      • 修改pointcloud_mapping.cpp
      • 执行结果
    • 2.surfel_mapping
      • 执行结果
    • 3.octomap_mapping
      • 安装octomap
      • 修改octomap_mapping.cpp
      • 执行结果
  • 三、VMware虚拟机扩展磁盘容量

一、单目稠密重建:

下载例程所需数据

http://rpg.ifi.uzh.ch/datasets/remode_test_data.zip

解压后,将在 test_-data/Images 中发现从 0 至 200 的所有图像,并在 test_data 目录下看到一个文本文件,它记录了每张图像对应的位姿。

1.dense_mapping.cpp

程序输出的信息比较简洁,仅显示了迭代次数、当前图像和深度图。关于深度图,我们显示的是深度值乘以 0.4 后的结果——也就是纯白点(数值为 1.0)的深度约 2.5 米,颜色越深表示深度值越小,也就是物体离我们越近。如果实际运行了程序,应该会发现深度估计是一个动态的过程——从一个不怎么确定的初始值逐渐收敛到稳定值的过程。我们的初始值使用了均值和方差均为 3.0 的分布。当然你也可以修改初始分布,看看对结果会产生怎样的影响。
编译此程序后,以数据集目录作为参数,运行之:

./dense_mapping ../../remode_test_data/test_data

结果:

Average squared error = 0.350139, average error: -0.0846462
*** loop 9 ***

迭代9次的结果:

Average squared error = 0.291299, average error: -0.0392129
*** loop 30 ***

迭代30次的结果:

从截图可以发现,当迭代次数超过一定次之后,深度图趋于稳定,不再对新的数据产生改变。观察稳定之后的深度图,我们发现大致可以看出地板和桌子的区别,而桌上的物体深度则接近于桌子。整个估计大部分是正确的,但也存在着大量错误估计。它们表现为深度图中,与周围数据不一致的地方,为过大或过小的估计。此外,位于边缘处的地方,由于运动过程中看到的次数较少,所以亦没有得到正确的估计。综上所述,我们认为这个深度图的大部分是正确的,但没有达到预想的效果。

二、点云地图:dense_RGBD

1.pointcloud_mapping:

CMakeList.txt:

cmake_minimum_required(VERSION 2.8)

project(ch12)

set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_FLAGS "-std=c++11 -O2")

# opencv 
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

# eigen 
include_directories("/usr/include/eigen3/")

# pcl 
find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS}) 
add_definitions(${PCL_DEFINITIONS})

# octomap 
find_package(octomap REQUIRED)
include_directories(${OCTOMAP_INCLUDE_DIRS})

add_executable(pointcloud_mapping pointcloud_mapping.cpp)
target_link_libraries(pointcloud_mapping ${OpenCV_LIBS} ${PCL_LIBRARIES})

add_executable(octomap_mapping octomap_mapping.cpp)
target_link_libraries(octomap_mapping ${OpenCV_LIBS} ${PCL_LIBRARIES} ${OCTOMAP_LIBRARIES})

add_executable(surfel_mapping surfel_mapping.cpp)
target_link_libraries(surfel_mapping ${OpenCV_LIBS} ${PCL_LIBRARIES})

安装pcl库

首先需要安装pcl库

sudo apt-get install libpcl-dev pcl-tools

修改pointcloud_mapping.cpp

 ifstream fin("../data/pose.txt");
 boost::format fmt("../data/%s/%d.%s"); //图像文件格式

执行结果

$ ./pointcloud_mapping 
正在将图像转换为点云...
转换图像中: 1
转换图像中: 2
转换图像中: 3
转换图像中: 4
转换图像中: 5
点云共有1309800个点.
滤波之后,点云共有31876个点.

pcl_viewer map.pcd

slambook2(ch12)—— Ubuntu18.04安装pcl库 + octomap库 + 例程演示 + VMware虚拟机扩展磁盘容量_第1张图片
slambook2(ch12)—— Ubuntu18.04安装pcl库 + octomap库 + 例程演示 + VMware虚拟机扩展磁盘容量_第2张图片

2.surfel_mapping

执行结果

$ ./surfel_mapping map.pcd
point cloud loaded, points: 31876
computing normals ... 
computing mesh ... 
display mesh ... 

slambook2(ch12)—— Ubuntu18.04安装pcl库 + octomap库 + 例程演示 + VMware虚拟机扩展磁盘容量_第3张图片

3.octomap_mapping

安装octomap

sudo apt-get install liboctomap-dev octovis

修改octomap_mapping.cpp

ifstream fin("../data/pose.txt");
boost::format fmt("../data/%s/%d.%s"); //图像文件格式

执行结果

$ ./octomap_mapping 
正在将图像转换为 Octomap ...
转换图像中: 1
转换图像中: 2
转换图像中: 3
转换图像中: 4
转换图像中: 5
saving octomap ... 
octovis octomap.bt

slambook2(ch12)—— Ubuntu18.04安装pcl库 + octomap库 + 例程演示 + VMware虚拟机扩展磁盘容量_第4张图片

三、VMware虚拟机扩展磁盘容量

Ubuntu18.04 扩展磁盘

你可能感兴趣的:(slambook2,实践复现,slam)