Ubuntu16.04 + ROS Kinetic Kame:ROS下ORB-SLAM2在线单目slam

1 篇文章 0 订阅
本文介绍了如何在Ubuntu16.04和ROS Kinetic Kame环境下,结合ORB-SLAM2进行实时单目SLAM。首先,通过ROS的usb_cam节点读取单目相机画面,然后调整ORB-SLAM2的ros_mono.cc源文件以订阅正确的图像话题。在设置好环境变量和内参文件后,成功运行ORB-SLAM2进行在线SLAM。过程中遇到环境变量配置错误的问题,并提供了解决方法。
摘要由CSDN通过智能技术生成

参考文章:
ROS上利用usb_cam读取摄像头图像
ORB-SLAM2(3) ROS下实时跑ORB_SLAM2
环境:Ubuntu16.04 + ROS Kinetic Kame
安装ROS KK

一、ROS下实时读取单目相机画面

在home目录下创建了ROS工作空间

mkdir -p catkin_ws/src
cd ~/catkin_ws/
catkin_make
source devel/setup.bash

创建了ROS工作空间
为了实现在线slam,通过相机读取实时画面,需要先安装相机usb驱动,具体操作参考下文:
ROS上利用usb_cam读取摄像头图像
usb接口连上单目摄像头之后 执行以下命令
1、运行ros内核
roscore
2、工作空间目录/catkin_ws下执行,设置环境变量,配置工作空间?
source devel/setup.bash
3、打开单目摄像头
roslaunch usb_cam usb_cam-test.launch
usb_cam-test.launch路径
之后每次ros下orb-slam都要先执行上述操作,以实时读取单目相机画面

二、ROS下在线运行ORB-SLAM2中的单目模式Mono

后面的操作具体参考右文中的step3 ROS下实时跑ORB_SLAM2
修改话题使读取到的摄像头画面用于slam:
打开ORB-SLAM2中的ros_mono.cc源文件(如下图),将subscribe的话题改为/usb_cam/image_raw
在这里插入图片描述
重新编译ROS的example 及工作空间(见参考文章)
最后在已经打开单目摄像头的前提下另开终端执行:

rosrun ORB_SLAM2 Mono PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE

PATH_TO_VOCABULARY替换为其路径:ORB_SLAM2/Vocabulary/ORBvoc.txt(词典用了ORB_SLAM2自带文件)
PATH_TO_VOCABULARY
PATH_TO_SETTINGS_FILE 为单目相机内参文件路径:
ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml(仅供参考),
将Asus.yaml中的Camera.fx fy cx cy四个参数替换为自己标定得到的单目内参即可
在这里插入图片描述
实现结果:
在这里插入图片描述


分割线

因为环境变量设置出错
raise Exception
Exception
CMake Error at /opt/ros/kinetic/share/ros/core/rosbuild/private.cmake:102 (message):
[rosbuild] rospack found package “ORB_SLAM2” at “”, but the current
directory is “/home/xxx/ORB_SLAM2/Examples/ROS/ORB_SLAM2”. You should
double-check your ROS_PACKAGE_PATH to ensure that packages are found in the
correct precedence order.

捣鼓半天,在gedit ~/.bashrc时 需要注意环境变量设置顺序:

source /home/xxx/catkin_ws/devel/setup.bash
source /opt/ros/kinetic/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/xxx/ORB_SLAM2/Examples/ROS/ORB_SLAM2

工作空间catkin_ws应该放在最前面(否则找不到包),其次是ros,最后是Package(否则无法编译)
保存退出更新一下source ~/.bashrc
再查看是否正确部署好环境:echo $ROS_PACKAGE_PATH
应该返回如下结果:/opt/ros/kinetic/share:/home/xxx/ORB_SLAM2/Examples/ROS/ORB_SLAM2
之后才能正确执行脚本编译./build_ros.sh
roscore
rosrun package…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值