使用OAK-D相机跑ORB-SLAM3算法遇到的问题总结

问题1:相机内外参数的获取

  1. 在启动相机驱动后使用命令行查看
rostopic echo -n 1 /stereo_publisher/left/camera_info
rostopic echo -n 1 /stereo_publisher/right/camera_info

-n 1指消息只打印1次
参数如下
D:相机的畸变系数,在SLAM中一般用到前5位[k1,k2,p1,p2,k3]
K:相机内参矩阵
R:相机旋转矩阵
P:相机投影矩阵,矩阵中第4个数字59.60097983474698对应ORB-SLAM3配置文件中的bf参数

header: 
  seq: 0
  stamp: 
    secs: 1668563459
    nsecs: 222877835
  frame_id: "oak_left_camera_optical_frame"
height: 720
width: 1280
distortion_model: "rational_polynomial"
D: [6.860053539276123, 8.262731552124023, -0.0022835570853203535, -0.0021555486600846052, -33.7902717590332, 6.535381317138672, 9.392735481262207, -34.76184844970703]
K: [800.8717041015625, 0.0, 630.91015625, 0.0, 800.8717041015625, 313.4556884765625, 0.0, 0.0, 1.0]
R: [0.9999741911888123, 8.463647827738896e-05, 0.00718728918582201, -7.144125265767798e-05, 0.9999983310699463, -0.0018361477414146066, -0.007187432609498501, 0.0018355868523940444, 0.9999724626541138]
P: [799.4793090820312, 0.0, 629.921875, 59.60097983474698, 0.0, 799.4793090820312, 289.2037658691406, 0.0, 0.0, 0.0, 1.0, 0.0]
binning_x: 0
binning_y: 0
roi: 
  x_offset: 0
  y_offset: 0
  height: 0
  width: 0
  do_rectify: False
---

问题2:在启动相机并运行ORB-SLAM3程序后无法成功初始化

每帧图像的特征点检测正常,但是在pangolin的图像帧Frame窗口特征点很不稳定,而且一直无法初始化成功。
解决:
ORB-SLAM3针对双目和双单目组合两种情况提供了两种配置文件,因为之前调试的原因选择了双单目组合对应的配置文件格式,因此出现错误

  1. 首先要选择双目对应的配置文件格式,即带有Stereo Rectification参数的配置文件,将问题1获得的参数填到对应位置即可
  2. Stereo Rectification中左右目相机的畸变系数全部写成0.0,因为相机发布出来的图像已经是去畸变的,不需要再去畸变
    最后附上完整的参数
%YAML:1.0

#--------------------------------------------------------------------------------------------
# System config
#--------------------------------------------------------------------------------------------

# When the variables are commented, the system doesn't load a previous session or not store the current one

# If the LoadFile doesn't exist, the system give a message and create a new Atlas from scratch
#System.LoadAtlasFromFile: "Session_MH01_MH02_MH03_Stereo60_Pseudo"

# The store file is created from the current session, if a file with the same name exists it is deleted
#System.SaveAtlasToFile: "Session_MH01_MH02_MH03_Stereo60_Pseudo"

#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------
Camera.type: "PinHole"

# Camera calibration and distortion parameters (OpenCV) 
Camera.fx: 799.4793090820312
Camera.fy: 799.4793090820312
Camera.cx: 629.921875
Camera.cy: 289.2037658691406

Camera.k1: 0.0
Camera.k2: 0.0
Camera.p1: 0.0
Camera.p2: 0.0

Camera.bFishEye: 0

Camera.width: 1280
Camera.height: 720

# Camera frames per second 
Camera.fps: 30.0

# stereo baseline times fx
Camera.bf: 59.60097983474698

# 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: 60.0 #35.0 #60.0

#--------------------------------------------------------------------------------------------
# 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-matrix
   rows: 1
   cols: 5
   dt: d
   data: [0.0, 0.0, 0.0, 0.0, 0.0]
LEFT.K: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [800.8717041015625, 0.0, 630.91015625, 0.0, 800.8717041015625, 313.4556884765625, 0.0, 0.0, 1.0]
LEFT.R:  !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [0.9999741911888123, 8.463647827738896e-05, 0.00718728918582201, -7.144125265767798e-05, 0.9999983310699463, -0.0018361477414146066, -0.007187432609498501, 0.0018355868523940444, 0.9999724626541138]
LEFT.P:  !!opencv-matrix
   rows: 3
   cols: 4
   dt: d
   data: [799.4793090820312, 0.0, 629.921875, 59.60097983474698, 0.0, 799.4793090820312, 289.2037658691406, 0.0, 0.0, 0.0, 1.0, 0.0]

