mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-13 07:49:49 +08:00
feat: add setting for max gain in color auto-exposure
This commit is contained in:
@@ -487,6 +487,7 @@ class OBCameraNode {
|
|||||||
int color_gain_ = -1;
|
int color_gain_ = -1;
|
||||||
int color_white_balance_ = -1;
|
int color_white_balance_ = -1;
|
||||||
int color_ae_max_exposure_ = -1;
|
int color_ae_max_exposure_ = -1;
|
||||||
|
int color_ae_max_gain_ = -1;
|
||||||
int color_brightness_ = -1;
|
int color_brightness_ = -1;
|
||||||
int color_sharpness_ = -1;
|
int color_sharpness_ = -1;
|
||||||
int color_saturation_ = -1;
|
int color_saturation_ = -1;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ def generate_launch_description():
|
|||||||
DeclareLaunchArgument('color_gain', default_value='-1'),
|
DeclareLaunchArgument('color_gain', default_value='-1'),
|
||||||
DeclareLaunchArgument('enable_color_auto_white_balance', default_value='true'),
|
DeclareLaunchArgument('enable_color_auto_white_balance', default_value='true'),
|
||||||
DeclareLaunchArgument('color_white_balance', default_value='-1'),
|
DeclareLaunchArgument('color_white_balance', default_value='-1'),
|
||||||
DeclareLaunchArgument('color_ae_max_exposure', default_value='-1'),
|
DeclareLaunchArgument('color_ae_max_gain', default_value='-1'),
|
||||||
DeclareLaunchArgument('depth_width', default_value='640'),
|
DeclareLaunchArgument('depth_width', default_value='640'),
|
||||||
DeclareLaunchArgument('depth_height', default_value='400'),
|
DeclareLaunchArgument('depth_height', default_value='400'),
|
||||||
DeclareLaunchArgument('depth_fps', default_value='15'),
|
DeclareLaunchArgument('depth_fps', default_value='15'),
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ def generate_launch_description():
|
|||||||
DeclareLaunchArgument('color_gain', default_value='-1'),
|
DeclareLaunchArgument('color_gain', default_value='-1'),
|
||||||
DeclareLaunchArgument('enable_color_auto_white_balance', default_value='true'),
|
DeclareLaunchArgument('enable_color_auto_white_balance', default_value='true'),
|
||||||
DeclareLaunchArgument('color_white_balance', default_value='-1'),
|
DeclareLaunchArgument('color_white_balance', default_value='-1'),
|
||||||
DeclareLaunchArgument('color_ae_max_exposure', default_value='-1'),
|
DeclareLaunchArgument('color_ae_max_gain', default_value='-1'),
|
||||||
DeclareLaunchArgument('depth_width', default_value='1280'),
|
DeclareLaunchArgument('depth_width', default_value='1280'),
|
||||||
DeclareLaunchArgument('depth_height', default_value='800'),
|
DeclareLaunchArgument('depth_height', default_value='800'),
|
||||||
DeclareLaunchArgument('depth_fps', default_value='30'),
|
DeclareLaunchArgument('depth_fps', default_value='30'),
|
||||||
|
|||||||
@@ -483,6 +483,18 @@ void OBCameraNode::setupDevices() {
|
|||||||
RCLCPP_INFO_STREAM(logger_, "Setting color AE max exposure to " << color_ae_max_exposure_);
|
RCLCPP_INFO_STREAM(logger_, "Setting color AE max exposure to " << color_ae_max_exposure_);
|
||||||
TRY_TO_SET_PROPERTY(setIntProperty, OB_PROP_COLOR_AE_MAX_EXPOSURE_INT, color_ae_max_exposure_);
|
TRY_TO_SET_PROPERTY(setIntProperty, OB_PROP_COLOR_AE_MAX_EXPOSURE_INT, color_ae_max_exposure_);
|
||||||
}
|
}
|
||||||
|
if (color_ae_max_gain_ != -1 &&
|
||||||
|
device_->isPropertySupported(OB_PROP_COLOR_AE_MAX_GAIN_INT, OB_PERMISSION_WRITE)) {
|
||||||
|
auto range = device_->getIntPropertyRange(OB_PROP_COLOR_AE_MAX_GAIN_INT);
|
||||||
|
if (color_ae_max_gain_ < range.min || color_ae_max_gain_ > range.max) {
|
||||||
|
RCLCPP_ERROR(logger_,
|
||||||
|
"color AE max gain value is out of range[%d,%d], please check the value",
|
||||||
|
range.min, range.max);
|
||||||
|
} else {
|
||||||
|
RCLCPP_INFO_STREAM(logger_, "Setting color AE max gain to " << color_ae_max_gain_);
|
||||||
|
TRY_TO_SET_PROPERTY(setIntProperty, OB_PROP_COLOR_AE_MAX_GAIN_INT, color_ae_max_gain_);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (color_brightness_ != -1 &&
|
if (color_brightness_ != -1 &&
|
||||||
device_->isPropertySupported(OB_PROP_COLOR_BRIGHTNESS_INT, OB_PERMISSION_WRITE)) {
|
device_->isPropertySupported(OB_PROP_COLOR_BRIGHTNESS_INT, OB_PERMISSION_WRITE)) {
|
||||||
RCLCPP_INFO_STREAM(logger_, "Setting color brightness to " << color_brightness_);
|
RCLCPP_INFO_STREAM(logger_, "Setting color brightness to " << color_brightness_);
|
||||||
@@ -1178,6 +1190,7 @@ void OBCameraNode::getParameters() {
|
|||||||
setAndGetNodeParameter<int>(color_gain_, "color_gain", -1);
|
setAndGetNodeParameter<int>(color_gain_, "color_gain", -1);
|
||||||
setAndGetNodeParameter<int>(color_white_balance_, "color_white_balance", -1);
|
setAndGetNodeParameter<int>(color_white_balance_, "color_white_balance", -1);
|
||||||
setAndGetNodeParameter<int>(color_ae_max_exposure_, "color_ae_max_exposure", -1);
|
setAndGetNodeParameter<int>(color_ae_max_exposure_, "color_ae_max_exposure", -1);
|
||||||
|
setAndGetNodeParameter<int>(color_ae_max_gain_, "color_ae_max_gain", -1);
|
||||||
setAndGetNodeParameter<int>(color_brightness_, "color_brightness", -1);
|
setAndGetNodeParameter<int>(color_brightness_, "color_brightness", -1);
|
||||||
setAndGetNodeParameter<int>(color_sharpness_, "color_sharpness", -1);
|
setAndGetNodeParameter<int>(color_sharpness_, "color_sharpness", -1);
|
||||||
setAndGetNodeParameter<int>(color_saturation_, "color_saturation", -1);
|
setAndGetNodeParameter<int>(color_saturation_, "color_saturation", -1);
|
||||||
|
|||||||
Reference in New Issue
Block a user