从零开始跑ORB_SLAM2(三) 使用Realsense D435相机跑ORB_SLAM2生成稀疏点阵

前期准备

从零开始跑ORB_SLAM2(零) 安装Ubuntu16.04 LTS
从零开始跑ORB_SLAM2(一) 前期准备与环境配置
从零开始跑ORB_SLAM2(二) 配置ROS Kinetic环境并测试Realsense D435相机

工作环境

PC:i5-8265U 8GRAM 核显 弟弟CPU
相机:Intel-Realsense D435
环境:Ubuntu16.04 LTS+ ROS Kinetic

创造ROS工作空间

国际惯例,GitHub的官方文档发一波:ROS Wrapper for Intel® RealSense™ Devices
如果懒得看英文也可以跟我一步步走。
在开始这一步之前,需要完成的事情分别是:

安装ROS Kinetic
安装Realsense SDK

毫无疑问我们已经完成了这两步,为了安装基于ROS使用RealSense的包,现在开始我们要创造一个ROS的工作空间并且配置它。

Ctrl + Alt + T 新建一个命令行:
新建一个文件夹命名为catkin_ws,在目录下新建一个文件夹src并进入:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/

将catkin_ws/src设置为工作空间:

catkin_init_workspace

这个工作空间设置完了之后最神奇的地方在于,虽然里面什么也没有,但是仍然可以进行编译:

catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install

编译完毕之后你可以在根目录下看见build等文件。

最新的ntel® RealSense™ ROS包git到src下: 注意这一步,直接git不一定能得到最新的(虽然我也不知道为什么),我比较建议你们进入Github官网直接把包download到本地。

cd src
git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^\d+\.\d+\.\d+" | tail -1`
cd ..

现在需要对工作空间再进行一次编译,但是一部分人会出现编译失败(也包括我…),请看一条报错:

missing: ddynamic_reconfigure_DIR

缺少了ddynamic_reconfigure这个依赖包,进入Github下的Readme中查阅到:

Make sure all dependent packages are installed. You can check .travis.yml file for reference.
Specifically, make sure that the ros package ddynamic_reconfigure is installed. If ddynamic_reconfigure cannot be installed using APT, you may clone it into your workspace ‘catkin_ws/src/’ from here (Version 0.2.0)

所以需要点击此处下载依赖包,解压后将其提取到src下,再重新编译一次:

catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install

如无意外这次可以成功。在src下不需要放其他的东西,ORB_SLAM2的包放在catkin_ws下就行了,如下图。(我的catkin_ws写成了catkin_s,不要介意细节)
在这里插入图片描述
主目录下文结构:
在这里插入图片描述

至此,ROS工作空间的创造就完成了,如果对工作空间感兴趣可移步这里了解更多信息。
下面配置相机节点并测试。

相关配置

插上相机,Ctrl + Alt + T 新建一个命令行:
在任意目录下输入:

roslaunch realsense2_camera rs_rgbd.launch

请看一条可能的报错:

[rs_rgbd.launch] is neither a launch file in package [realsense2_camera] nor is [realsense2_camera] a launch file name
The traceback for the exception was written to the log file

这是由于你没有把devel下的bash文件添加到bashrc的缘故
为了每次启动命令行都能自动添加,则直接修改bashrc文件:

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
echo "source ~/catkin_ws/devel/setup.sh" >> ~/.bashrc
source ~/.bashrc

至此,你的bashrc文件中应该添加了以下路径:

source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.sh
source ~/catkin_ws/devel/setup.bash
export ROS_PACKAGE_PATH=~/catkin_s:/home/(用户名)/catkin_ws/src:/opt/ros/kinetic/share

此时再启动相机节点,

roslaunch realsense2_camera rs_rgbd.launch

成功则有以下提示:
在这里插入图片描述
在这里插入图片描述

如果你忘记插上相机,则会有warning提示:

[ WARN] [1570683306.945951510]: No RealSense devices were found!

此时按Ctrl+C强制退出,插上相机再执行一次就行。

Ctrl + Alt + T 新建一个命令行:

sudo apt-get install rviz
rviz

此时并不能看见什么结果
左上角 Displays 中 Fixed Frame 选项中,下拉菜单选择 camera_link
这是主要到Global Status变成了绿色
点击该框中的Add -> 上方点击 By topic -> /depth_registered 下的 /points 下的/PointCloud2
点击该框中的Add -> 上方点击 By topic -> /color 下的 /image_raw 下的image

你也可以添加更多的信息(深度图)等,成功则有以下图片,拖动鼠标左右键可以查看生成的点云。附上笔者乱糟糟书柜一张。
在这里插入图片描述相机节点测试完毕。

运行ORB_SLAM2

终于到令人兴奋的 实战环节了!其实到这一步就已经没什么坑了,按照官网的步骤基本都可以成功,但有些细节需要注意,我大概讲一讲。

首先要在工作空间内放置一个Pangolin优化库,这就是我在之前的博客中提到的Pangolin可能需要重新安装的原因,你可以把之前的先卸载了。

在任意目录下安装一些依赖:

sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install libpython2.7-dev
sudo apt-get install build-essential

cd到catkin_ws/ORBSLAM2下,克隆Pangolin代码到本地仓库并编译:

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir
  • 22
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
ORB-SLAM2是一种广泛使用的视觉定位和地图构建算法,能够在实时环境下使用单目、双目和RGB-D相机进行定位和维地图构建。在本文中,我们将讨论如何使用Intel Realsense D435i相机进行ORB-SLAM2实时定位与地图构建。 首先,Intel Realsense D435i相机是一种结构光相机,可以提供RGB和深度图像。通过该相机提供的深度图像,ORB-SLAM2算法可以计算出相机的运动以及环境中的特征点,并构建出维地图。 在使用ORB-SLAM2前,我们需要安装OpenCV、Pangolin和其他一些依赖库,并将ORB-SLAM2代码编译为可执行文件。 通过运行ORB-SLAM2程序时,需要选择所使用相机类型,在这里我们选择Intel Realsense D435i相机。然后,我们通过代码配置相机参数,如分辨率、深度图像的合理范围等。 接下来,我们可以选择使用单目、双目或RGB-D模式进行定位和地图构建。对于单目模式,我们只使用相机的RGB图像,并通过ORB-SLAM2算法实时定位和地图构建。对于双目和RGB-D模式,我们需要同时使用相机的RGB图像和深度图像,并通过计算立体匹配或深度图像对齐来获得更准确的定位和地图构建结果。 最后,ORB-SLAM2会实时计算相机的运动,并在地图中添加新的特征点和关键帧。通过地图和关键帧的维护,我们可以实现相机的实时定位,即使在没有先前观察到的场景中。 总之,通过使用Intel Realsense D435i相机ORB-SLAM2算法,我们可以实时运行单目、双目和RGB-D模式下的定位和地图构建。这种能力在许多应用中都是非常有用的,如机器人导航、增强现实等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值