astra 深度相机 + orbslam2 ~ 稠密建图

2023-05-16

在ROS下运行ORB_SLAM2 主要包括以下几步:

一、创建ROS工作空间

二、下载usb_cam(单目相机驱动包)

三、下载深度相机驱动包

四、下载ORB_SLAM2稠密建图代码

五、运行

一、创建ROS空间

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

mkdir catkin_slam cd catkin_slam/ mkdir src cd src/ catkin_init_workspace

2.编译工作空间:编译完成会出现build devel、

以上的步骤就是创建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

三、安装深度相机驱动包

1、

$ sudo apt-get install ros-kinetic-astra-camera

$ sudo apt-get install ros-kinetic-astra-launch

经过 roslaunch ⽅式 便可启动 Astra 相机

在终端输⼊: $ roslaunch astra_launch astra.launch

2、检查话题是否发布正常

四、编译代码

下载ORB_SLAM2

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

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

GitHub - gaoxiang12/ORBSLAM2_with_pointcloud_map

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);

还需要修改文件 CMakeLists.txt

文件所在的位置:/home/fan/catkin_slam/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2

添加:

-lboost_system

编译 (即我们常用的操作)

先编译总的 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

2、rgbd下需要修改的内容,部分操作和上边1类似,需要更改如下

 

以及ros环境配置如上诉。

最后编译ros包

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

 

五、运行

=============================================================

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的位置根据自己的存放的位置进行修改

===============================================================

1.打开一个终端,输入:

roscore

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

roslaunch astra_launch astra.launch

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

rosrun ORB_SLAM2 RGBD 词袋路径 标定文件路径

备注:这里出现的问题是,只要镜头晃动之后,slam系统就停止运行了,还的跟下代码,是运行到哪里出问题导致奔溃的。运行样例数据也有这样的问题。一个问题一个问题解决,慢慢进步。哦里给

===========================分界线============================

参考链接:(32条消息) 用D435i跑ORB_SLAM2_m0_60355964的博客-CSDN博客

解决办法:

貌似是编译时候,指令集出来问题,用下边方法解决。

测试没有问题,但是点云没出来是怎么回事??

问题出来运行的配置文件中,增加如下代码:

#--------------------------------------------------------------------------------------------

# PointCloud Mapping

#--------------------------------------------------------------------------------------------

PointCloudMapping.Resolution: 0.03

————————————————

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

astra 深度相机 + orbslam2 ~ 稠密建图 的相关文章

