关于realsense R200在室外outdoor得不得depth的问题解决

前几天在ros-indigo平台测试realsense R200的时候,发现在室内可以得到深度图,/camera/depth/image_raw,但是在室外就是一片黑,而且在室外的时候/camera/ir/image_raw和/camera/ir2/image_raw的两幅红外图像一片白,严重过曝。

根据网上的参考,在室外需要设置/camera/driver/r200_lr_auto_exposure_enabled为1 ,也就是打开自动曝光。可以直接去realsense camera的cfg文件夹里修改r200的cfg文件里的该值的default。

但是,设置了该值之后,利用ROS在室外还是无法得到深度图像。直接在Linux下打开r200的config-ui.cpp文件,发现自动曝光是好使的。可以得到深度图像,问题应该出在ROS的封装包里。

在与Intel的工程师交流后,他们发现确实存在BUG,而且近期会在下一版更新中修正该问题,请关注github的realsense camera的源代码。

以下为解决方案,经修改后,目前可以正常运行了:


打开realsense/realsense_camera/src/r200_nodelet.cpp文件
289290行:
rs_set_device_option(rs_device_, RS_OPTION_R200_LR_GAIN, config.r200_lr_gain,0);
rs_set_device_option(rs_device_, RS_OPTION_R200_EMITTER_ENABLED, config.r200_emitter_enabled,0);
放到286-288的大括号内,变成:
if (config.r200_lr_auto_exposure_enabled == 0)
{
         rs_set_device_option(rs_device_, RS_OPTION_R200_LR_EXPOSURE, config.r200_lr_exposure,0);
rs_set_device_option(rs_device_, RS_OPTION_R200_LR_GAIN, config.r200_lr_gain,0);
rs_set_device_option(rs_device_, RS_OPTION_R200_EMITTER_ENABLED,config.r200_emitter_enabled, 0);
}
之后,catkin_make


你可能感兴趣的:(关于realsense R200在室外outdoor得不得depth的问题解决)