在ROS中使用usb摄像头跑ORB SLAM2

本文详细记录了在Ubuntu 14.04上,使用ROS Indigo配置ORB SLAM2与USB摄像头进行SLAM实验的过程,包括环境准备、依赖安装、代码获取、相机标定、内参设置等步骤,最终成功实现单目ORB SLAM运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要(假装这是论文):由于最近在做orb_slam2相关,将这几天的实验过程总结记录,本文主要为傻瓜式记录运行代码的过程,以及中间遇到的问题及解决方法,截止至发文前,只是把单目Mono的功能实现,暂时还未对其进行细致的分析.其实CSDN中已经有很多其他大神对ORB SLAM的程序运行进行了解读,本次实验也是在众多资料的帮助下完成的.
准备工作
 硬件准备
 1.装有ROS Indigo和装有OpenCv的ubuntu 14.04
 3.USB 摄像头,TB来的,100度广角,640*480,30帧
 环境准备
 安装几个依赖项和库
 Boost
 

sudo apt-get install libboost-all-dev 

 General Graph Optimization :g2o
 关于g2o的详细解释可以看高博的blog:http://www.cnblogs.com/gaoxiang12/p/5304272.html
 为了编译g2o需要安装如下三个库

 sudo apt-get install libblas-dev
 sudo apt-get install liblapack-dev
 sudo apt-get install libeigen3-dev

 
 代码准备
 1.由于使用USB摄像头作为图像输入,需要将图像信息作为topic发送出去,ROS官网提供了usb_cam的package代码,从github上下usb_cam的代码,下载链接:https://github.com/bosch-ros-pkg/usb_cam
 2.ORB_SLAM的代码下载: https://github.com/raulmur/ORB_SLAM2
工程建立
建立一个catkin_ws 工程

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

将代码拷到src中

编译usb_cam

mkdir build 
cd build 
cmake ..
make 

编译成功后可先测试一下usb摄像头
  首先开个新的终端,运行roscore(如果显示命令没有找到就说明的你没有source source /opt/ros/indigo/setup.bash 我是直接添加到了根目录文件中的.bashrc中了,详情请下载<机器人操作系统浅析>百度文库中可搜到,见Page16)
 在运行该节点之前,需要先配置一下节点参数,打开src/usb_cam-develop/launch文件中的的launch文件,我这里只需要该设备号即可,笔记本电脑的video0一般是网络摄像头,插入usb摄像头一般是video1,若想看usb摄像头是哪个端口号,可cd到根目录中的dev文件夹下查看.
 更改后,其实只是换了个1
 完成之后再开一个终端, 运行

 roslaunch usb_cam usb_cam-test.launch 

 
 运行后,正常的情况下可打开摄像头,看到新建窗口将

### 配置和运行 ORB-SLAM2 的方法 要在 ROS 中成功配置并运行 ORB-SLAM2,需要完成以下几个方面的操作: #### 1. 安装依赖项 在 Ubuntu 和 ROS 环境中,确保已安装必要的依赖库。这些库包括 Eigen、Pangolin、OpenCV 等。可以通过以下命令来安装所需软件包: ```bash sudo apt-get update sudo apt-get install libeigen3-dev libopencv-dev libboost-all-dev cmake git ``` 上述命令会安装 Eigen 库、OpenCV 开发文件以及 Boost 工具集[^1]。 #### 2. 下载和编译 ORB-SLAM2 源码 克隆官方的 ORB-SLAM2 仓库到本地,并按照说明进行编译。以下是具体步骤: ```bash git clone https://github.com/raulmur/ORB_SLAM2.git cd ORB_SLAM2 chmod +x build.sh ./build.sh ``` 此脚本会在 `Thirdparty` 文件夹中下载所需的第三方库(如 Pangolin),并构建整个项目。 #### 3. 修改 ROS 节点源代码 为了使 ORB-SLAM2 支持 ROS 接口,在 `/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src/ros_mono.cc` 文件中需做适当调整。例如,可以更改发布的话题名称或者订阅的消息类型以适配特定需求[^2]。 编辑完成后重新编译该部分代码: ```bash roscd orb_slam2_ros catkin_make source devel/setup.bash ``` #### 4. 准备相机校准参数与词典路径 创建一个 YAML 格式的摄像头内参文件用于初始化 SLAM 系统。同时指定词汇表的位置,默认位于 `../Vocabulary/ORBvoc.txt`。 示例 YAML 文件内容如下所示: ```yaml Camera.fx: 718.856 Camera.fy: 718.856 Camera.cx: 607.1928 Camera.cy: 185.2157 ... ``` #### 5. 启动节点测试功能 最后通过 roslaunch 或 rosrun 命令启动单目视觉里程计程序验证其工作状态: ```bash roscore & rosparam load /path/to/camera_settings.yaml camera_settings rosrun orb_slam2_ros mono_euroc __name:=MonoVO _voc_file:="/full/path/to/Vocabulary/ORBvoc.txt" ``` 以上流程涵盖了从基础环境搭建至实际应用部署全过程中的关键技术要点。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值