RIGHT.height: 720
RIGHT.width: 1280
RIGHT.D: !!opencv-matrix
   rows: 1
   cols: 5
   dt: d
   data: [0.0, 0.0, 0.0, 0.0, 0.0]
RIGHT.K: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [799.4793090820312, 0.0, 629.921875, 0.0, 799.4793090820312, 289.2037658691406, 0.0, 0.0, 1.0]
RIGHT.R:  !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [0.9999744892120361, 0.00568584306165576, 0.004325373098254204, -0.005693774204701185, 0.9999821186065674, 0.0018235768657177687, -0.004314926918596029, -0.0018481580773368478, 0.9999889731407166]
RIGHT.P:  !!opencv-matrix
   rows: 3
   cols: 4
   dt: d
   data: [799.4793090820312, 0.0, 629.921875, 0.0, 0.0, 799.4793090820312, 289.2037658691406, 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
Viewer.imageViewScale: 0.5
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: OAK-D-Pro 是一款功能强大的智能深度相机,具有高度的智能化和灵活性。它搭载了 OpenCV、OpenVINO、TensorFlow 等多种先进的 AI 框架和算法,可以用于人脸识别、姿势识别、手势识别、物体检测、场景分析等多种应用场景。 OAK-D-Pro 还支持多种连接方式,包括 USB、HDMI、以太网等,方便与不同的设备进行联接。同时,它也具有较高的处理性能和低功耗,可以在较长时间内进行运算。 总之,OAK-D-Pro 是一款非常优秀的智能深度相机,可以广泛应用于各种 AI 领域,具有很高的性价比。 ### 回答2: 智能深度相机OAK-D Pro是一款功能强大的相机,具有出色的效果和性能。 首先,OAK-D Pro采用了先进的深度感知技术,能够实时获取环境中的深度信息。通过双目立体视觉和深度学习算法的结合,它能够高精度地感知和测量物体的三维空间位置和形状。这使得OAK-D Pro在目标检测、位姿估计、实时地图生成等任务中表现出色。 其次,OAK-D Pro具备较高的图像分辨率和图像质量。它搭载了高清摄像头,能够捕捉到更多细节,并保持图像的清晰度和真实感。这使得其在计算机视觉应用中可以更准确地分析和处理图像。 此外,OAK-D Pro还具备强大的计算能力和算法处理能力。其内置的高性能处理器和深度学习推理芯片可以快速高效地处理和分析图像数据。这使得OAK-D Pro能够在实时应用场景中保持稳定且高效的性能表现。 最后,OAK-D Pro还支持多种接口和数据输出方式,可以与其他设备和平台进行无缝集成。这为用户提供了更大的灵活性,可以在各种应用中充分发挥OAK-D Pro的效能。 综上所述,智能深度相机OAK-D Pro具有优秀的深度感知能力、高清影像质量、强大的计算能力和多样化的数据输出接口。其出色的效果使得它在计算机视觉人工智能领域有着广泛的应用前景。 ### 回答3: 智能深度相机OAK-D Pro是一款高性能的相机产品,具有出色的效果。它采用了深度学习算法,可以实现更精确的深度感知,并与计算机视觉技术相结合,实现高质量的图像和视频输出。 OAK-D Pro的主要特点之一是其高分辨率和高帧率。它配备了一个强大的传感器,能够捕捉到更多细节,并以每秒30帧的速度进行图像和视频的采集。这意味着用户可以获得更清晰、更流畅的图像和视频体验。 此外,OAK-D Pro还具备智能边缘计算的能力。它内置了强大的处理器和神经网络,能够在设备上进行实时的图像和视频分析,无需依赖云端的计算资源。这种边缘计算的方式大大提高了响应速度,并能够实现更高效的应用,比如目标检测、人脸识别等。 此外,OAK-D Pro还支持深度数据的获取和处理。它能够测量出场景中每个像素的距离,并生成精确的深度图像。这为各种应用提供了更多可能性,比如虚拟现实、增强现实等。 综上所述,智能深度相机OAK-D Pro具有出色的性能和效果。它不仅能够提供高质量的图像和视频输出,还能够进行智能边缘计算和深度数据处理,满足用户在各种应用场景中的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值