使用ORB-SLAM2算法和Turtlebot3机器人在自己构建的室内场景中建图

2023-05-16

本文叙述了在gazebo仿真环境和rqt可视化工具的背景下,使用ORB-SLAM2算法和turtlebot3-burger机器人在自己构建的室内场景中建图过程。目前存在的问题是运行RGBD节点时无法显示图像,报错“WAITING FOR IMAGES”。


1. 构建ORB-SLAM2工作空间并编译

参考前面文章
Ubuntu 16.04系统下安装Open-CV 3.1.0
Ubuntu 16.04系统下安装Eigen3矩阵库(简便法)
Ubuntu 16.04系统下使用数据集运行ORB-SLAM2算法
关于ORB-SLAM2算法编译过程中运行./build_ros.sh命令报错问题的解决方法


2. 在ORB-SLAM2工作空间中编译Turtlebot3-Burger并添加kienct

参考前面文章
Turtlebot3仿真环境搭建
为Turtlebot3-Burger机器人添加Kinect深度相机并获取环境图像


3. 在ORB-SLAM2工作空间添加gazebo场景功能包

(1)在catkin_ws_orb下创建功能包orb_room

catkin_create_pkg orb_room std_msgs rospy roscpp

cd ..

catkin_make
source devel/setup.bash

(2)在orb_room功能包下放置world文件夹,其中包含之前搭建好的my_room.world文件

(3)编写launch文件
在orb_room功能包下建立launch文件夹,并在launch文件夹中新建orb_room.launch文件,内容如下:

<launch>
    <!-- 设置launch文件的参数 -->
    <arg name="paused" default="false"/>
    <arg name="use_sim_time" default="true"/>
    <arg name="gui" default="true"/>
    <arg name="headless" default="false"/>
    <arg name="debug" default="false"/>

    <!-- 运行gazebo仿真环境 -->
    <include file="$(find gazebo_ros)/launch/empty_world.launch">      
	<arg name="world_name" value="$(find orb_room)/world/my_room.world"/> <!-- Note: the world_name is with respect to GAZEBO_RESOURCE_PATH environmental variable -->	
	<arg name="debug" value="$(arg debug)" />
        <arg name="gui" value="$(arg gui)" />
        <arg name="paused" value="$(arg paused)"/>
        <arg name="use_sim_time" value="$(arg use_sim_time)"/>
        <arg name="headless" value="$(arg headless)"/>
    </include>

    <!-- 加载机器人模型描述参数 -->
    <param name="turtlebot3_description" command="$(find xacro)/xacro --inorder '$(find turtlebot3_description)/urdf/turtlebot3_burger.urdf.xacro'" /> 

    <!-- 在gazebo中加载机器人模型 -->
    <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
          args="-urdf -model turtlebot3_burger -param turtlebot3_description"/> 

</launch>

(4)编译刷新环境

catkin_make
source devel/setup.bash

4. 启动建图仿真

(1)启动场景

roslaunch orb_room orb_room.launch

在这里插入图片描述

(2)启动ORB-SLAM2的RGBD节点
在catkin_ws_orb/src/ORB_SLAM2下运行

rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM2/Asus.yaml

注: 如果出现了找不到opencv库的问题,请参考此文章
ERROR WHILE LOADING SHARED LIBRARIES: LIBOPENCV_HIGHGUI.SO.3.4: CANNOT OPEN SHARED OBJECT FILE解决方法

在这里插入图片描述
此时出现了问题,图像没有显示,报错:WAITING FOR IMAGES。是因为话题名没有修改。全部话题如下图所示:
在这里插入图片描述


根据话题名将ros_rgbd.cc文件中的话题名进行更改。

    message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/rgb/image_raw", 1);
    message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "camera/depth/image_raw", 1);

然后在catkin_ws_orb/src/ORB_SLAM2下重新运行命令

rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM2/Asus.yaml

在这里插入图片描述
(3)启动键盘控制节点

sudo apt-get install ros-kinetic-teleop-twist-keyboard

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

在这里插入图片描述
在这里插入图片描述



参考资料

ERROR WHILE LOADING SHARED LIBRARIES: LIBOPENCV_HIGHGUI.SO.3.4: CANNOT OPEN SHARED OBJECT FILE解决方法
ORB_SLAM2功能包的构建和在ROS中的应用
ROS入门:ORB_Slam2踩坑,RGBD无法获取数据

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

使用ORB-SLAM2算法和Turtlebot3机器人在自己构建的室内场景中建图 的相关文章

