最完整---在ROS用自己电脑的摄像头在运行ORB_SLAM2

默认电脑已经安装好ROS
在ROS下运行ORB_SLAM2 主要包括以下几步:
一、创建ROS工作空间
二、下载usb_cam
三、下载ORB_SLAM2
四、运行

接下来讲解具体的步骤

一、创建ROS空间
1.创建工作空间:打开终端输入以下命令

mkdir catkin_slam
cd catkin_slam/
mkdir src
cd src/
catkin_init_workspace

如下图所示:catkin_slam文件夹下,存在src
在这里插入图片描述
2.编译工作空间:编译完成会出现build devel

注意:编译的时候要回到 catkin_slam 目录下

catkin_make

如下图所示:
在这里插入图片描述
以上的步骤就是创建ROS空间

二、下载usb_cam

注意:usb_cam 功能包存放的位置 ,应该将其放在 src 文件夹下

1.首先我们先进入到 src 的目录下,然后通过命令下载 usb_cam

cd src/
git clone https://github.com/bosch-ros-pkg/usb_cam.git usb_cam

如下图所示
在这里插入图片描述
2.接下来回到 catkin_slam 目录下, 对下载好的usb_cam进行编译

 cd ..
 catkin_make

如下图所示:
在这里插入图片描述
3.上面的步骤算是完成了功能包的安装,接下来我们需要将电脑上的摄像头接在虚拟机上

点击 虚拟机——可移动设备——“找到摄像头”——断开与主机的连接,连接虚拟机
在这里插入图片描述
此外需要:虚拟机——设置——USB控制器——将USB改成USB3.1
在这里插入图片描述
以上就是摄像头调用的全部内容,我们可以先测试一下:

在终端输入以下代码:

roslaunch usb_cam usb_cam-test.launch 

在这里插入图片描述
即测试成功

三、下载ORB_SLAM2

1.同样需要将 ORB_SLAM2 存放在 src 目录下

github链接https://github.com/raulmur/ORB_SLAM2

在这里插入图片描述
2.因为我们使用的是电脑上的摄像头,所以需要修改ros_mono.cc 文件的内容:

找到 ros_mono.cc 所在的位置 /home/fan/catkin_slam/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src

打开文件,将

ros::Subscriber sub = nodeHandler.subscribe("/camera/image_raw", 1, &ImageGrabber::GrabImage,&igb);

修改为:

ros::Subscriber sub = nodeHandler.subscribe("/usb_cam/image_raw", 1, &ImageGrabber::GrabImage,&igb);

3.还需要修改文件 CMakeLists.txt
文件所在的位置:/home/fan/catkin_slam/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2
添加:

-lboost_system

在这里插入图片描述

4.编译 (即我们常用的操作)
先编译总的 ORB_SLAM2

cd ~/catkin_slam/src/ORB_SLAM2/
mkdir build
cd build
cmake ..
make

然后单独编译ROS

注意:在编译ROS前,需要先打开 .bashrc 文件添加以下内容:

sudo gedit ~/.bashrc             //打开./bashrc

添加以下内容:其中 /home/fan/catkin_orb 根据自己实际的位置修改

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/fan/catkin_slam/src/ORB_SLAM2/Examples/ROS
source /home/fan/catkin_slam/devel/setup.sh

修改完成之后,保存,
在终端输入

 source ~/.bashrc

即如下图所示
在这里插入图片描述

设置完上面的,就可以对ROS进行编译

 cd        //回到主目录
 cd ~/catkin_slam/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/
 mkdir build
 cd build
 cmake ..
 make

我在make的过程中遇到了一个错误,如下所示
在这里插入图片描述
错误的原因:缺少一个头文件:
打开文件:
/home/fan/catkin_slam/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src/AR/ViewerAR.cc
添加:

#include <unistd.h>

在这里插入图片描述

四、运行
1.打开一个终端,输入:

 roscore 

2.重新打开一个终端,开启摄像头,输入:

roslaunch usb_cam usb_cam-test.launch 

3.再重新打开一个终端,输入:

rosrun ORB_SLAM2 Mono ~/catkin_slam/src/ORB_SLAM2/Vocabulary/ORBvoc.txt ~/catkin_slam/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml

其中的词袋的位置根据自己的存放的位置进行修改
其中的Asus.yaml的位置根据自己的存放的位置进行修改

4.运行结果图
在这里插入图片描述

在这里插入图片描述

  • 21
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
Ubuntu 24.04 LTS(LTS代表长期支持版本)和Robot Operating System (ROS) 是两个非常流行的开源平台,它们在机器人技术领域有着广泛的应用。Ubuntu 24.04是Linux发行版中的最新稳定版本,而ROS(Robot Operating System)则是一个为机器人开发提供的软件框架。 ORB-SLAM是一个知名的开源视觉SLAM(Simultaneous Localization And Mapping,同时定位和建图)系统,专用于实时三维地图构建和机器人自主导航。在Ubuntu 24.04上安装ROS和集成ORB-SLAM,你可以进行机器人定位、环境感知以及导航任务。以下是简要介绍: 1. Ubuntu 24.04与ROS集成: Ubuntu 24.04是ROS Noetic(Noetic牛顿)的官方支持平台,Noetic是在2020年发布的,适合于长期使用。在Ubuntu 24.04上安装ROS Noetic,你需要下载安装相应的ROS发行版包,设置ROS的工作空间,并配置相关的工具链和开发环境。 2. ORB-SLAM介绍: ORB-SLAM利用ORB(Oriented FAST and Rotated BRIEF)特征匹配和SLAM算法,提供了实时性能。它支持摄像头和激光雷达作为输入源,适用于多种机器人平台。在ROS中,你可以通过ROS包`orbslam2_ros`来集成ORB-SLAM,它提供了传感器数据处理和SLAM结果的发布功能。 **相关问题:** 1. Ubuntu 24.04如何安装ROS Noetic? 2. ORB-SLAM是如何实现特征匹配的? 3. 如何在ROS中集成和配置ORB-SLAM2节点? 4. ORB-SLAM是否支持其他类型的传感器输入?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值