随机推荐

  • JSON教程(非常详细)

    之前写过有关C语言JSON库 xff1a C语言开源库 在Clion上使用开源库cJSON JSON和XML的对比 xff1a JSON vs XML xff0c 为什么JSON更好 xff1f 下面就好好来了解一下JSON 文章目录 JS
  • 理清gcc、libc、glibc、libc++、libstdc++的关系

    转载一篇好文 xff1a https www jianshu com p a3c983edabd1 当你在Linux下写C C 43 43 代码的时候 xff0c 是不是会遇到许多编译链接的问题 xff1f 时不时报个glibc gcc x
  • Linux中C语言标准库glibc源码下载

    在这篇文章理清gcc libc glibc libc 43 43 libstdc 43 43 的关系 xff0c 我们大概理解了libc xff0c glibc之间的一些关系 下面我们就开了解一些Linux中C语言标准库glibc源码 在这
  • 记录、总结、复盘的重要性和方法(另有周报、月报、年度总结撰写方法)

    文章目录 一 记录1 记录的分类2 学习记录3 工作记录定义分类作用提醒作用跟踪作用证明作用 写好日志时间维度内容维度感想维度 4 生活记录 二 总结和复盘1 总结2 复盘什么叫做复盘 xff1f 什么时候复盘比较合适 xff1f 怎样进行
  • PPT画图文章总结

    一图抵千言 xff0c 在平常的PPT汇报中 xff0c 一张好的图片可以让我们的展示更加清晰 xff0c 也让听得人更快的了解我们的内容 要想起之前师兄发了文章 xff0c 需要提供一个封面示意图 xff0c 当时好像是花钱请别人做的 x
  • 传统学科怎么和深度学习领域结合

    这篇博客 程序员读论文 LeCun Y Bengio Y amp Hinton G Deep learning Nature 521 436 444 2015 中的论文提到深度学习将在很多行业上有广阔的前景 最近看到毕导的公众号发文菜鸡程序
  • 现在快2022年了,c++为什么还要实现(.cpp)和声明(.h)分开?像 Java 或 C# 都不需要声明头文件,C++ 委员会为什么不解决这个问题?

    链接 xff1a https www zhihu com question 506962663 answer 2278836594 因为 C 43 43 牵扯面更广 xff0c 改起来更麻烦 很多语言其实都有一个事实上的实现标准 xff0c
  • Java程序设计基础

    文章目录 Java标识符和关键字标识符关键字 Java注释 xff1a 单行 多行和文档注释1 xff09 单行注释2 xff09 多行注释3 xff09 文档注释 Javadoc xff08 文档注释 xff09 详解Javadoc标签J
  • 几本对于笔试和面试有用的书(干货~)

    黑客帝国 jpg 这儿放几本对程序员笔试和面试有益的书籍o o the power of coding coder jpg 4本408核心书籍 xff1a 数据结构计算机操作系统计算机网络计算机组成原理 面试宝典 xff1a 程序员面试宝典
  • Java类和对象

    文章目录 本章学习要点 Java面向对象 xff1a 对象的概念及面向对象的三个基本特征对象的概念面向对象的三大核心特性继承性封装性多态性 Java认识类和对象Java类的定义及定义类时可用的关键字例 1 Java类的属性 xff1a 成员
  • Java流程控制语句

    文章目录 Java语句 xff1a Java空语句 复合语句和表达式语句语句编写方式空语句表达式语句复合语句例 1 Java if else分支结构精讲if 结构例 1例 2例 3 if else 结构例 4 多条件 if else if
  • Java数组:针对数组(Array)的各种操作

    文章目录 本章学习要点 Java数组简介 xff1a 数组是什么 xff1f Java一维数组的定义 赋值和初始化创建一维数组分配空间例 1 初始化一维数组1 xff09 使用 new 指定数组大小后进行初始化例 22 xff09 使用 n
  • java中类的main方法总结

    一 java中每个类都需要有main方法吗 xff1f 每个类可以有也可以没有main方法 xff0c 甚至所有类里可以都没有main方法 如果你想从某个类做为入口开始运行整个程序 那么就把他设成 public xff0c 之后再里面写个m
  • java中文件名、类名之间的关系

    1 Java保存的文件名必须与类名一致 xff1b 2 如果文件中只有一个类 xff0c 文件名必须与类名一致 xff1b 3 一个Java文件中只能有一个public类 xff1b 4 如果文件中不止一个类 xff0c 文件名必须与pub
  • Java 包(package)详解

    为了更好地组织类 xff0c Java 提供了包机制 xff0c 用于区别类名的命名空间 包的作用 1 把功能相似或相关的类或接口组织在同一个包中 xff0c 方便类的查找和使用 2 如同文件夹一样 xff0c 包也采用了树形目录的存储方式
  • 软件项目开发流程以及人员职责,软件工程中五种常用的软件开发模型整理

    文章目录 一 软件项目开发流程逻辑图开发流程需求分析概要设计详细设计编码测试软件交付验收维护 软件维护软件升级 软件项目开发流程以及人员职责软件工程中五种常用的软件开发模型整理软件系统开发流程七大详细步骤完整介绍 一 软件项目开发流程逻辑图
  • 如何保持专注

    文章目录 部分 1 做一个井井有条的人部分 2 提高专注力部分 3 在集中期间保持动力 专家建议小提示 转载于 xff1a https zh wikihow com E4 BF 9D E6 8C 81 E4 B8 93 E6 B3 A8 不
  • 让开始学java的我困惑的问题解析

    前面已经对java一些基础概念进行了理解 xff1a Java 包 package 详解 java中文件名 类名之间的关系 java中类的main方法总结 文章目录 一个java文件中可以有多个class xff0c 但是只能有一个是pub
  • Jar包详解

    jar包的一些事儿 关于 JAR 包我们应该知道的s
  • astra 深度相机 + orbslam2 ~ 稠密建图

    在ROS下运行ORB SLAM2 主要包括以下几步 xff1a 一 创建ROS工作空间 二 下载usb cam xff08 单目相机驱动包 xff09 三 下载深度相机驱动包 四 下载ORB SLAM2稠密建图代码 五 运行 一 创建ROS