D435/D435i使用技巧

D435/D435i是目前市场上使用最为方便的双目深度相机。虽然淘宝上其价格有些让人望而却步,但是咸鱼上成色不错的D435/D435i 价格就在1000左右,依旧是自主无人机视觉定位和感知的首选。

这里记录一下,我使用这款相机的一些技巧,希望对大家有些帮助

相机内部参数的获取

realsense 系列的相机,在出厂时都已经进行了标定,其标定结果基本是很不错的。大家可以放心的直接使用,如果有不满意,也可以再自行使用kalibr工具包标定。
有两种方式获取其参数:

  • rs-enumerate-devices -c 找到我们输出的分辨率,一般是640×480
Intrinsic of "Infrared 1" / 640x480 / {Y8}
  Width:      	640
  Height:     	480
  PPX:        	324.642425537109
  PPY:        	236.990188598633
  Fx:         	386.346374511719
  Fy:         	386.346374511719
  Distortion: 	Brown Conrady
  Coeffs:     	0  	0  	0  	0  	0  
  FOV (deg):  	79.26 x 63.7
  • rostopic echo /camera/infra1/camera_info
header: 
  seq: 78
  stamp: 
    secs: 1679556374
    nsecs: 751435738
  frame_id: "camera_infra1_optical_frame"
height: 480
width: 640
distortion_model: "plumb_bob"
D: [0.0, 0.0, 0.0, 0.0, 0.0]
K: [386.34637451171875, 0.0, 324.6424255371094, 0.0, 386.34637451171875, 236.9901885986328, 0.0, 0.0, 1.0]
R: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
P: [386.34637451171875, 0.0, 324.6424255371094, 0.0, 0.0, 386.34637451171875, 236.9901885986328, 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

其中K为相机内参矩阵:

K

=

[

f

x

0

c

x

0

f

y

c

y

0

0

1

]

K=\begin{bmatrix} f_x & 0 &c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1\end{bmatrix}

K=
fx000fy0cxcy1

关闭结构光

在使用D435/D435i运行双目视觉里程计时,其结构光产生的光斑是不可接收的。我们可以物理手段,直接将结构光投影器遮蔽。也可以从launch文件中设置,将下面的内容加入<group ns="$(arg camera)"> 之前即可:

<arg name="emitter_enable"   		   default="false"/>
	
<!-- rosparam set /camera/stereo_module/emitter_enabled false -->
<rosparam>
  /camera/stereo_module/emitter_enabled: 0
</rosparam>

<rosparam if="$(arg emitter_enable)">
  /camera/stereo_module/emitter_enabled: 1
</rosparam>

结构光闪烁

虽然关闭了结构光可以方便我们进行双目的特征提取。但是这使得深度的估计不如结构光开启时准确。为此,可以修改驱动使得结构光开关交替,并将结构光关闭时的infra图像输出,将结构光开启时的depth输出,即获得高质量深度图也获得没有结构光干扰的infra图!这样是更优选,Fast_lab的汪泽培博士和周鑫博士已经写好了这个驱动,里面有些编译的小bug, 我修复后把它放在了这里:
https://portrait.gitee.com/music-lab/modified_realsense2_camera

多个设备接入一台电脑

由于一些任务和算法的需要,我们可以需要将多个D435/D435i 接入电脑。那么参考官网操作即可:
https://www.intelrealsense.com/how-to-multiple-camera-setup-with-ros/
key piont:

  • roslaunch realsense2_camera rs_camera.launch camera:=cam_1 serial_no:=140122076981 filters:=spatial,temporal,pointcloud

  • roslaunch realsense2_camera rs_camera.launch camera:=cam_2 serial_no:=xxxx filters:=spatial,temporal,pointcloud

  • filters参数可用可不用!


版权声明:本文为TLKids原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/TLKids/article/details/129731562