ROS下使用realsense-d435i跑通 rgbdslam_v2运行踩坑完成

2023-05-16

准备工作
rbgdslam_v2 
按照github ,实验环境Ubuntu 16.04, ROS kinetic

如果你电脑安装PCL版本是1.7,那么请直接跳到错误1,如果你也不知道有没有,或者版本多少,那么就跟着我的博客走下去吧

git clone https://github.com/felixendres/rgbdslam_v2.git
cd rgbdslam_v2
source install.sh


接着会提示

This script puts all code into ‘/home/damon/Code’. Edit this script to change the location.
Press enter to continue, Ctrl-C to cancel

按着步骤走编译出来的东西会被放在~/Code/rgbdslam_catkin_ws
这时候

source ~/Code/rgbdslam_catkin_ws/devel/setup.bash 

到这里,rgbdslam_v2已经安装成功

运行,跑数据
首先得下载数据集,tum数据集地址在这里可能会下载比较慢,可以找找镜像或者百度云.

错误1
直接运行 roslaunch rgbdslam rgbdslam.launch 会报错

ROS_MASTER_URI=http://localhost:11311

process[rgbdslam-1]: started with pid [22155]
================================================================================REQUIRED process [rgbdslam-1] has died!
process has died [pid 22155, exit code -11, cmd /home/damon/Code/rgbdslam_catkin_ws/devel/lib/rgbdslam/rgbdslam __name:=rgbdslam __log:=/home/damon/.ros/log/adfdfee8-22d1-11ea-9524-02428408a590/rgbdslam-1.log].
log file: /home/damon/.ros/log/adfdfee8-22d1-11ea-9524-02428408a590/rgbdslam-1*.log
Initiating shutdown!
================================================================================
[rgbdslam-1] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete


查资料提示PCL与g2o不兼容导致,下载pcl1.8版本替换系统的1.7
解决办法如下:

cd 到某个路径,存放pcl
wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.0.tar.gz
tar -zxvf pcl-1.8.0.tar.gz 
cd pcl-pcl-1.8.0/
vim CMakeLists.txt 
在146行加插入  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
mkdir build&&cd build
cmake ..
make VERBOSE=1 -j8  # 需要等待很久
sudo make install



接下来做以下操作:

修改rgbdslam_v2的 :修改第 79 行:find_package(PCL 1.7 REQUIRED COMPONENTS common io) 为 find_package(PCL 1.8 REQUIRED COMPONENTS common io)
修改 /opt/ros/kinetic/share/pcl_ros/cmake/pcl_rosConfig.cmake文件,将所有/usr/lib/x86_64-linux/libpcl开头的内容改成/usr/local/lib/libpcl
修改完成之后重新source install.sh 编译一下
再次运行

roslaunch rgbdslam rgbdslam.launch

会出现以下界面(这就说明你已经安装成功了):

 

运行  RGB-D 数据集
RGB-D 数据集 使用 rgbd_dataset_freiburg1_xyz.bag

修改 /home/用户名/Code/rgbdslam_catkin_ws/src/rgbdslam/launch文件下 rgbdslam.launch 中的 图像topic

<param name="config/topic_image_mono"  value="/camera/rgb/image_color"/>
<param name="config/topic_image_depth"  value="/camera/depth/image"/>


运行

roscore & rosbag play rgbd_dataset_freiburg1_rpy.bag
roslaunch rgbdslam rgbdslam.launch


结果

RGB-D 相机
RGB-D 相机 使用 realsense-d435i

修改 /home/用户名/Code/rgbdslam_catkin_ws/src/rgbdslam/launch文件下 rgbdslam.launch 中的 图像topic

    <!-- Input data settings-->
    <param name="config/topic_image_mono"              value="/camera/color/image_raw"/> 
    <param name="config/topic_image_depth"             value="/camera/depth/image_rect_raw"/>
    <!--param name="config/topic_image_mono"              value="/camera/rgb/image_color"/> 
    <param name="config/topic_image_depth"             value="/camera/depth/image "/-->
	<!-- remap to realsense -->
	<remap from="/camera/depth/camera_info" to="/camera/aligned_depth_to_color/camera_info"/>
	<remap from="/camera/depth/image" to="/camera/aligned_depth_to_color/image_raw"/>
	<remap from="/camera/rgb/camera_info" to="/camera/color/camera_info"/>
	<remap from="/camera/rgb/image_color" to="/camera/color/image_raw"/>
	<!-- lack of topic /cortex_marker_array & /imu -->

运行

roslaunch rgbdslam rgbdslam.launch
roslaunch realsense2_camera rs_rgbd.launch

结果

RGBD-SLAM使用kinetic v2

