[interleave_ae]Added parameter settings for interleave frames 0 and 1

This commit is contained in:
jj
2024-12-06 10:26:06 +08:00
parent ea0a59394d
commit 78a69bab64
3 changed files with 122 additions and 22 deletions
@@ -296,7 +296,7 @@ class OBCameraNode {
void setSYNCInterleaveLaserCallback(const std::shared_ptr<SetInt32 ::Request>& request,
std::shared_ptr<SetInt32 ::Response>& response);
void setSYNCHostimeCallback(const std::shared_ptr<std_srvs::srv::SetBool::Request>& request,
std::shared_ptr<std_srvs::srv::SetBool::Response>& response);
std::shared_ptr<std_srvs::srv::SetBool::Response>& response);
bool toggleSensor(const stream_index_pair& stream_index, bool enabled, std::string& msg);
void saveImageCallback(const std::shared_ptr<std_srvs::srv::Empty::Request>& request,
@@ -618,5 +618,28 @@ class OBCameraNode {
bool interleave_frame_enable_ = false;
bool interleave_skip_enable_ = false;
int interleave_skip_index_ = 1;
// hdr and laser interleave params
int hdr_index1_laser_control_ = 1;
int hdr_index1_depth_exposure_ = 1;
int hdr_index1_depth_gain_ = 16;
int hdr_index1_ir_brightness_ = 20;
int hdr_index1_ir_ae_max_exposure_ = 2000;
int hdr_index0_laser_control_ = 1;
int hdr_index0_depth_exposure_ = 7500;
int hdr_index0_depth_gain_ = 16;
int hdr_index0_ir_brightness_ = 60;
int hdr_index0_ir_ae_max_exposure_ = 10000;
int laser_index1_laser_control_ = 0;
int laser_index1_depth_exposure_ = 3000;
int laser_index1_depth_gain_ = 16;
int laser_index1_ir_brightness_ = 60;
int laser_index1_ir_ae_max_exposure_ = 7000;
int laser_index0_laser_control_ = 1;
int laser_index0_depth_exposure_ = 3000;
int laser_index0_depth_gain_ = 16;
int laser_index0_ir_brightness_ = 60;
int laser_index0_ir_ae_max_exposure_ = 17000;
};
} // namespace orbbec_camera
@@ -178,6 +178,29 @@ def generate_launch_description():
DeclareLaunchArgument('interleave_frame_enable', default_value='false'),
DeclareLaunchArgument('interleave_skip_enable', default_value='false'),
DeclareLaunchArgument('interleave_skip_index', default_value='1'), # 0:skip pattern ir 1: skip flood ir
DeclareLaunchArgument('hdr_index1_laser_control', default_value='1'),#interleave_hdr_param
DeclareLaunchArgument('hdr_index1_depth_exposure', default_value='1'),
DeclareLaunchArgument('hdr_index1_depth_gain', default_value='16'),
DeclareLaunchArgument('hdr_index1_ir_brightness', default_value='20'),
DeclareLaunchArgument('hdr_index1_ir_ae_max_exposure', default_value='2000'),
DeclareLaunchArgument('hdr_index0_laser_control', default_value='1'),
DeclareLaunchArgument('hdr_index0_depth_exposure', default_value='7500'),
DeclareLaunchArgument('hdr_index0_depth_gain', default_value='16'),
DeclareLaunchArgument('hdr_index0_ir_brightness', default_value='60'),
DeclareLaunchArgument('hdr_index0_ir_ae_max_exposure', default_value='10000'),
DeclareLaunchArgument('laser_index1_laser_control', default_value='0'),#interleave_laser_param
DeclareLaunchArgument('laser_index1_depth_exposure', default_value='3000'),
DeclareLaunchArgument('laser_index1_depth_gain', default_value='16'),
DeclareLaunchArgument('laser_index1_ir_brightness', default_value='60'),
DeclareLaunchArgument('laser_index1_ir_ae_max_exposure', default_value='17000'),
DeclareLaunchArgument('laser_index0_laser_control', default_value='1'),
DeclareLaunchArgument('laser_index0_depth_exposure', default_value='3000'),
DeclareLaunchArgument('laser_index0_depth_gain', default_value='16'),
DeclareLaunchArgument('laser_index0_ir_brightness', default_value='60'),
DeclareLaunchArgument('laser_index0_ir_ae_max_exposure', default_value='30000'),
]
def get_params(context, args):
+75 -21
View File
@@ -784,38 +784,37 @@ void OBCameraNode::updateImageConfig(const stream_index_pair &stream_index) {
}
int OBCameraNode::init_interleave_hdr_param() {
device_->setIntProperty(OB_PROP_FRAME_INTERLEAVE_CONFIG_INDEX_INT, 1);
device_->setIntProperty(OB_PROP_LASER_CONTROL_INT, 1);
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, 1);
device_->setIntProperty(OB_PROP_DEPTH_GAIN_INT, 16);
device_->setIntProperty(OB_PROP_IR_BRIGHTNESS_INT, 20);
device_->setIntProperty(OB_PROP_IR_AE_MAX_EXPOSURE_INT, 2000);
device_->setIntProperty(OB_PROP_LASER_CONTROL_INT, hdr_index1_laser_control_);
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, hdr_index1_depth_exposure_);
device_->setIntProperty(OB_PROP_DEPTH_GAIN_INT, hdr_index1_depth_gain_);
device_->setIntProperty(OB_PROP_IR_BRIGHTNESS_INT, hdr_index1_ir_brightness_);
device_->setIntProperty(OB_PROP_IR_AE_MAX_EXPOSURE_INT, hdr_index1_ir_ae_max_exposure_);
// set interleaveae
device_->setIntProperty(OB_PROP_FRAME_INTERLEAVE_CONFIG_INDEX_INT, 0);
device_->setIntProperty(OB_PROP_LASER_CONTROL_INT, 1);
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, 7500);
device_->setIntProperty(OB_PROP_DEPTH_GAIN_INT, 16);
device_->setIntProperty(OB_PROP_IR_BRIGHTNESS_INT, 60);
device_->setIntProperty(OB_PROP_IR_AE_MAX_EXPOSURE_INT, 10000);
device_->setIntProperty(OB_PROP_LASER_CONTROL_INT, hdr_index0_laser_control_);
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, hdr_index0_depth_exposure_);
device_->setIntProperty(OB_PROP_DEPTH_GAIN_INT, hdr_index0_depth_gain_);
device_->setIntProperty(OB_PROP_IR_BRIGHTNESS_INT, hdr_index0_ir_brightness_);
device_->setIntProperty(OB_PROP_IR_AE_MAX_EXPOSURE_INT, hdr_index0_ir_ae_max_exposure_);
return 0;
}
int OBCameraNode::init_interleave_laser_param() {
device_->setIntProperty(OB_PROP_FRAME_INTERLEAVE_CONFIG_INDEX_INT, 1);
device_->setIntProperty(OB_PROP_LASER_CONTROL_INT, 0);
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, 3000);
device_->setIntProperty(OB_PROP_DEPTH_GAIN_INT, 16);
device_->setIntProperty(OB_PROP_IR_BRIGHTNESS_INT, 60);
// device_->setIntProperty(OB_PROP_IR_AE_MAX_EXPOSURE_INT, 30000);
device_->setIntProperty(OB_PROP_IR_AE_MAX_EXPOSURE_INT, 17000);
device_->setIntProperty(OB_PROP_LASER_CONTROL_INT, laser_index1_laser_control_);
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, laser_index1_depth_exposure_);
device_->setIntProperty(OB_PROP_DEPTH_GAIN_INT, laser_index1_depth_gain_);
device_->setIntProperty(OB_PROP_IR_BRIGHTNESS_INT, laser_index1_ir_brightness_);
device_->setIntProperty(OB_PROP_IR_AE_MAX_EXPOSURE_INT, laser_index1_ir_ae_max_exposure_);
// set interleaveae
device_->setIntProperty(OB_PROP_FRAME_INTERLEAVE_CONFIG_INDEX_INT, 0);
device_->setIntProperty(OB_PROP_LASER_CONTROL_INT, 1);
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, 3000);
device_->setIntProperty(OB_PROP_DEPTH_GAIN_INT, 16);
device_->setIntProperty(OB_PROP_IR_BRIGHTNESS_INT, 60);
device_->setIntProperty(OB_PROP_IR_AE_MAX_EXPOSURE_INT, 30000);
device_->setIntProperty(OB_PROP_LASER_CONTROL_INT, laser_index0_laser_control_);
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, laser_index0_depth_exposure_);
device_->setIntProperty(OB_PROP_DEPTH_GAIN_INT, laser_index0_depth_gain_);
device_->setIntProperty(OB_PROP_IR_BRIGHTNESS_INT, laser_index0_ir_brightness_);
device_->setIntProperty(OB_PROP_IR_AE_MAX_EXPOSURE_INT, laser_index0_ir_ae_max_exposure_);
return 0;
}
void OBCameraNode::startStreams() {
@@ -1286,6 +1285,61 @@ void OBCameraNode::getParameters() {
setAndGetNodeParameter<bool>(interleave_frame_enable_, "interleave_frame_enable", false);
setAndGetNodeParameter<bool>(interleave_skip_enable_, "interleave_skip_enable", false);
setAndGetNodeParameter<int>(interleave_skip_index_, "interleave_skip_index", 1);
// hdr and laser interleave params
setAndGetNodeParameter<int>(hdr_index1_laser_control_, "hdr_index1_laser_control", 1);
setAndGetNodeParameter<int>(hdr_index1_depth_exposure_, "hdr_index1_depth_exposure", 1);
setAndGetNodeParameter<int>(hdr_index1_depth_gain_, "hdr_index1_depth_gain", 16);
setAndGetNodeParameter<int>(hdr_index1_ir_brightness_, "hdr_index1_ir_brightness", 20);
setAndGetNodeParameter<int>(hdr_index1_ir_ae_max_exposure_, "hdr_index1_ir_ae_max_exposure",
2000);
setAndGetNodeParameter<int>(hdr_index0_laser_control_, "hdr_index0_laser_control", 1);
setAndGetNodeParameter<int>(hdr_index0_depth_exposure_, "hdr_index0_depth_exposure", 7500);
setAndGetNodeParameter<int>(hdr_index0_depth_gain_, "hdr_index0_depth_gain", 16);
setAndGetNodeParameter<int>(hdr_index0_ir_brightness_, "hdr_index0_ir_brightness", 60);
setAndGetNodeParameter<int>(hdr_index0_ir_ae_max_exposure_, "hdr_index0_ir_ae_max_exposure",
10000);
RCLCPP_INFO_STREAM(logger_, "hdr_index1_laser_control_ "
<< hdr_index1_laser_control_ << " hdr_index1_depth_exposure_ "
<< hdr_index1_depth_exposure_ << " hdr_index1_depth_gain_ "
<< hdr_index1_depth_gain_ << " hdr_index1_ir_brightness_ "
<< hdr_index1_ir_brightness_ << " hdr_index1_ir_ae_max_exposure_ "
<< hdr_index1_ir_ae_max_exposure_ << "\n");
RCLCPP_INFO_STREAM(logger_, "hdr_index0_laser_control_ "
<< hdr_index0_laser_control_ << " hdr_index0_depth_exposure_ "
<< hdr_index0_depth_exposure_ << " hdr_index0_depth_gain_ "
<< hdr_index0_depth_gain_ << " hdr_index0_ir_brightness_ "
<< hdr_index0_ir_brightness_ << " hdr_index0_ir_ae_max_exposure_ "
<< hdr_index0_ir_ae_max_exposure_ << "\n");
setAndGetNodeParameter<int>(laser_index1_laser_control_, "laser_index1_laser_control", 0);
setAndGetNodeParameter<int>(laser_index1_depth_exposure_, "laser_index1_depth_exposure", 3000);
setAndGetNodeParameter<int>(laser_index1_depth_gain_, "laser_index1_depth_gain", 16);
setAndGetNodeParameter<int>(laser_index1_ir_brightness_, "laser_index1_ir_brightness", 60);
setAndGetNodeParameter<int>(laser_index1_ir_ae_max_exposure_, "laser_index1_ir_ae_max_exposure",
7000);
setAndGetNodeParameter<int>(laser_index0_laser_control_, "laser_index0_laser_control", 1);
setAndGetNodeParameter<int>(laser_index0_depth_exposure_, "laser_index0_depth_exposure", 3000);
setAndGetNodeParameter<int>(laser_index0_depth_gain_, "laser_index0_depth_gain", 16);
setAndGetNodeParameter<int>(laser_index0_ir_brightness_, "laser_index0_ir_brightness", 60);
setAndGetNodeParameter<int>(laser_index0_ir_ae_max_exposure_, "laser_index0_ir_ae_max_exposure",
17000);
RCLCPP_INFO_STREAM(logger_, "laser_index1_laser_control_ "
<< laser_index1_laser_control_ << " laser_index1_depth_exposure_ "
<< laser_index1_depth_exposure_ << " laser_index1_depth_gain_ "
<< laser_index1_depth_gain_ << " laser_index1_ir_brightness_ "
<< laser_index1_ir_brightness_
<< " laser_index1_ir_ae_max_exposure_ "
<< laser_index1_ir_ae_max_exposure_ << "\n");
RCLCPP_INFO_STREAM(logger_, "laser_index0_laser_control_ "
<< laser_index0_laser_control_ << " laser_index0_depth_exposure_ "
<< laser_index0_depth_exposure_ << " laser_index0_depth_gain_ "
<< laser_index0_depth_gain_ << " laser_index0_ir_brightness_ "
<< laser_index0_ir_brightness_
<< " laser_index0_ir_ae_max_exposure_ "
<< laser_index0_ir_ae_max_exposure_ << "\n");
}
void OBCameraNode::setupTopics() {