RealSenseD435与ORB-SLAM2实现稠密建图

一、RealSenseD435介绍

RealSenseD435是一款结构光相机,使用左右目相机和红外光实现测距。有效测距范围为0.2~10m
在这里插入图片描述

二、ORBSLAM2_with_pointcloud_map的安装

git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git

clone代码,无法下载的话,可以直接去https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map下载

  • 解压orbslam2_modified.zip文件,将这个文件夹下的ORB_SLAM2_modified文件夹拖出来覆盖到根目录下的ORB_SLAM2_modified,把这个文件夹下的g2o_with_orbslam2文件夹也拖到根目录,之后这个文件夹内就没东西了,删了吧,如下:

在这里插入图片描述

  • 原包ROS不友好,可以下载另外一个包,替换原包中的ORB_SLAM2_modified文件夹下的所有文件
git clone https://github.com/wylnii/ORBSLAM2_with_pointcloud_map.git
准备所需的库,具体要求可以参考
https://blog.csdn.net/subiluo/article/details/88975979

需要注意的是,Eigen库最好使用3.2.10,OPENCV博主使用的是3.4.5。
电脑中的版本可以使以下命令查看
pkg-config --modversion opencv
如果不想重装Eigen库的话,后面博主会介绍另一种方法

  • 编译g2o_with_orbslam2包
cd g2o_with_orbslam2
mkdir build
cmake ..
make 
sudo make install
  • 准备编译ORB_SLAM2_modified
cd ORB_SLAM2_modified/
rm -rf Thirdparty/DBoW2/build/
rm -rf Thirdparty/g2o/build/
  • 下载ORBvoc.txt.tar.gz,将其放置于Vocabulary文件夹下
https://github.com/raulmur/ORB_SLAM2/tree/master/Vocabulary
  • 保证opencv版本的一致,修改ORB_SLAM2_modified下以及ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2目录下的CMakeLists.txt,这里统一修改为你电脑里的opencv版本

在这里插入图片描述
在这里插入图片描述

  • 进入ORB_SLAM2_modified目录,运行
chmod +x build.sh
./build.sh
  • 修改ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2/文件夹下的cmakelist,注意你电脑里应该安装了pcl库,如果没有请自行安装,-lboost_system一句加上
find_package(Pangolin REQUIRED)
find_package(PCL 1.8 REQUIRED)

include_directories(
        ${PROJECT_SOURCE_DIR}
        ${PROJECT_SOURCE_DIR}/../../../
        ${PROJECT_SOURCE_DIR}/../../../include
        ${Pangolin_INCLUDE_DIRS}
        ${PCL_INCLUDE_DIRS}
	${EIGEN3_INCLUDE_DIR}
)
#message(FATAL_ERROR ${OpenCV_LIBS})

add_definitions(${PCL_DEFINITIONS})
link_directories(${PCL_LIBRARY_DIRS})

set(LIBS
        ${OpenCV_LIBS}
        ${EIGEN3_LIBS}
        ${Pangolin_LIBRARIES}
        ${PCL_LIBRARIES}
        ${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
        ${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
        ${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
	-lboost_system       
	# opencv_core3 #手动添加
        # opencv_imgproc3
        # opencv_highgui3
        )
  • 修改ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2/src/ros_rgbd.cc文件,把rgb_topic和depth_topic订阅话题修改为
 "/camera/color/image_raw";
 "/camera/aligned_depth_to_color/image_raw";
  • 回到ORB_SLAM2_modified,修改ROS_PACKAGE_PATH
gedit ~/.bashrc
# 添加一下命令,如果以前配置过ORB_SLAM2的ROS的话,需要将以前的配置注释掉
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/你的目录/ORB_SLAM2_modified/Examples/ROS

在这里插入图片描述

  • 开始编译ros节点
chmod +x build_ros.sh
./build_ros.sh
  • 安装RealSense的SDK,参考以下网站的3\4部分
https://blog.csdn.net/weixin_43828675/article/details/115312472?spm=1001.2014.3001.5501
  • 安装RealSense的ROS功能包。
mkdir realsense
cd realsense
mkdir src
cd src
git clone https://github.com/intel-ros/realsense.git
cd ..
catkin_make
source devel/setup.bash

需要注意的是,SDK和ROS功能包的版本要对应,否则会报错
在这里插入图片描述
此时可以使用删除命令后,重新进行安装

dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge
  • 回到ORB_SLAM2_modified文件夹下,运行ORB_SLAM2,实现稠密建图
roslaunch realsense2_camera rs_rgbd.launch
rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.bin Examples/RGB-D/TUM1.yaml

在这里插入图片描述

三、最后一步运行时的错误

3.1 段错误(核心已转储)

原因是Eigen库的问题,建议使用Eigen3.2.10
首先去Eigen官网上下载Eigen3.2.10,随后按照以下网站的教程进行修改。我建议将所有的CMakeLisr.txt都进行修改。指明使用的Eigen库的路径。

https://blog.csdn.net/weixin_44457020/article/details/114778641

3.2 realsense相机的自校准

realsense提供的realsense_viewer可以对实现深度测量的左右目相近进行自校准,校准流程参考

https://www.bilibili.com/video/av757604103

3.3建图效果很差

修改相机参数的yaml文件中的DepthMapFactor参数,博主使用的1000

3.4获得rgb相机的内参

在这里插入图片描述
rostopic输出的好像是相机出厂时,给定的相机参数。如果想获得更加准确的话,需要进行标定。

  • 0
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
在Ubuntu 20.04上运行ORB-SLAM2进行稠密建图需要进行以下步骤: 1. 确保系统已安装必要的依赖库。ORB-SLAM2需要使用OpenCV、Pangolin和Eigen库,可以通过以下命令安装: ``` sudo apt-get install libopencv-dev libeigen3-dev libpangolin-dev ``` 2. 在ORB-SLAM2的GitHub页面上,克隆该项目的源代码。使用以下命令进行克隆: ``` git clone https://github.com/raulmur/ORB_SLAM2.git ``` 3. 进入ORB-SLAM2目录,并执行以下命令进行编译: ``` cd ORB_SLAM2 chmod +x build.sh ./build.sh ``` 4. 编译完成后,在ORB-SLAM2目录下会生成一个名为`Examples/Stereo/stereo_kitti`(用于KITTI数据集)的可执行文件。 5. 在稠密建图之前,需要准备一段用于SLAM的视频或者实时相机数据。ORB-SLAM2支持单目、双目和RGB-D输入。可以在`Examples`目录下找到相应的示例。 6. 运行稠密建图的示例程序,例如对于KITTI数据集可以使用以下命令: ``` ./Examples/Stereo/stereo_kitti Vocabulary/ORBvoc.txt Examples/Stereo/KITTI00-02.yaml dataset_path ``` 其中,`Vocabulary/ORBvoc.txt`是ORB特征提取的词典文件,`Examples/Stereo/KITTI00-02.yaml`是相机参数和SLAM配置文件,`dataset_path`为KITTI数据集的路径。 7. 执行完命令后,ORB-SLAM2会开始读取输入数据,并对其进行稠密建图建图结果可以在控制台输出或保存到本地文件中。 注意:ORB-SLAM2还支持其他数据集和输入类型,具体使用方法可以参考其文档和示例。另外,为了保证正确运行,建议根据自己的需求和数据集进行相应的配置文件调整和参数设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值