diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 52efc57ab5beb191ace4f386b0e2b336fc7b96ce..045cce1f099409a2ae75deb375101ba46c0a2067 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -76,9 +76,8 @@ stages: - fi - mkdir -pv build - cd build - - cmake -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON .. + - cmake -DCMAKE_BUILD_TYPE=release -DBUILD_DEMOS=OFF -DBUILD_TESTS=OFF .. - make -j$(nproc) - - ctest -j$(nproc) - make install .install_gnssutils_template: &install_gnssutils_definition @@ -94,7 +93,7 @@ stages: - fi - mkdir -pv build - cd build - - cmake -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON .. + - cmake -DCMAKE_BUILD_TYPE=release-DBUILD_TESTS=ON .. - make -j$(nproc) - ctest -j$(nproc) - make install @@ -103,7 +102,7 @@ stages: - cd $CI_PROJECT_DIR - mkdir -pv build - cd build - - cmake -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON .. + - cmake -DCMAKE_BUILD_TYPE=release -DBUILD_TESTS=ON .. - make -j$(nproc) - ctest -j$(nproc) - make install diff --git a/include/gnss/processor/processor_gnss_fix.h b/include/gnss/processor/processor_gnss_fix.h index 56207a68b143e929159d814589a07fd6ffa947da..0af093f1800b98a6e9b0e8cd0cb48d8ea7d42314 100644 --- a/include/gnss/processor/processor_gnss_fix.h +++ b/include/gnss/processor/processor_gnss_fix.h @@ -153,7 +153,7 @@ class ProcessorGnssFix : public ProcessorBase * * The ProcessorTracker only processes incoming captures (it is not called). */ - void processKeyFrame(FrameBasePtr _keyframe_ptr, const double& _time_tolerance) override {}; + void processKeyFrame(FrameBasePtr _keyframe_ptr) override {}; /** \brief trigger in capture * @@ -165,7 +165,7 @@ class ProcessorGnssFix : public ProcessorBase * * The ProcessorTracker only processes incoming captures, then it returns false. */ - bool triggerInKeyFrame(FrameBasePtr _keyframe_ptr, const double& _time_tolerance) const override {return false;} + bool triggerInKeyFrame(FrameBasePtr _keyframe_ptr) const override {return false;} /** \brief store key frame * diff --git a/include/gnss/processor/processor_gnss_tdcp.h b/include/gnss/processor/processor_gnss_tdcp.h index f3f9072ec2b906c14c2d065194bcc379a2690339..9c040a1e522c8ea767a3bad7f1c465b3997ae0e4 100644 --- a/include/gnss/processor/processor_gnss_tdcp.h +++ b/include/gnss/processor/processor_gnss_tdcp.h @@ -110,7 +110,7 @@ class ProcessorGnssTdcp : public ProcessorBase * * The ProcessorTracker only processes incoming captures (it is not called). */ - void processKeyFrame(FrameBasePtr _keyframe, const double& _time_tolerance) override; + void processKeyFrame(FrameBasePtr _keyframe) override; /** \brief store key frame * @@ -134,7 +134,7 @@ class ProcessorGnssTdcp : public ProcessorBase * * The ProcessorTracker only processes incoming captures, then it returns false. */ - bool triggerInKeyFrame(FrameBasePtr _keyframe, const double& _time_tolerance) const override {return true;}; + bool triggerInKeyFrame(FrameBasePtr _keyframe) const override {return true;}; bool voteForKeyFrame() const override; diff --git a/src/processor/processor_gnss_fix.cpp b/src/processor/processor_gnss_fix.cpp index 9b4b04f785e3ae1cddd4fe48690e3bc8320f2f80..fb104bf26e458ec4c79136b7008a425d9b7e86ec 100644 --- a/src/processor/processor_gnss_fix.cpp +++ b/src/processor/processor_gnss_fix.cpp @@ -93,13 +93,13 @@ void ProcessorGnssFix::processCapture(CaptureBasePtr _capture) auto incoming_feature = FeatureBase::emplace<FeatureGnssFix>(incoming_capture_, incoming_pos_out_); // ALREADY CREATED KF - PackKeyFramePtr KF_pack = buffer_pack_kf_.selectPack( incoming_capture_, params_gnss_->time_tolerance); - if (KF_pack and last_KF_capture_ and KF_pack->key_frame == last_KF_capture_->getFrame()) - KF_pack = nullptr; - if (KF_pack) + FrameBasePtr keyframe = buffer_frame_.select( incoming_capture_->getTimeStamp(), params_gnss_->time_tolerance); + if (keyframe and last_KF_capture_ and keyframe == last_KF_capture_->getFrame()) + keyframe = nullptr; + if (keyframe) { - WOLF_DEBUG("PR ", getName()," - capture ", incoming_capture_->id(), " appended to existing KF " , KF_pack->key_frame->id() , " TS: ", KF_pack->key_frame->getTimeStamp()); - new_frame = KF_pack->key_frame; + WOLF_DEBUG("PR ", getName()," - capture ", incoming_capture_->id(), " appended to existing KF " , keyframe->id() , " TS: ", keyframe->getTimeStamp()); + new_frame = keyframe; } // MAKE KF else if (permittedKeyFrame() && voteForKeyFrame()) @@ -171,7 +171,7 @@ void ProcessorGnssFix::processCapture(CaptureBasePtr _capture) // Notify if KF created if (KF_created) - getProblem()->keyFrameCallback(new_frame, shared_from_this(), params_gnss_->time_tolerance); + getProblem()->keyFrameCallback(new_frame, shared_from_this()); } FactorBasePtr ProcessorGnssFix::emplaceFactor(FeatureBasePtr _ftr) diff --git a/src/processor/processor_gnss_tdcp.cpp b/src/processor/processor_gnss_tdcp.cpp index a9bab653f57f42b58f8cbb8bfe55d3022cda84b0..e19aeed9eb0cabc8ffdb41fd56d9af9a8064ca5f 100644 --- a/src/processor/processor_gnss_tdcp.cpp +++ b/src/processor/processor_gnss_tdcp.cpp @@ -44,7 +44,7 @@ ProcessorGnssTdcp::~ProcessorGnssTdcp() void ProcessorGnssTdcp::processCapture(CaptureBasePtr _capture) { if (std::dynamic_pointer_cast<CaptureGnss>(_capture)) - buffer_capture_.add(_capture->getTimeStamp(), _capture); + buffer_capture_.emplace(_capture->getTimeStamp(), _capture); /* // TODO: keep captures in a buffer and deal with KFpacks @@ -114,7 +114,7 @@ void ProcessorGnssTdcp::processCapture(CaptureBasePtr _capture) */ } -void ProcessorGnssTdcp::processKeyFrame(FrameBasePtr _keyframe, const double& _time_tolerance) +void ProcessorGnssTdcp::processKeyFrame(FrameBasePtr _keyframe) { WOLF_INFO("ProcessorGnssTdcp::processKeyFrame()"); diff --git a/test/gtest_factor_gnss_fix_2d.cpp b/test/gtest_factor_gnss_fix_2d.cpp index a88b67bba5682ed1ed5a7fa5e3ad4e390abb3962..98fa09cc5ac8d773fef816e4b06df81e11f57273 100644 --- a/test/gtest_factor_gnss_fix_2d.cpp +++ b/test/gtest_factor_gnss_fix_2d.cpp @@ -135,7 +135,7 @@ TEST(FactorGnssFix2dTest, configure_tree) // Emplace a frame (FIXED) Vector3d frame_pose = (Vector3d() << t_map_base(0), t_map_base(1), o_map_base(0)).finished(); frame_ptr = problem_ptr->emplaceFrame( TimeStamp(0), frame_pose); - problem_ptr->keyFrameCallback(frame_ptr, nullptr, 1.0); + problem_ptr->keyFrameCallback(frame_ptr, nullptr); // Create & process GNSS Fix capture CaptureGnssFixPtr cap_gnss_ptr = std::make_shared<CaptureGnssFix>(TimeStamp(0), gnss_sensor_ptr, t_ecef_antena, 1e-3*Matrix3d::Identity());