Realsense-ros: Auto-Exposure Not Consistently Working at System Init on D435

Created on 23 Feb 2018  路  19Comments  路  Source: IntelRealSense/realsense-ros

Running v2.0.2 of this package with v2.10.0 of librealsense and camera firmware 5.9.2.0. Ubuntu 16.04 with 4.10.0-28 kernel.

I noticed quite poor depth performance when viewing the Point Cloud in RVIZ after power cycling the D435 camera but no issue when using realsense-viewer. This caused the data in RVIZ to appear splotchy and inconsistent.

I then launched rosrun rqt_reconfigure rqt_reconfigure and noticed that the auto-exposure for the depth stream (first checkbox at the top of the realsense config menu) was indeed turned on (as indicated by the box being checked). However, unchecking this box and then re-checking it consistently fixed the issue indicating that auto-exposure at nodelet boot is not working. This might be an issue on the librealsense side, but I'm not too sure since it looked OK in realsense-viewer.

ROS Wrapper 2 bug firmware

Most helpful comment

I have had the same issue with the d415. I believe it is caused as setting the manual exposure causes the system to drop out of auto exposure mode, and the manual exposure is set on startup.

I fixed the issue on my system by adding

if(config.rs415_depth_enable_auto_exposure){ BaseD400Node::setParam(config, base_depth_enable_auto_exposure); }

After this line https://github.com/intel-ros/realsense/blob/development/realsense2_camera/src/rs415_node.cpp#L93. I expect the same fix would work for the d435 node

All 19 comments

I am experiencing the same thing.

@Mitchell-Hampton, @dpipemazo, please post the output of the RealSense ROS node.

I managed to reproduce this issue and it looks like a firmware bug.
As a workaround you can physically replug the camera or call to Hardware Reset method.

@icarpis Thanks for looking into it! Sorry I didn't post the output of the node; got pulled away from working on it for a few days. Are you aware of a firmware release schedule or when we might be abe to expect an update?

I just ran into this issue as well. The auto exposure works well after toggling it off & on in rqt_reconfigure. I am going to try calling hardware_reset and see if that helps.

@icarpis I would be really interested in a firmware fix for this as well.

Can you confirm that you are only seeing this on Linux AND ROS? I dont see this issue on Windows, but maybe I am not doing the right thing to reproduce. We need to figure out whether it is FW or SW.

We have experienced the same issue, this is the script we use to solve it now (as a workaround):

#!/bin/bash
rosrun dynamic_reconfigure dynparam set realsense2_camera_manager rs435_depth_enable_auto_exposure 0
rosrun dynamic_reconfigure dynparam set realsense2_camera_manager rs435_depth_enable_auto_exposure 1

This script can be put in the launch file where you start the node and nodelet manager.

@agrunnet : Yep, I am seeing it only on Linux & ROS. In the Realsense viewer on Windows it launches fine with depth auto exposure enabled.

Any updates on this issue?

@reinzor, I'm on the latest version for the librealense, SDK, and so on. Your script doesn't seem to work, I still have to toggle it in rqt_reconfigure. Any suggestions?

@fiorano10 , this script performs exactly the same service calls than you are doing with the gui. Please check whether your node argument is correct:

Usage: dynparam set [options] node parameter value

It's working, thanks! I had the incorrect value for parameter

Yes, re-check your nodelet manager name. The first argument (args attribute) has to point to the nodelet manager that is running your camera driver nodelet.

You can use the rosnode cli to obtain the names of the running nodes:

rosnode list

maybe adding the /camera/ prefix will already solve your problem

I have had the same issue with the d415. I believe it is caused as setting the manual exposure causes the system to drop out of auto exposure mode, and the manual exposure is set on startup.

I fixed the issue on my system by adding

if(config.rs415_depth_enable_auto_exposure){ BaseD400Node::setParam(config, base_depth_enable_auto_exposure); }

After this line https://github.com/intel-ros/realsense/blob/development/realsense2_camera/src/rs415_node.cpp#L93. I expect the same fix would work for the d435 node

Thanks @ZacharyTaylor ! I can confirm it works for the d435.

Thanks @ZacharyTaylor. I opened PR #392 implementing the proposed fix.

Hope to see this fixed soon!

Running the procedure that @dpipemazo mentioned in his original post, with the latest RealSense updates (that is librealsense version 2.16, Real Sense firmware version 05.10.03 and latest realsense2_camera [31a0e4d] ), it would seem that auto exposure is working on start up.

It would be interesting if others could conform this as well.

fixed in the latest commit. Will be available in the upcoming release, hopefully by tomorrow.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lauesa picture lauesa  路  6Comments

Kyungdon picture Kyungdon  路  6Comments

jattiogbe picture jattiogbe  路  3Comments

whyou5945 picture whyou5945  路  4Comments

KentaKawamata picture KentaKawamata  路  6Comments