Realsense D435i關閉IR光

前言

由於要做Realsense D435i的雙目結構光相機標定,其中用到了ROS來錄製數據包,但是結構光會影響標定,所以得先關閉IR結構光發射器。

如下圖,成像很多光斑,我們要想辦法關掉。
在這裏插入圖片描述

環境

ros
librealsense
realsense-ros

一次性關閉IR光

一次性地對Realsense進行設置,關閉IR光。
首先,插入電腦,打開三個terminal,分別執行:

roscore 
roslaunch realsense2_camera rs_camera.launch 
rosrun rqt_reconfigure rqt_reconfigure 

出現以下界面:
在這裏插入圖片描述
把emitter_enable的勾去掉,即可。可以通過肉眼看相機發射器已經不再發射IR光了。

再在RVIZ上看看是否真的關閉了(把剛剛打開的rqt_reconfigure關掉)

在新的terminal輸入rviz,先把左上角的Fixed Frame 設置爲camera_link,再在左下角Add,By topic處選擇Infra1下/image_rect_raw的Camera(雙擊),可以看到出來的圖像已經沒有白斑了。
在這裏插入圖片描述
但是下次使用的時候,還是得進行上述操作,因爲這是一次性的,下面來看看如何方便地開關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

發佈了44 篇原創文章 · 獲贊 43 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章