VSLAM框架:ORB_SLAM2 采用Astra相机获取数据


一、配置相机

1.内参文件配置

在进行案例实践前,需要先配置相机的内参文件。每款相机都需要通过相机标定获取其内参,此处以我手头的Astra相机为例进行配置。

在ORB_SLAM2功能包中自带了一个Asus.yaml内参文件,我们需要对其进行复制并修改。

# 进入功能包更目录
roscd ORB_SLAM2/
# 复制文件
cp Asus.yaml Astra.yaml 
# 修改配置文件
vi Astra.yaml

此处以我的Astra相机为例,修改其内参如下

Camera.fx: 577.54679
Camera.fy: 578.63325
Camera.cx: 310.24326
Camera.cy: 253.65539

在这里插入图片描述

2.launch文件配置

由于ORB_SLAM2要求:若使用单目相机进行开发,首先应当启动相机的节点并且确保话题 /camera/image_raw 下存在内容,而我所使用的Astra相机默认重映射该节点至 /camera/rgb/image_raw ,所以需要进行修改launch文件。

# 进入launch文件目录
roscd astra_camera/launch
# 复制并修改launch文件
cp astrapro.launch astrapro_rgb.launch
gedit astrapro_rgb.launch

打开文件后需要将第88行重映射注释掉并保存文件。
在这里插入图片描述
配置完成后即可进行启动节点。

二、单目相机

1.相机节点

首先根据规定,打开相机节点并查看是否话题内容是否存在。

# 启动相机节点
roslaunch astra_camera astrapro.launch 
# rqt工具查看话题
rqt_image_view 

订阅 /camera/image_raw查看是否存在内容。

在这里插入图片描述

2.单目相机建图

单目相机ROS节点启动的命令如下:

# 进入ORB_SLAM2源码根目录下
roscd ORB_SLAM2
cd ../../..
# 运行节点
rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM2/Astra.yaml

其中运行节点的命令格式如下:

# 					功能包 			节点 					磁带文件										相机内参文件
rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM2/Astra.yaml

此处运行单目相机进行建图,所选节点即为Mono,磁带文件默认保存在ORB_SLAM2源码根目录下的Vocabulary文件夹内。单目建图的运行效果如下,此时通过移动摄像头,左侧Map Viewer会实时进行建图,而右侧摄像头画面中绿色的一个个点即代表特征点所在:
在这里插入图片描述
此时,需要缓慢的移动相机,扫视周围的环境。在左侧Map Viewer中会将目前摄像头可以看到的点标记为红色,而之前看到但此时并未出现在摄像头内的点标记为黑色

后期如果通过小车等方式进行建图扫视某环境一周时,可以达到闭环检测的要求。此时即可在Map Viewer左侧勾选打开Localization Mode选项(定位模式)即不建图仅定位。

在定位模式下,相机将根据之前所建点云图进行实时定位。
在这里插入图片描述

3.单目AR相机建图

单目AR相机ROS节点的启动大致相同,只需要将节点修改为MonoAR

# 进入ORB_SLAM2源码根目录下
roscd ORB_SLAM2
cd ../../..
# 运行节点
rosrun ORB_SLAM2 MonoAR Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM2/Astra.yaml

打开节点后,实现需要移动摄像头使得图像上红色文字SLAM NOT INTIALIZED变为绿色SLAM ON,此时相机会通过特征点寻找能够用于AR的平面。
在这里插入图片描述
在这里插入图片描述
点击左侧Draw Points可以查看当前特征点(图上绿色小点),同时可以点击Insert Cube添加方块并通过下方滑块调节方块大小以及网格大小、间距等内容。
在这里插入图片描述

三、深度相机

1.相机节点

由于ORB_SLAM2官方指定在使用深度相机进行建图时,相机的彩色信息应当发布在 /camera/rgb/image_raw ,而深度信息应当发布在 /camera/depth_registered/image_raw内,所以与单目相机存在不同。此处启动的相机节点应为astrapro.launch

# 启动相机节点
roslaunch astra_camera astrapro.launch
# rqt工具查看图像(可不打开)
rqt_image_view

此处打开rqt工具,确定彩色和深度信息的订阅。
在这里插入图片描述
在这里插入图片描述

2.深度相机建图

相比单目相机,深度相机可以快速依据现有建图找到自己的位置。

# 进入ORB_SLAM2源码根目录下
roscd ORB_SLAM2
cd ../../..
# 运行节点
rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM2/Astra.yaml

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45929038/article/details/114226517
今日推荐