Ubuntu18.04环境下使用AzureKinect摄像头和ORB-SLAM2实现实时稠密建图。ORB-SLAM2原始代码并没有包括稠密建图部分,高翔博士在ORB-SLAM2的基础上进行了扩展,实现了该功能。(参考高翔博士博客)
ROS收发Azure Kinect图像数据
略
ROS 工作环境
在开始编译ORB-SLAM2之前需要先创建一个ROS的工作空间。
mkdir -p ~/catkin_ws_orbslam2gao/src
cd catkin_ws_orbslam2gao/src
catkin_init_workspace
cd ~/catkin_ws_orbslam2gao/
catkin_make
source devel/setup.bash
下载ORBSLAM2_with_pointcloud_map源码
github repo中有一个文件夹ORB_SLAM2_modified
和一个zip压缩包。我们使用文件夹对应的代码,压缩包是老版本代码不需要管。
cd ~/catkin_ws_orbslam2gao/src
git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git
# 删除作者保留的build文件夹重新编译
cd ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified
rm -rf Thirdparty/g2o/build
rm -rf Thirdparty/DBoW2/build
rm -rf Examples/ROS/ORB_SLAM2/build
# 下载Vocabulay
mkdir Vocabulary && cd Vocabulary
wget https://raw.githubusercontent.com/raulmur/ORB_SLAM2/master/Vocabulary/ORBvoc.txt.tar.gz
编译核心代码
在编译代码前先解决一些可能遇到的问题:
关于PCL库可能有两个问题。
- 提示找不到
pcl/common/transforms.h
,可以通过locate命令查找本机上pcl库的路径,并添加在CMakeList.txt
。(ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2/CMakeLists.txt第52行)
修改后的CMakeLists如下locate pcl/common/transforms.h
include_directories( ${PROJECT_SOURCE_DIR} ${PROJECT