仿照/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src目录下的ros_stereo.cc建立一个新文件,如zed2_stereo_inertial.cc。将代码复制过去,修改以下部分:

  ros::Subscriber sub_imu = n.subscribe("/imu", 1000, &ImuGrabber::GrabImu, &imugb); ros::Subscriber sub_img_left = n.subscribe("/camera/left/image_raw", 100, &ImageGrabber::GrabImageLeft,&igb);ros::Subscriber sub_img_right = n.subscribe("/camera/right/image_raw", 100, &ImageGrabber::GrabImageRight,&igb);

改为:

  ros::Subscriber sub_imu = n.subscribe("/zed/zed_node/imu/data", 1000, &ImuGrabber::GrabImu, &imugb); ros::Subscriber sub_img_left = n.subscribe("/zed/zed_node/left/image_rect_color", 100, &ImageGrabber::GrabImageLeft,&igb);ros::Subscriber sub_img_right = n.subscribe("/zed/zed_node/right/image_rect_color", 100, &ImageGrabber::GrabImageRight,&igb);

此处选取了ZED2的三个数据流,IMU数据,左目数据和右目数据

然后修改CmakeLists.txt,仿照加入:

# Node for ZED camera
rosbuild_add_executable(ZED_Stereo_IMU
src/zed2_stereo_inertial.cc
)target_link_libraries(ZED_Stereo_IMU
${LIBS}
)

重新编译

./build_ros.sh

会新生成一个可执行文件 ZED_Stereo_IMU.yaml
在其中添加

%YAML:1.0#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------
Camera.type: "PinHole"# Camera calibration and distortion parameters (OpenCV) (equal for both cameras after stereo rectification)
Camera.fx: 528.3009033203125
Camera.fy: 528.3009033203125
Camera.cx: 632.7931518554688
Camera.cy: 372.5525817871094# 用的是校正过的节点,所以畸变参数设置为0
Camera.k1: 0.0
Camera.k2: 0.0
Camera.p1: 0.0
Camera.p2: 0.0Camera.width: 1280
Camera.height: 720# Camera frames per second
Camera.fps: 15.0# stereo baseline times fx
Camera.bf: 63.396108984375# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1# Close/Far threshold. Baseline times.
ThDepth: 40.0 # 35# Transformation from camera 0 to body-frame (imu)
# 从左目转换到IMU坐标系
Tbc: !!opencv-matrixrows: 4cols: 4dt: fdata: [ 0.0055827285742915,  0.0128040922714603,  0.9999024394223516,  0.0285440762197234,-0.9999801332587812,  0.0029981004108222,  0.0055447706603969, -0.1038871459045697,-0.0029268121592544, -0.9999135295689473, 0.0128205754767047, -0.0063514683297355,0.0000000000000000, -0.0000000000000000, -0.0000000000000000,  1.0000000000000000]# IMU noise
# get it from Project of **zed-examples/tutorials/tutorial 7 - sensor data/**.
IMU.NoiseGyro: 0.007 # 1.6968e-04
IMU.NoiseAcc:  0.0016 # 2.0000e-3
IMU.GyroWalk:  0.0019474
IMU.AccWalk:   0.0002509 # 3.0000e-3
IMU.Frequency: 400#--------------------------------------------------------------------------------------------
# Stereo Rectification. Only if you need to pre-rectify the images.
# Camera.fx, .fy, etc must be the same as in LEFT.P
#--------------------------------------------------------------------------------------------
LEFT.height: 720
LEFT.width: 1280
LEFT.D: !!opencv-matrixrows: 1cols: 5dt: ddata: [0, 0, 0, 0, 0]
LEFT.K: !!opencv-matrixrows: 3cols: 3dt: ddata: [528.3009033203125, 0.0, 632.7931518554688, 0.0, 528.3009033203125, 372.5525817871094, 0.0, 0.0, 1.0]
LEFT.R:  !!opencv-matrixrows: 3cols: 3dt: ddata: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
LEFT.Rf:  !!opencv-matrixrows: 3cols: 3dt: fdata: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
LEFT.P:  !!opencv-matrixrows: 3cols: 4dt: ddata: [528.3009033203125, 0.0, 632.7931518554688, 0.0, 0.0, 528.3009033203125, 372.5525817871094, 0.0, 0.0, 0.0, 1.0, 0.0]RIGHT.height: 720
RIGHT.width: 1280
RIGHT.D: !!opencv-matrixrows: 1cols: 5dt: ddata: [0, 0, 0, 0, 0]
RIGHT.K: !!opencv-matrixrows: 3cols: 3dt: ddata: [528.3009033203125, 0.0, 632.7931518554688, 0.0, 528.3009033203125, 372.5525817871094, 0.0, 0.0, 1.0]
RIGHT.R:  !!opencv-matrixrows: 3cols: 3dt: ddata: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
RIGHT.P:  !!opencv-matrixrows: 3cols: 4dt: ddata: [528.3009033203125, 0.0, 632.7931518554688, -63.47084045410156, 0.0, 528.3009033203125, 372.5525817871094, 0.0, 0.0, 0.0, 1.0, 0.0]#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------# ORB Extractor: Number of features per image
ORBextractor.nFeatures: 1200# ORB Extractor: Scale factor between levels in the scale pyramid
ORBextractor.scaleFactor: 1.2# ORB Extractor: Number of levels in the scale pyramid
ORBextractor.nLevels: 8# ORB Extractor: Fast threshold
# Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.
# Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST
# You can lower these values if your images have low contrast
ORBextractor.iniThFAST: 20
ORBextractor.minThFAST: 7#--------------------------------------------------------------------------------------------
# Viewer Parameters
#--------------------------------------------------------------------------------------------
Viewer.KeyFrameSize: 0.05
Viewer.KeyFrameLineWidth: 1
Viewer.GraphLineWidth: 0.9
Viewer.PointSize:2
Viewer.CameraSize: 0.08
Viewer.CameraLineWidth: 3
Viewer.ViewpointX: 0
Viewer.ViewpointY: -0.7
Viewer.ViewpointZ: -1.8
Viewer.ViewpointF: 500

