@@ -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