Skip to content

Commit fc13a0e

Browse files
committed
Refactor positional tracking logging and error handling for improved clarity
1 parent 6e61a45 commit fc13a0e

File tree

1 file changed

+74
-67
lines changed

1 file changed

+74
-67
lines changed

zed_components/src/zed_camera/src/zed_camera_component_main.cpp

Lines changed: 74 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -3715,88 +3715,94 @@ bool ZedCamera::startPosTracking()
37153715
#else
37163716
if (mDepthDisabled) {
37173717
#endif
3718-
RCLCPP_WARN(get_logger(),
3719-
"Cannot start Positional Tracking if Depth processing is "
3720-
"disabled (except for GEN_3 mode).");
3721-
return false;
3722-
}
3718+
RCLCPP_WARN(
3719+
get_logger(),
3720+
"Cannot start Positional Tracking if Depth processing is "
3721+
"disabled (except for GEN_3 mode).");
3722+
return false;
3723+
}
37233724

3724-
if (mZed && mZed->isPositionalTrackingEnabled()) {
3725-
if (!mAreaMemoryFilePath.empty() && mSaveAreaMemoryOnClosing) {
3726-
mZed->disablePositionalTracking(mAreaMemoryFilePath.c_str());
3727-
RCLCPP_INFO(get_logger(),
3728-
"Area memory updated before restarting the Positional "
3729-
"Tracking module.");
3730-
} else {
3731-
mZed->disablePositionalTracking();
3732-
}
3725+
if (mZed && mZed->isPositionalTrackingEnabled()) {
3726+
if (!mAreaMemoryFilePath.empty() && mSaveAreaMemoryOnClosing) {
3727+
mZed->disablePositionalTracking(mAreaMemoryFilePath.c_str());
3728+
RCLCPP_INFO(
3729+
get_logger(),
3730+
"Area memory updated before restarting the Positional "
3731+
"Tracking module.");
3732+
} else {
3733+
mZed->disablePositionalTracking();
37333734
}
3735+
}
37343736

3735-
RCLCPP_INFO(get_logger(), "=== Starting Positional Tracking ===");
3736-
3737-
RCLCPP_INFO(get_logger(), " * Waiting for valid static transformations...");
3737+
RCLCPP_INFO(get_logger(), "=== Starting Positional Tracking ===");
37383738

3739-
bool transformOk = false;
3740-
double elapsed = 0.0;
3741-
mPosTrackingReady = false;
3742-
mGnssInitGood = false;
3739+
RCLCPP_INFO(get_logger(), " * Waiting for valid static transformations...");
37433740

3744-
// auto start = std::chrono::high_resolution_clock::now();
3741+
bool transformOk = false;
3742+
double elapsed = 0.0;
3743+
mPosTrackingReady = false;
3744+
mGnssInitGood = false;
37453745

3746-
sl_tools::StopWatch stopWatch(get_clock());
3746+
// auto start = std::chrono::high_resolution_clock::now();
37473747

3748-
do {
3749-
transformOk = // true;
3750-
setPose(mInitialBasePose[0], mInitialBasePose[1], mInitialBasePose[2],
3751-
mInitialBasePose[3], mInitialBasePose[4],
3752-
mInitialBasePose[5]);
3748+
sl_tools::StopWatch stopWatch(get_clock());
37533749

3754-
elapsed = stopWatch.toc();
3750+
do {
3751+
transformOk = // true;
3752+
setPose(
3753+
mInitialBasePose[0], mInitialBasePose[1], mInitialBasePose[2],
3754+
mInitialBasePose[3], mInitialBasePose[4],
3755+
mInitialBasePose[5]);
37553756

3756-
rclcpp::sleep_for(1ms);
3757+
elapsed = stopWatch.toc();
37573758

3758-
if (elapsed > 10000) {
3759-
RCLCPP_WARN(get_logger(),
3760-
" !!! Failed to get static transforms. Is the "
3761-
"'ROBOT STATE PUBLISHER' node correctly "
3762-
"working? ");
3763-
break;
3764-
}
3765-
} while (transformOk == false);
3759+
rclcpp::sleep_for(1ms);
37663760

3767-
if (transformOk) {
3768-
DEBUG_STREAM_PT("Time required to get valid static transforms: "
3769-
<< elapsed / 1000. << " sec");
3761+
if (elapsed > 10000) {
3762+
RCLCPP_WARN(
3763+
get_logger(),
3764+
" !!! Failed to get static transforms. Is the "
3765+
"'ROBOT STATE PUBLISHER' node correctly "
3766+
"working? ");
3767+
break;
37703768
}
3769+
} while (transformOk == false);
37713770

3772-
RCLCPP_INFO(get_logger(),
3773-
"Initial ZED left camera pose (ZED pos. tracking): ");
3774-
RCLCPP_INFO(
3775-
get_logger(), " * T: [%g,%g,%g]", mInitialPoseSl.getTranslation().x,
3776-
mInitialPoseSl.getTranslation().y, mInitialPoseSl.getTranslation().z);
3777-
RCLCPP_INFO(
3778-
get_logger(), " * Q: [%g,%g,%g,%g]", mInitialPoseSl.getOrientation().ox,
3779-
mInitialPoseSl.getOrientation().oy, mInitialPoseSl.getOrientation().oz,
3780-
mInitialPoseSl.getOrientation().ow);
3771+
if (transformOk) {
3772+
DEBUG_STREAM_PT(
3773+
"Time required to get valid static transforms: "
3774+
<< elapsed / 1000. << " sec");
3775+
}
37813776

3782-
// Tracking parameters
3783-
sl::PositionalTrackingParameters ptParams;
3777+
RCLCPP_INFO(
3778+
get_logger(),
3779+
"Initial ZED left camera pose (ZED pos. tracking): ");
3780+
RCLCPP_INFO(
3781+
get_logger(), " * T: [%g,%g,%g]", mInitialPoseSl.getTranslation().x,
3782+
mInitialPoseSl.getTranslation().y, mInitialPoseSl.getTranslation().z);
3783+
RCLCPP_INFO(
3784+
get_logger(), " * Q: [%g,%g,%g,%g]", mInitialPoseSl.getOrientation().ox,
3785+
mInitialPoseSl.getOrientation().oy, mInitialPoseSl.getOrientation().oz,
3786+
mInitialPoseSl.getOrientation().ow);
3787+
3788+
// Tracking parameters
3789+
sl::PositionalTrackingParameters ptParams;
37843790

3785-
mPoseSmoothing = false; // Always false. Pose Smoothing is to be enabled
3791+
mPoseSmoothing = false; // Always false. Pose Smoothing is to be enabled
37863792
// only for VR/AR applications
37873793

3788-
ptParams.enable_pose_smoothing = mPoseSmoothing;
3789-
ptParams.enable_area_memory = mAreaMemory;
3790-
ptParams.area_file_path =
3791-
(mAreaFileExists ? mAreaMemoryFilePath.c_str() : "");
3792-
ptParams.enable_localization_only = mLocalizationOnly;
3793-
ptParams.enable_imu_fusion = mImuFusion;
3794-
ptParams.initial_world_transform = mInitialPoseSl;
3795-
ptParams.set_floor_as_origin = mFloorAlignment;
3796-
ptParams.depth_min_range = mPosTrackDepthMinRange;
3797-
ptParams.set_as_static = mSetAsStatic;
3798-
ptParams.set_gravity_as_origin = mSetGravityAsOrigin;
3799-
ptParams.mode = mPosTrkMode;
3794+
ptParams.enable_pose_smoothing = mPoseSmoothing;
3795+
ptParams.enable_area_memory = mAreaMemory;
3796+
ptParams.area_file_path =
3797+
(mAreaFileExists ? mAreaMemoryFilePath.c_str() : "");
3798+
ptParams.enable_localization_only = mLocalizationOnly;
3799+
ptParams.enable_imu_fusion = mImuFusion;
3800+
ptParams.initial_world_transform = mInitialPoseSl;
3801+
ptParams.set_floor_as_origin = mFloorAlignment;
3802+
ptParams.depth_min_range = mPosTrackDepthMinRange;
3803+
ptParams.set_as_static = mSetAsStatic;
3804+
ptParams.set_gravity_as_origin = mSetGravityAsOrigin;
3805+
ptParams.mode = mPosTrkMode;
38003806

38013807
#if (ZED_SDK_MAJOR_VERSION * 10 + ZED_SDK_MINOR_VERSION) >= 51
38023808
if (mPosTrkMode == sl::POSITIONAL_TRACKING_MODE::GEN_3) {
@@ -8498,8 +8504,9 @@ void ZedCamera::callback_updateDiagnostic(
84988504
#else
84998505
if (!mDepthDisabled) {
85008506
#endif
8501-
stat.addf("Positional Tracking mode", "%s",
8502-
sl::toString(mPosTrkMode).c_str());
8507+
stat.addf(
8508+
"Positional Tracking mode", "%s",
8509+
sl::toString(mPosTrkMode).c_str());
85038510

85048511
if (mPosTrackingStarted) {
85058512
stat.addf(

0 commit comments

Comments
 (0)