mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-09-12 19:20:20 +08:00
Update the device preset parameters for the 435Le and Gemini2.
This commit is contained in:
@@ -481,6 +481,8 @@ class OBCameraNode {
|
||||
static bool isGemini435LePID(uint32_t pid);
|
||||
static bool isPublishMetaData(uint32_t pid);
|
||||
|
||||
static bool isDepthWorkModeDevices(uint32_t pid);
|
||||
|
||||
void setupDepthPostProcessFilter();
|
||||
void setupColorPostProcessFilter();
|
||||
void setupRightIrPostProcessFilter();
|
||||
|
||||
@@ -114,7 +114,7 @@ def generate_launch_description():
|
||||
# Unbinned Sparse Default
|
||||
# Binned Sparse Default
|
||||
# Obstacle Avoidance
|
||||
DeclareLaunchArgument("depth_work_mode", default_value=""),
|
||||
DeclareLaunchArgument("device_preset", default_value="Unbinned Dense Default"),
|
||||
DeclareLaunchArgument("sync_mode", default_value="standalone"),
|
||||
DeclareLaunchArgument("depth_delay_us", default_value="0"),
|
||||
DeclareLaunchArgument("color_delay_us", default_value="0"),
|
||||
|
||||
@@ -233,7 +233,7 @@ def generate_launch_description():
|
||||
DeclareLaunchArgument('diagnostic_period', default_value='1.0'), # seconds
|
||||
DeclareLaunchArgument('enable_laser', default_value='true'),
|
||||
DeclareLaunchArgument('depth_precision', default_value=''),
|
||||
DeclareLaunchArgument('depth_work_mode', default_value='AMR Perception'),
|
||||
DeclareLaunchArgument('device_preset', default_value='AMR Perception'),
|
||||
DeclareLaunchArgument('preset_resolution_config', default_value='1280, 800, 1, 1'),
|
||||
DeclareLaunchArgument('retry_on_usb3_detection_failure', default_value='false'),
|
||||
DeclareLaunchArgument('laser_energy_level', default_value='-1'),
|
||||
|
||||
@@ -438,7 +438,24 @@ void OBCameraNode::setupDevices() {
|
||||
RCLCPP_INFO_STREAM(logger_, "depthModeList[" << i << "]: " << (*depthModeList)[i].name);
|
||||
}
|
||||
TRY_EXECUTE_BLOCK(device_->switchDepthWorkMode(depth_work_mode_.c_str()));
|
||||
RCLCPP_INFO_STREAM(logger_, "Set depth work mode: " << depth_work_mode_);
|
||||
RCLCPP_INFO_STREAM(logger_, "Set device preset: " << depth_work_mode_);
|
||||
} else if (!device_preset_.empty()) {
|
||||
try {
|
||||
RCLCPP_INFO_STREAM(logger_, "Available presets:");
|
||||
auto preset_list = device_->getAvailablePresetList();
|
||||
for (uint32_t i = 0; i < preset_list->getCount(); i++) {
|
||||
RCLCPP_INFO_STREAM(logger_, "Preset " << i << ": " << preset_list->getName(i));
|
||||
}
|
||||
RCLCPP_INFO_STREAM(logger_, "Load device preset: " << device_preset_);
|
||||
TRY_EXECUTE_BLOCK(device_->loadPreset(device_preset_.c_str()));
|
||||
RCLCPP_INFO_STREAM(logger_, "Device preset " << device_->getCurrentPresetName() << " loaded");
|
||||
} catch (const ob::Error &e) {
|
||||
RCLCPP_ERROR_STREAM(logger_, "Failed to load device preset: " << e.getMessage());
|
||||
} catch (const std::exception &e) {
|
||||
RCLCPP_ERROR_STREAM(logger_, "Failed to load device preset: " << e.what());
|
||||
} catch (...) {
|
||||
RCLCPP_ERROR_STREAM(logger_, "Failed to load device preset");
|
||||
}
|
||||
}
|
||||
if (!sync_mode_str_.empty()) {
|
||||
auto sync_config = device_->getMultiDeviceSyncConfig();
|
||||
@@ -2033,7 +2050,6 @@ void OBCameraNode::getParameters() {
|
||||
setAndGetNodeParameter<bool>(enable_left_ir_sequence_id_filter_,
|
||||
"enable_left_ir_sequence_id_filter", false);
|
||||
setAndGetNodeParameter<int>(left_ir_sequence_id_filter_id_, "left_ir_sequence_id_filter_id", -1);
|
||||
setAndGetNodeParameter<std::string>(depth_work_mode_, "depth_work_mode", "");
|
||||
setAndGetNodeParameter<std::string>(preset_resolution_config_, "preset_resolution_config", "");
|
||||
setAndGetNodeParameter<std::string>(sync_mode_str_, "sync_mode", "");
|
||||
setAndGetNodeParameter<int>(depth_delay_us_, "depth_delay_us", 0);
|
||||
@@ -2058,10 +2074,11 @@ void OBCameraNode::getParameters() {
|
||||
setAndGetNodeParameter<bool>(ordered_pc_, "ordered_pc", false);
|
||||
setAndGetNodeParameter<int>(max_save_images_count_, "max_save_images_count", 10);
|
||||
setAndGetNodeParameter<bool>(enable_depth_scale_, "enable_depth_scale", true);
|
||||
setAndGetNodeParameter<int>(depth_downscale_, "depth_downscale", 1);
|
||||
setAndGetNodeParameter<int>(left_ir_downscale_, "left_ir_downscale", 1);
|
||||
setAndGetNodeParameter<int>(right_ir_downscale_, "right_ir_downscale", 1);
|
||||
setAndGetNodeParameter<std::string>(device_preset_, "device_preset", "");
|
||||
if (isDepthWorkModeDevices(device_->getDeviceInfo()->getPid())) {
|
||||
setAndGetNodeParameter<std::string>(depth_work_mode_, "device_preset", "");
|
||||
} else {
|
||||
setAndGetNodeParameter<std::string>(device_preset_, "device_preset", "");
|
||||
}
|
||||
setAndGetNodeParameter<bool>(enable_decimation_filter_, "enable_decimation_filter", false);
|
||||
setAndGetNodeParameter<bool>(enable_hdr_merge_, "enable_hdr_merge", false);
|
||||
setAndGetNodeParameter<bool>(enable_sequence_id_filter_, "enable_sequence_id_filter", false);
|
||||
@@ -4220,6 +4237,10 @@ bool OBCameraNode::isPublishMetaData(uint32_t pid) {
|
||||
return isGemini335PID(pid) || isGemini435LePID(pid) || pid == GEMINI_305_PID;
|
||||
}
|
||||
|
||||
bool OBCameraNode::isDepthWorkModeDevices(uint32_t pid) {
|
||||
return pid == GEMINI_435Le_PID || pid == GEMINI2_PID;
|
||||
}
|
||||
|
||||
orbbec_camera_msgs::msg::IMUInfo OBCameraNode::createIMUInfo(
|
||||
const stream_index_pair &stream_index) {
|
||||
orbbec_camera_msgs::msg::IMUInfo imu_info;
|
||||
|
||||
Reference in New Issue
Block a user