Monocular, Stereo, and RGBD Visual SLAM System#4101
Open
QueenofUSSR wants to merge 22 commits into
Open
Conversation
5 bug fixes verified by ablation experiments (EuRoC MH01): 1. set_enable_backend(false) now propagates to mapper_->set_enable_local_BA(false) - Previously only set a flag but local BA ran unconditionally 2. Added enable_local_BA_ flag and skip guard in mapping_module::mapping_with_new_keyframe() 3. Fixed VO default values: backend_enabled_ and loop_closure_enabled_ default to true - Was inconsistent with system class (both true there) 4. Removed dead code should_skip_backend() and should_skip_loop_closure() - Declared/defined but never called anywhere 5. set_ba_window_size() now propagates to mapper_->set_ba_window_size() Results after fix (vs before): - Pure_VO tracking: 42.6% (was 30.5%) - local BA correctly disabled now - Full_SLAM tracking: 99.73% (was 99.54%) - consistent with local version - ATE RMSE matches local version within stochastic variance
…le copyright notice
- Rewrite slam.hpp: English Doxygen docs, @name groups, pure virtual getFeatureDetector()/getMatcher(), remove getCamera() and protected members, add CV_EXPORTS_W_SIMPLE to VOConfig, use OPENCV_SLAM_HPP guard - Add impl overrides in visual_odometry_impl for new pure virtual getters, add private config_ member (moved from base) - Replace 5 TODO markers with FIXME/NOTE across keyframe.cpp, relocalizer.cpp, projection_factor.hpp, local_bundle_adjuster_gtsam.cpp - Add 14 unit tests (test_slam.cpp, test_precomp.hpp, test_main.cpp) - Rewrite test/CMakeLists.txt to OpenCV standard (ocv_add_accuracy_tests) - Add ocv_add_accuracy_tests() to module CMakeLists.txt
- loop_detector: fix premature return (return false -> continue) - relocalizer: set ref_keyfrm_ after successful relocation - projection_factor.hpp: add missing g_log_tag definition - local_bundle_adjuster_gtsam.cpp: - Use chi-square threshold (5.991) instead of huber_k for outlier rejection - Implement second-phase optimization (outlier rejection + re-optimization) - Fix log message using wrong landmark id
- yaml-cpp → cv::FileStorage + cv::FileNode (config.hpp/cpp, util/yaml.hpp, 30+ files) - OpenMP → cv::parallel_for_ (orb_extractor.cpp, mapping_module.cpp, stereo.cpp) - msgpack binary → JSON text format (map_database_io_msgpack.cpp) - Removed cmake/FindYamlCpp.cmake, USE_OPENMP block from CMakeLists.txt - Added YAML pre-processor for cv::FileStorage compatibility - Fixed samples to create output directory before saving - Fixed missing includes (graph_node.cpp, orb_extractor.hpp)
- Move samples from samples/cpp/ to samples/ - Rename samples to follow OpenCV naming convention: example_slam_<name>.cpp - Move testdata from testdata/ to samples/data/ - Update INSTALL.md with BUILD_EXAMPLES=ON instruction - Update RUNNING_EXAMPLES.md with new paths and binary names
- Changed find_package(SQLite3 REQUIRED) -> QUIET - Added USE_SQLITE3 compile definition and CMake source filtering - Guarded #include <sqlite3.h> and sqlite3 method decls/impls across all data classes (keyframe, landmark, marker, map_database, camera_database) and I/O factory - Module builds and runs with or without SQLite3 - JSON map I/O backend always available as fallback
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
Patch to opencv_extra has the same branch name.
OpenCV VSLAM Module
Monocular, stereo, and RGBD visual SLAM system for OpenCV.
Features
Quick Start
Examples
See
samples/cpp/directory for complete examples:full_slam.cpp- Complete SLAM pipelinelocalization_mode.cpp- Localization with pre-built mapmap_save_load.cpp- Map save/load demonstrationBuild
cd opencv_contrib_slam/modules/slam/build cmake -DBUILD_SAMPLES=ON .. make -j4Documentation
License
BSD-2-Clause license
Based on stella_vslam (BSD-2-Clause)