随机推荐

  • C++ 资源大全,常用库,工具

    c 43 43 的常用库 c 43 43 的常用库C 43 43 资源大全标准库框架人工智能异步事件循环音频生态学压缩并发性容器密码学数据库调试游戏引擎图形用户界面图形图像处理国际化Jason日志机器学习数学多媒体网络物理学机器人学科学计算
  • 中断、进程调度、进程切换、系统调用之间的关系

    中断是指CPU接受到的来自硬件或软件的信号 xff0c 提示CPU发生了某件事情并中止现行程序的执行 中断信号分为内中断信号和外中断信号两种 内中断信号又叫异常 xff0c 与当前执行指令有关 xff0c 来自CPU内部 xff1b 外中断
  • 树莓派ROS stm32 slam Freertos VFH+A*避障路径规划-智能平衡计划(六)

    基于树莓派ROSstm32搭载Freertos智能平衡车Day6 前言一 巡线功能TSL1401 线性CCD介绍TSL1401 管脚功能TSL1401 功能描述TSL1401 像素输出TSL1401 像素采集TSL1401 线性CCD 电气
  • PX4无法进入offboard模式

    固件版本为v1 11 1 遥控器切入offboard模式时 xff0c QGC提示reject 找了一两天 xff0c 发现是因为GPS没起作用 打开QGC的mavlink消息检测 xff0c 发现有GPS RAW INT消息 xff0c
  • 树莓派+Ubuntu mate18.04+ROS+二进制MAVROS安装

    主要参考ubuntu mate 18 04官网下载 xff0c 烧录及安装 SSH VNC ROS MAVROS librealsense realsense ros vision to mavros 略过在树莓派上安装Ubuntu mat
  • C++组成部分

    C 43 43 是一种编程语言 xff0c 但又不是一种单一的编程语言 xff0c 它可以包含以下四种子语言 xff0c 也即C 43 43 的四个组成部分 xff1a 1 C部分 C语言的基本语法 xff0c 内置类型 预处理 数组 指针
  • install_geographiclib_datasets.sh

    span class token shebang important bin bash span span class token comment Script to install the model datasets required
  • PX4开发环境搭建-Ubuntu+Qt+PX4

    前言 由于各种原因 xff0c 国内安装PX4较为缓慢且不稳定 xff0c 本文主要是作为测试如何国内能够更快下载并搭建好PX4环境 一 预备工具 笔记本 xff1b Vmware VirtualBox Ubuntu 18 04 较为稳定且
  • 【ZED】从零开始使用ZED相机(四):双目相机标定(MATLAB+张氏标定法)

    引言 ZED 从零开始使用ZED相机导航 xff1a ZED 从零开始使用ZED相机 xff08 一 xff09 xff1a windows下的安装配置与测试 ZED 从零开始使用ZED相机 xff08 二 xff09 xff1a 打开相机
  • 路径规划(一):使用Matlab快速绘制栅格地图

    目录 一 Matlab快速绘制栅格地图1 几种常用的地图形式 xff1a 1 1 尺度地图 xff1a 1 2 拓扑地图 xff1a 1 3 语义地图 xff1a 2 栅格地图用于路径规划的优势 xff1a 3 matlab绘制栅格地图的核
  • J-link 报错解决方法

    目录 1 Jlink 驱动版本过高 导致识别到 Jlink 工具为盗版2 JLink 芯片锁死 1 Jlink 驱动版本过高 导致识别到 Jlink 工具为盗版 报错 xff1a The connected probe appears to
  • Gazebo物理仿真环境搭建——roscontrol

    Gazebo物理仿真环境搭建 ros control 提示 xff1a 写完文章后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 Gazebo物理仿真环境搭建 ros control前言一 ros con
  • 野火挑战者V2开发板CubeMX+LWIP+FreeRTOS+TCP_Server+TCP_Client实现

    首先说一下开发环境 xff1a MDK5版本为5 26 2 0 xff0c CubeMX版本为6 6 1 xff0c FreeRTOS API选择的是 CMSIS v1 xff0c LWIP版本为2 1 2 单片机型号为STM32F429I
  • 2021-06-18

    AttributeError module torch functional has no attribute relu AttributeError module torch functional has no attribute rel
  • 机器学习入门2 分类算法(knn,朴素贝叶斯,决策树,随机森林)

    分类算法 目标值 xff1a 类别 1 sklearn转换器和预估器 2 KNN算法 3 模型选择与调优 4 朴素贝叶斯算法 5 决策树 6 随机森林 3 1 sklearn转换器和估计器 转换器 估计器 estimator 3 1 1 转
  • ROS环境搭建过程

    怕自己忘记怎么搭的虚拟环境于是写下此博客进行记录 文章目录 前言过程1 准备工作2 开始建立 总结 前言 学习PPPoE协议和DHCP协议时进行一些用例抓包需要用到ROS虚拟环境 xff0c 于是第一次摸索 xff0c 在朋友帮助下完成得还
  • 美图秀秀扣取签字,证件照换背景

    扣取签字 需求 xff1a 手机拍一个照片提取签字到 png 方法 xff1a 美图秀秀进行图片增强 gt 然后用python提取 原图 美图秀秀打开 gt 增强 前三个都要弄 xff0c 这样就是白色背景 xff0c 其余的根据情况调节
  • 进程及进程间的切换(操作系统)

    进程 1 认识进程 xff1a 对于操作系统来说 xff0c 一个任务就是一个进程 xff0c 本质上是正在执行的一个程序 我们可以通过查看 windows任务管理器 中的列表 xff0c 我们可以完全认为在内存中的每一个exe文件理解为进
  • 通过Gazebo建立简单室内环境模型并用launch文件打开

    本文叙述如何直接使用Gazebo创建简单室内环境模型 xff0c 并能够使用launch文件打开 一 利用Gazebo建立好环境模型 1 打开Gazabo的编辑界面 运行如下命令后按Ctrl 43 B xff0c 进入到编辑界面 gazeb
  • 使用ORB-SLAM2算法和Turtlebot3机器人在自己构建的室内场景中建图

    本文叙述了在gazebo仿真环境和rqt可视化工具的背景下 xff0c 使用ORB SLAM2算法和turtlebot3 burger机器人在自己构建的室内场景中建图过程 目前存在的问题是运行RGBD节点时无法显示图像 xff0c 报错 W