在/ORB_SLAM3/Examples/Stereo-Inertial下创建Stereo_IMU.yaml

然后

命令行
cd ~/catkin_ws
source ./devel/setup.bash
roscore//另开一个命令行
cd ~/catkin_ws
source ./devel/setup.bash //不知道为什么不执行这一步就无法找到zed.launch
roslaunch zed_wrapper zed.launch//另开一个命令行
cd ~/catkin_ws/src/ORB_SLAM3
rosrun ORB_SLAM3 ZED_Stereo_IMU Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/Stereo_IMU.yaml false

ZED2+ORB_SLAM3相关推荐

  1. 视觉学习笔记7——ZED2安装SDK,并用于ORB-SLAM3

    系列文章目录 ORB-SLAM3安装配置 文章目录 系列文章目录 前言 一.硬件选择 二.ZED SDK 1.依赖与安装 执行命令: 安装时选项: 验证测试: 2.报错问题 报错1:未安装Python ...

  2. ZED2跑ORB-SLAM3+双目相机、IMU联合标定+显卡驱动与cuda/cudnn安装

    一.引言 同样是项目需求,需要利用视觉惯性导航做一些开发,所以第一步先做些算法的测试–仿真与实物测验,通过仿真的测试结果,最终是决定使用ORB-SLAM3来完成任务,当然了,Vins-fusion作为 ...

  3. zed2运行ORB-SLAM3(二)

    目前我们已经搭建了完整的环境 现在我们的目标是:利用zed2在ros平台上跑通ORB-SLAM3 但是ORB-SLAM3中并没有提供zed2的配置文件,在ORB-SLAM3的官方github上ros的 ...

  4. 编译正确,运行ORB_SLAM3报错Segmentation fault

      环境编译什么的都没问题,但一运行ORB_SLAM3(基于ROS)的时候就报Segmentation fault   无论是单目还是RGBD,详细的报错信息如下: max@max-virtual-m ...

  5. Nvidia Jetson TX2+Intel Realsense D435i跑ORB_SLAM3

    前言:网上的教程实在是太多,从诸多教程中找到一个适合自己的实属不易.将此记录下来,希望能够帮助到有需要的人.因为时间紧迫,没时间写特别详细的内容,只能引用一些他人的步骤.请见谅!不过经过亲测,过程是完 ...

  6. ORB_SLAM3在ubuntu18.04安装和初步测试+轨迹评估

    目录 一.写在前面 二.各类依赖包安转 三.ORB_SLAM3编译 四.MH04测试 五.评估对比 一.写在前面 ORB_SLAM3在2020年下半年提出,其为ORB_SLAM系列中比较完整的视觉SL ...

  7. 双目立体视觉(3)- ZED2 ROS Melodic 发布RGB图像及深度信息

    国际惯例:Src https://github.com/stereolabs/zed-examples 查看本人系列文章了解ZED2 SDK in Linux build(CUDA 10.0 used ...

  8. ORB_SLAM2、ORB_SLAM3跑EuRocKITTI数据集及evo评估

    EuRoc数据集 ORB_SLAM2 单目 ./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC ...

  9. Jetson+zed2安装

    查看jetson的jetpack版本 $ cat /etc/nv_tegra_release 查看对应jetpack的版本 可以查到对应的版本为4.6 安装CUDA10.2,cudnn 下载链接 直接 ...

  10. ORB_SLAM3 Track线程详解

    概述 ORB-SLAM3 是第一个同时具备纯视觉(visual)数据处理.视觉+惯性(visual-inertial)数据处理.和构建多地图(multi-map)功能,支持单目.双目以及 RGB-D ...

