Realsense D435i关闭IR结构光

Realsense D435i 关闭IR光

  • 前言
  • 环境
  • 一次性关闭IR光
  • 从源码修改

前言

由于要做Realsense D435i的双目结构光相机标定,其中用到了ROS来录制数据包,但是结构光会影响标定,所以得先关闭IR结构光发射器。

如下图,成像很多光斑,我们要想办法关掉。
Realsense D435i关闭IR结构光_第1张图片

环境

ros
librealsense
realsense-ros

一次性关闭IR光

一次性地对Realsense进行设置,关闭IR光。
首先,插入电脑,打开三个terminal,分别执行:

roscore 
roslaunch realsense2_camera rs_camera.launch 
rosrun rqt_reconfigure rqt_reconfigure 

出现以下界面:
Realsense D435i关闭IR结构光_第2张图片
把emitter_enable的勾去掉,即可。可以通过肉眼看相机发射器已经不再发射IR光了。

再在RVIZ上看看是否真的关闭了(把刚刚打开的rqt_reconfigure关掉)

在新的terminal输入rviz,先把左上角的Fixed Frame 设置为camera_link,再在左下角Add,By topic处选择Infra1下/image_rect_raw的Camera(双击),可以看到出来的图像已经没有白斑了。
Realsense D435i关闭IR结构光_第3张图片
但是下次使用的时候,还是得进行上述操作,因为这是一次性的,下面来看看如何方便地开关IR光。

从源码修改

从源码修改可以方便的使用参数来对IR光进行开关。

在realsense-ros/realsense2_camera/launch文件夹中,先复制一份rs_camera_copy.launch,以免改错了。

cp rs_camera.launch rs_camera_copy.launch

修改rs_camera_copy.launch

gedit rs_camera_copy.launch

在这条语句下面

<arg name="allow_no_texture_points"   default="false"/>

增加以下语句:

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

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

这里修改的代码意思就是说,开启rs_camera_copy.launch时,默认关闭IR光,当你需要它打开的时候,只需要在打开的时候,增加一个参数即可,下面进行示范:

①当你不需要IR光时,无需加参数开启launch:

roslaunch realsense2_camera rs_camera_copy.launch

②当你需要打开IR光时,加参数开启launch:

roslaunch realsense2_camera rs_camera_copy.launch emitter_enable:=true

这样就方便多了,IR光想开就开。

参考:
https://github.com/IntelRealSense/realsense-ros/issues/817
https://github.com/IntelRealSense/realsense-ros/issues/871

你可能感兴趣的:(realsense,Realsense)