如果是使用Kinetic V2 获取深度图像信息的话(先正常安装Kinetic V2 在ROS下正常使用的方法:Ubuntu16.04 ROS安装kinect2并获取骨骼数据+配置kinect2_tracker 链接:https://blog.csdn.net/qq_42145185/article/details/103955937),然后

在/home/用户名/Code/rgbdslam_catkin_ws/src/rgbdslam/launch文件下新建rgbdslam_kinect2.launch

    <launch>
    <node pkg="rgbdslam" type="rgbdslam" name="rgbdslam" cwd="node" required="true" output="screen">
    <!-- Input data settings-->
    <param name="config/topic_image_mono"              value="/kinect2/qhd/image_color_rect"/>  
    <param name="config/camera_info_topic"             value="/kinect2/qhd/camera_info"/>
     
    <param name="config/topic_image_depth"             value="/kinect2/qhd/image_depth_rect"/>
     
    <param name="config/topic_points"                  value=""/> <!--if empty, poincloud will be reconstructed from image and depth -->
     
    <!-- These are the default values of some important parameters -->
    <param name="config/feature_extractor_type"        value="SIFTGPU"/><!-- also available: SIFT, SIFTGPU, SURF, SURF128 (extended SURF), ORB. -->
    <param name="config/feature_detector_type"         value="SIFTGPU"/><!-- also available: SIFT, SURF, GFTT (good features to track), ORB. -->
    <param name="config/detector_grid_resolution"      value="3"/><!-- detect on a 3x3 grid (to spread ORB keypoints and parallelize SIFT and SURF) -->
     
    <param name="config/optimizer_skip_step"           value="15"/><!-- optimize only every n-th frame -->
    <param name="config/cloud_creation_skip_step"      value="2"/><!-- subsample the images' pixels (in both, width and height), when creating the cloud (and therefore reduce memory consumption) -->
     
    <param name="config/backend_solver"                value="csparse"/><!-- pcg is faster and good for continuous online optimization, cholmod and csparse are better for offline optimization (without good initial guess)-->
     
    <param name="config/pose_relative_to"              value="first"/><!-- optimize only a subset of the graph: "largest_loop" = Everything from the earliest matched frame to the current one. Use "first" to optimize the full graph, "inaffected" to optimize only the frames that were matched (not those inbetween for loops) -->
     
    <param name="config/maximum_depth"           value="2"/>
    <param name="config/subscriber_queue_size"         value="20"/>
     
    <param name="config/min_sampled_candidates"        value="30"/><!-- Frame-to-frame comparisons to random frames (big loop closures) -->
    <param name="config/predecessor_candidates"        value="20"/><!-- Frame-to-frame comparisons to sequential frames-->
    <param name="config/neighbor_candidates"           value="20"/><!-- Frame-to-frame comparisons to graph neighbor frames-->
    <param name="config/ransac_iterations"             value="140"/>
     
    <param name="config/g2o_transformation_refinement"           value="1"/>
    <param name="config/icp_method"           value="gicp"/>  <!-- icp, gicp ... -->
     
    <!--
    <param name="config/max_rotation_degree"           value="20"/>
    <param name="config/max_translation_meter"           value="0.5"/>
    <param name="config/min_matches"           value="30"/>   
    <param name="config/min_translation_meter"           value="0.05"/>
    <param name="config/min_rotation_degree"           value="3"/>
    <param name="config/g2o_transformation_refinement"           value="2"/>
    <param name="config/min_rotation_degree"           value="10"/>
    <param name="config/matcher_type"         value="SIFTGPU"/>
     -->
    </node>
    </launch>

打开一个终端

roslaunch kinect2_bridge kinect2_bridge.launch

打开另一个终端​

roslaunch rgbdslam rgbdslam_kinect2.launch


 

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

ROS下使用realsense-d435i跑通 rgbdslam_v2运行踩坑完成 的相关文章

随机推荐

  • stm32f103c8移植Free RTOS遇到的bug和解决措施

    一 SVC系统调度错误 1 现象 xff1a 进入不了task 2 解决措施 xff1a xff08 1 xff09 将stm32f1xx it c里的void SVC Handler xff08 void xff09 函数给注释了 原因
  • FreeRTOS 实时内核实用指南之第一章任务管理知识总结

    任务函数顶层任务状态创建任务任务优先级扩充 非运行态 空闲任务与空闲任务钩子函数改变任务优先级删除任务调度算法 简述 一 任务函数 1 pvParameters 代表传入函数的参数 2 变量i和变量j 是在任务函数中的变量 xff0c 但是
  • 安装 kubectl

    以 Linux 为例 xff0c 两步 xff1a 1 下载 span class token function curl span span class token parameter variable LO span span clas
  • 关于单应性矩阵的若干思考

    1 名词解释 单应与射影变换是同义的 射影变换描述的是SE 2 到SE 2 的映射关系 映射与变换同义 映射h xff1a SE 2 到SE 2 是射影映射的充要条件是 xff1a 存在一个3x3非奇异矩阵H xff0c 使得任何一个用矢量
  • 自己的Docker Hub仓库 拉取镜像、推送镜像

    docker将本地镜像放入自己的Docker Hub仓库 首先到官网注册账号 xff1a https hub docker com 在本地Linux登录docker xff1a docker login 用户名 xff1a libowen1
  • 在gittee上建立远程仓库

    1 注册登录码云 xff0c 完善个人信息 2 设置本机绑定SSH公钥 xff0c 实现免密码登录 xff01 xff08 免密码登录 xff0c 这一步挺重要的 xff0c 码云是远程仓库 xff0c 我们是平时工作在本地仓库 xff01
  • 用windows自带WSL实现Ubuntu使用及ROS安装及gazebo黑屏解决

    Windows自带WSL实现Ubuntu使用 ROS安装 可视化桌面 gazebo黑屏解决 1 Ubuntu安装1 1 开放权限1 2 安装1 3 初始化 2 桌面环境配置2 1 换镜像源2 2 安装可视化桌面2 2 1 远程桌面连接 3
  • Optitrack视觉定位下基于ROS及PX4搭建四旋翼多机飞行平台

    Optitrack视觉定位下基于ROS及PX4搭建四旋翼多机飞行平台搭建 1 单机平台1 1 四旋翼硬件组装a 注意 1 2 机载板环境配置1 3 飞控参数配置a 注意 1 4 实飞全流程 2 多机通信2 1 多机ip地址存储2 2 ROS
  • Optitrack使用说明-基于ROS&vrpn实现的室内定位

    Optitrack使用说明 基于ROS amp vrpn实现的室内定位 待续
  • C语言实现http请求器

    C语言实现http请求器 项目介绍 本项目完成一个http客户端请求器 xff0c 该请求器往服务器发送请求 xff0c 并接受服务器发来的响应数据 程序执行流程 建立TCP连接在TCP连接获得的socket的基础上 xff0c 发送htt
  • 【 ROS 软件包 】ROS安装软件包的两种方法

    使用apt安装 xff0c 安装在 opt ros melodic share目录下 xff1a sudo apt span class token operator span get install ros span class toke
  • 【 PID 算法 】PID 算法基础

    前言 xff1a 这两天打算找个实习 xff0c 奈何感觉自己有点菜 xff0c 所以 xff0c 就补习了一下知识 xff0c 说一下 xff0c 这个PID算法吧 一 简介 PID即 xff1a Proportional xff08 比
  • 7、OPencv 图形轮廓检测

    要想实现轮廓检测 xff0c 首先我们需要对待检测的图像进行图像处理 xff1a 图像灰度化 高斯滤波 Canny 边缘检测 边缘检测放大处理 提取轮廓 一 实现简单的全图型检测 即只要将drawContours第三个参数设置为 1 既能实
  • Spring Boot 接口统一前缀

    需求 需求如题 xff0c 想给一个 spring boot 项目的所有请求路径添加统一前缀 xff0c 可以通过 context path 来配置 但是在同时存在静态资源和 Controller 接口的项目中 xff0c 如果希望静态资源
  • 一文读懂pid控制器

    文章目录 PID控制器1 控制器1 1 电机速度控制系统1 2 温度或水位控制系统1 3 小小总结 2 PID3 模拟式PID4 数字式PID4 1 位置式PID算法4 1 2 位置式pid算法的缺点 4 2 增量式PID算法4 2 2 增
  • Gazebo创建围墙并生成.world文件

    Gazebo创建围墙并生成 world仿真环境文件 文件说明 world文件是gazebo中搭建的仿真环境保存后的文件格式 xff0c 其中包含了若干个模型文件 world文件如图所示 xff1a 其中相关参数是gazebo基于我们在gaz
  • Ubuntu18.04分区方案

    由于Ubluntu18 04安装和16 04基本一样 xff0c 因此就没什么好说的 xff0c 主要记录一下分区方案 硬盘总容量 xff1a 500G 分区方案 xff1a EFI分区 逻辑分区 xff0c 空间起始位置 xff0c 10
  • Ubuntu18.04搭建AirSim+ROS仿真环境

    AIRSIM在UBuntu 18 04上构建的官网文档 一 安装UE4引擎 AIRSIM是依赖于UE4引擎实现的 因此在安装AIRSIM之前要安装UE4引擎 1 获取UE4的github许可 在Ubuntu上安装UE4引擎需要从源文件进行编
  • OpenCV-Python学习笔记(使用opencv识别物体的位置,找到中心点位)

    使用opencv识别物体的位置 xff0c 找到中心点位 xff1a 步骤 xff1a 先拿到图像 gt 进行高斯滤波 gt 进行灰度处理 gt 进行二值化 gt 进行开运算 gt 轮廓提取 gt 计算中心点位 效果图如下 xff1a 代码
  • ROS下使用realsense-d435i跑通 rgbdslam_v2运行踩坑完成

    准备工作 rbgdslam v2 按照github 实验环境Ubuntu 16 04 ROS kinetic 如果你电脑安装PCL版本是1 7 xff0c 那么请直接跳到错误1 xff0c 如果你也不知道有没有 xff0c 或者版本多少 x