最新文章

  1. CentOS 6虚拟机安装
  2. AI芯片初创公司单纯卖芯片还是捆绑算法的商业模式更好?
  3. 一群人花费了四年的时间以NASA的数据巨制“月球”
  4. Java final、static final 讲解
  5. Kali Linux 2016.2初体验
  6. oj运行时错误如何查找原因_VLOOKUP又失灵?避免这四种错误类型
  7. python爬app_Python爬虫抓取手机APP的传输数据
  8. OpenGL ES 加载3D模型
  9. 谐音梗?小米推出首款短视频应用“朕惊视频”:专为年轻人打造
  10. [LeetCode]题解(python):012-Integer to Roman
  11. python通信原理_python入门第三十三天--网络通信原理(补充)
  12. 1018. Public Bike Management (30)
  13. iATKOS v7硬盘安装教程(硬盘助手+变色龙安装版)
  14. 14:统计素数并求和
  15. android 桌面操作系统,Android主题美化: Win7桌面完成版Android Seven Pro V2
  16. PHP 大地坐标系转高德经纬度
  17. sam格式的结构和意义_SAM文件是什么
  18. 机械祭天法力无边:练习3.4:编写一段程序读入两个字符串,比较其是否相等并输出结果。如果不相等,输出较大的那个字符串。改写上述程序,比较输入的两个字符串是否等长,如果不等长,输出长度较大的那个字符串。
  19. Mac下浏览器超实用快捷键
  20. 1M带宽服务器能够承载多少人

热门文章

  1. 单片机怎么学,先从哪入手开始学,怎么开始入门
  2. 【渝粤教育】国家开放大学2018年春季 3717-22T天然气管道长输技术 参考试题
  3. 在64位linux上编译曾经在32位linux编译过,含有32位目标文件的错误的解决办法
  4. cublas中执行矩阵乘法运算的函数 首先要注意的是cublas使用的是以列为主的存储方式,和c/c++中的以行为主的方式是不一样的。处理方法可参考下面的注释代码
  5. C++中的左值和右值的区别
  6. Jquery中拿到相同的对应的所有的标签
  7. @font-face 字体图标的应用
  8. 使用cJSON库解析和构建JSON字符串
  9. 创建java普通工程 ( 4 )
  10. pyqt5-QFrame边框样式