* Sparse Bayes
* updated perf test
* improved tests with real data
* Making sparse works in incremental mapping
* bookkeeping optimization
* small opt
* refactoring
* splitting dense and sparse in different classes to make the code more lisible
* cleanup comments
* fixing CI
* Making all Bayes tests testing both dense and sparse
* Added multisession_3it integration test (test memory management, multisession and dense/sparse bayes in that settings)
* optimized sparse when transfer/retrieval happens (was slower than dense for that case)
* Testing retrieval param variants
* Updated multisession_3it integration tests to compare loop closure hypotheses
* bump version
* Fixed ui sum of prediction
* adding g2o gtsam to linux ci
* cleanup
* added debug crash log for ci
* Simplified Bayes/SparsePrediction description
* Dont show too dense for sparse on small maps (e.g., when we just started a new map)
* fixing amd64v3 issue with gtsam on ci ubuntu 26
* Dot not auto switch to dense based on map size.
* updating test range
* added coverage tests
* Adressing coverage
* ignore one line in coverage for purpose
* Add FlannIndex abstract interface and implement NanoFlannIndex subclass
* Refactored: made NanoFlann a new NN type instead of inheriting FlannIndex. Added tests. Vendoring nanoflann.h directly in the repo. RegistrationVis now use NANOFLANN_INDEX_KDTREE_SINGLE (instead of FLANN_INDEX_KDTREE_SINGLE) flann index for 2d points matching.
* cleanup comments, added FlannIndex doxygen
* Fixing windows tests
* updating flaky test
* Simplified interface, added flann kdtree single approach selectable by parameters.
* RegVis: symmetry of nanoflann for two branches of guess feature matching
* cv::BFMatcher baseline
* Small cmake optimization FLANN_KDTREE_MEM_OPT only defined for FlannIndex
* Refactored where FLANN_KDTREE_MEM_OPT is defined
* fixed file name already exist
* cleanup
* fixup build
---------
Co-authored-by: matlabbe <matlabbe@gmail.com>
* OptimizerG2O: track BA outliers per observation
Track rejected BA projections by word and pose, preserving a landmark's optimized estimate whenever at least one observation remains active. Add a deterministic g2o regression and focused Linux CTest coverage.
* Changed some error logs to warning
---------
Co-authored-by: happyman <xiaochengwei@zkzcrobot.com>
Co-authored-by: matlabbe <matlabbe@gmail.com>
* CI coverage: adding g2o, gtsam, ceres and libpointmatcher. Also fetch test data for integration tests.
* ld
* Increasing ci test timeout for coverage
* Fixed tests when vertigo is not there
* verbose tests
* updating flaky test
* faster coverage by extending unit tests and disable integration test (only for coverage report)
* improving coverage of unit tests in comparison to integrations tests
* fixing not covered new lines
* Fix possible staled flann index
* fixed compatible crc flann index after repair and reload
* Added tests
* test coverage
* testing another possible branch
* removed doxygen tag version not opulated yet
* updated codedev to ignore test code
* Disabled all mac intel ci flaky builds
* added doc and tests for util2d.h
* updated cmake-ros ci
* Added util3d.h doc and tests
* util3d_transforms.h: Added doc and tests
* util3d_filtering.h: started doc and test
* util3d_filtering.h: more tests and doc
* Added more doc/tests
* finished util3d_filtering doc and tests
* added test for util2d::depthBleedingFiltering
* Added util3d_registration tests
* Added util3d_features.h doc/tests
* added doc/tests for util3d_correspondences.h
* added doc/gtest for util3d_mapping.h (missing hpp functions)
* finished testing util3d_mapping.hpp
* Added util3d_motion_estimation.h tests (2D->3D done)
* finished util3d_motion_estimation.h tests
* minimal util3d_surface.h
* Added Transform and VisualWord tests
* Added doc for CameraModel and StereoCameraModel
* Added more logs in ros ci
* Passing tests on fical
* improved all devcontainer
* added devcontainer kilted, fixed source setup.bash, removed ldconfig in ros-cmake workflow
* cleanup
* source ros
* Added utilite tests
* Added testing to appveyor, github actions cancellable on re-commit on same branch
* appveyor testing without all targets
* appveyor: specifying ALL_BUILD target
* Fixed Util2dTest.NMSImageBoundsRespected test
* Fixing PCL Indices error on old pcl
* Added VWDictionary tests and doc. Fixed LSH not working (fix from https://github.com/flann-lib/flann/pull/472
* fixing some appveyor CI errors, added test to check dictionary serialization against all type
* Added StereoDense, StereoBM and StereoSGBM doc and tests
* Added Stereo tests
* Added CameraModel and StereoCameraModel tests
* Added doc and test for Statistics
* Added doc/tests for Signature
* Added doc/test for SensorEvent, added doc for SensorCaptureInfo
* Added doc to SensorData
* Added SensorData tests
* Added SensorCapture and SensorCaptureThread doc and tests
* fixed sensordata test
* updated SSC test and doc
* Added doc and tests for BayesFilter class
* Enabled testing on mac, updated windows testing like on linux
* added test_link
* fixed unresolved on windows
* fixed ThreadHandle error on macos ci
* Added GPS and GeodeticCoords tests
* Added tests for compression
* Added Odometry tests (base class only)
* Added DBDriver tests
* Added coverage report
* uniformized test names
* fixing concurancy and coverage ci
* dont built tools, examples and app for coverage build
* fixed report tool rebuilt without qt compilation error
* updated coverage option
* updated coverage config
* added doc CI job
* fixing windows and mac ci errors
* Added DBDriverSqlite3 tests
* Added IMU tests
* Added Graph tests
* fixing flaky macos test
* Added IMUThread and IMUFilter tests
* Added Landmarks tests
* Added LASWriter tests
* fixing seed flaky test
* fixing flaky macos timing tests
* Added LocalGrid tests
* Added LocalGridMaker tests
* fixing ci errors
* Added GlobalMap tests
* Added doc for EnvSensor
* Added Features2D tests
* Added Registration tests
* Added RegistrationVis tests
* Added doc for Rtabmap and Memory classes
* Added Memory and Rtabmap tests
* making some tests less flaky
* lcov 1.14 support
* updated compatible tool arguments
* Added integration tests (RGB-D, Stereo, Lidar2d, Lidar3d)
* More octomap checks
* Refactored how/when python interpretor is created to simplify library usage
* Added python tests
* fixed some flaky tests
* suppressed some third party related warnings
* fixed ceres tests
* more flaky fixes
* Fixing tests without libpointmatcher
* Added RANSAC rejection filter to PCL ICP
* fixing multi platform flakiness
* Added test to detect regression
* Fixing windows pcl link error
* fixed some macos flakiness
* bigger 2D2D registration error on opencv 4.6.0
* flakiness
* fixing flaky tests on windows and mac
* flaky thread test on slow mac VM
* windows slow test
* fixing more ci erros
* fxing temp dir on windows
* Added Optimizer tests and discovered some bugs (fixed)
* fixing flaky tests in mac and windows
* Added Optimizer doc
* Added GTSAM BA, updated Ceres to use g2o ba parameters. Renamed g2o's ba related parameters to Optimizer group and used by both gtsam and ceres.
* fixing build without gtsam
* fixing home dir
* fixing python ci isssues
* Added multicam ba tests
* Added Ceres multicam BA support
* Aligned BundleAdjustment parameters with Optimizer/Strategy to avoid confusion in the code
* Added BA integration test
* Added robust graph optimization integration test
* Added loop3it test
* Added stereo20Hz test
* Added smartfactor gtsam
* Fixed bugged check and warn if python didn't return any descriptors
* Fixing gtsam version build issues
* fixing tilt on windows ci
* loosing ceres integration test for ci
* mac ci flakiness
* updating missing param in gui
* updating test bound for mac
* added appearance-based tests, set min gftt quality to quality level
* testing more stuff
* improving features2d tests
* ci flakiness
* fixing flaky ci
* ci fixes
* flaky fixes
* Added RegistrationIcp tests
* Added icp integration test with real-worl corridor like env
* intermediate nodes
* fixing enum
* Updated test to catch #1714
* Fixed 2d corridor failing on pcl
* flaky pnp test
* flaky brisk test
* Set rtabmap_integration test as long
* updating loop closure test
* flaky ci tests
* TEsting roundtrip g2o/toro save/load
* loosing test bound
* fixed cuda capable checks
* flaky tests
* Debugging test hanging
* more debugging stuff
* updating limit
* windows: disabled cuda on ci to avoid incompatible driver issue. Fixing a bad test mem allocation
* trying fixing cuda hanging issue
* fixing ci flakyness
* flaky tests
* Updated BOW flaky tests by checking min precision/recall instead of recall@100precision. Fixed signature test
* CameraModel::load() test initRectificationMap param
* test dbdriver load dictionary idsOnly
* Memory: test keepLinkedInDb param
* added dummyDictionary tests
* test intermediate nodes count
* Added MarkerDetector tests
* reverted breaking change of UMutex and USemaphore
* Features2d: fixed compiltion warnings with clang about override
* clang warnings
* fixing test build with pcl 1.8
* g2o and gtsam build errors on android
* opencv5 test fixes
* disabled testing for ios and android builds
* normalized endline characters for easier diff
* added LF CRLF rule
* bump 0.23.10. fixing doc version
* Publish rtabmap website doc from ci
* fixing MSCVC build error
* macos icp flaky test
* fixing ceres macos test bound
* ficing more flaky tests
* fixing opencv5 related test errors. Also fixed an actual bug in ENU_WGS84ToGeocentric_WGS84()
* added comment about mrpt change
* removed rosdoc2 (will add it for rtabmap_ros later)
* fixing website style
* updated download links
* locally deployable website with api
* sweep doxygen issues
* improved/revised doxygen main pages
* removed examples empty page
* Updated doxygen style
* more concise doxygen groups
* added api link on main readme
* fixing utilite test error
* fixing CommonFilteringGroundNormalsUp test
* updated precisionRecall test bounds for Freak and brief descriptors
* fixing scale check in ba tests
* disabled tests on windows cuda build (missing dlls amd runner cannot test cuda anyway)
* ceres: missing suitesparse dep in windows ci
* adjusting recall thr for fast/freak
* ficing more flaky tests
* fixing flaky tests
* disabled coverage in ros ci
* Enable integration tests for ros ci jobs
* loosing up some threshold for failing tests
* trigger cache
* fixing test data in ros ci. Updated flaky test for mac
* slaking some test limit
* Fixed rtabmap-detectMoreLoopClosures inverted output value
* loosing up sift recall on mac
* optimizer re-ordered distribution for reproducible results (mac g2o)
* macos dump test crash log
* combining all tests to save time on shared library reload. Also fixed Logs with missing arguments.
* Added ENABLE_FORMAT_ERRORS cmake option
* do test only one time
* fixed all format warnings
* format security android build errors
* less verbose tests
* updated ImuUThread test
* fixed a log
* Fixed libpointmatcher 2d normals eigen issue
* Fixing libpointmatcher conversion issues
* fixing libpointmatcher test on windows ci
* cleanup comments, relax some test thr
* disabled sequoia-intel ci build (too flaky, would need extensive testing directly on that machine)
* Multi component view implemented except for rotations. Rotations can cause segfaults.
* Implemented: handling rotations and applied rotations on optimized poses. Addition of a notion of main component (for saves in db) abd a node selection tool.
* New feature: merge component using selected nodes
* Refactored with suggestions.
* Fixing QSet error on older Qt versions
---------
Co-authored-by: matlabbe <matlabbe@gmail.com>
* OpenCV 5 support
* RTABMapConfig.cmake, guard from including stereoRectifyFisheye.h
* unified opencv components at the same place
* fixing android build
* Confirmed stereo calibration with fisheye works. Fix camera start/top progress dialog not drawn. Opencv >=4.7 using new opencv's ArucoDetector class.
* pinning opencv for downstream apps
* Avoid changing object/image points between fisheye calibration
* Fixed stereo calib diverging when recalibrating same data
* removed not needed opencv c api
* fixing depthai build on opencv5
* bumped version
* Adding ci opencv5 with homebrew
* fixed ci script
* Fixed OptimizerCeres build with opencv5
* Reduce graph: remove orphan nodes from WM after reduction
* fixed eror
* ignore ids< 0
* add warning and cleanup only when option is used
* updated feedback
* Abort --sync_wm_and_opt_graph if a lot more WM nodes have to be transferred.
* typo
* refactored... completly
* fixed optimized graph cleared
* updated option description
* updated comment
* Added dummy dictionary function to speedup initialization when we dont need the dictionary fully loaded in memory.
* Fixed nodes weight not modified in db when deleted
* Removed AutoUpdate parameter, not needed
* Fixed dummy dictionary usage for detectMoreLoopClosures. Added checks to disable graph reduction when intermediate nodes are detected.
* updated log
* Reprocess: added option -abort_disconnected_sessions (to make reprocess returns error if not all new session
s are connected at the end)
* comments
* updated log
* added warnings when option to abort is not enabled
* Allow ignoring intermediate nodes when calculating WM size
* Fix the retrieval logic to avoid unnecessary code execution
* Making getWorkingMemSize(true) complexity O(1)
* Updated statistics to show STM size, WM size, immunized nodes without intermediate nodes count. Added two new statistics to track number of intermediate nodes in STM and WM.
* Correct the condition for counting intermediate nodes
* Restore the logic of retrieval 2/3 to avoid affecting updateAge
---------
Co-authored-by: matlabbe <matlabbe@gmail.com>
* Windows CI: make vcpkg download compatible with draft release
* forcing nvdia driver dll to be ignored in fixup_bundle
* disabling opencv cudec and python
* disabling rtabmap-console --version on cuda build
* Added assert when bad imu data is provided. Added checks when zed sdk is returning nan imu data.
* Updated zed sdk5 resolution and quality
* Updated zed sdk5 resolution and quality
* Fixing parameters reloaded when testing camera. Also fixed app freezing when closing Preferences dialog after using test camera dialog
* cleanup and debug logs
* Added dialogs when starting/stopping sensors/detection. Fixed nullptr bug on MainWindow::handleEvents
* renamed
* found a way to expose ZED model downloads
* Updated default config path on Windows
* Fixed extra endline in file logging (windows)
* Fixed camera local transform when used with lidar and odomSensor
* CI(macos): build g2o from source with OpenMP (libomp include/link fix)
* Mac: added ceres dep, fixed omp not found by cmake
* Mac: bundle orbbec extensions
* stripping rpath of orbbec's extensions
* cleanup
* Realsense2 error as error (not warning)
* Fixed config ownership changed to root when sarting in sudo. LidarVLP16: fixed crash on Mac by reimplementing our own socket threading
* LidarVLP16: own socket implementation only for Mac (linux and windows use original PCL's reader)
* Windows CI: more sensor drivers + Windows/macOS bundle scripts
* added opengv to mac build
* windows bundle fixes
* zed extra neural ddl in separate package
* OpenGV macos eigen version error
* opengv macos build issues
* CameraImages: support reading multicamera image and calibration files
* Added multi camera support for CameraStereoImages. Refactored single calib per frame option.
* refactored
* refactor
* bump 0.23.8
* CI Ubuntu 26.04 / ROS2 Lyrical and Rolling
* Added resolute docker
* added skip keys
* rolling
* Disabling rolling
* Updated ci config
* Enabling docker build (no push) on PR
* cancel pr jobs on recommit
* Added resolute to docker ci matrix
* OpenGV min cmake version
* bump package.xml version
* enabling rolling
* refactored cmake ros ci jobs
* Fixing empty descriptors on bad signatures (#1714), (bug from #1698)
* PyDetector: dont assert (just error) if descriptors/keypoints don't match. SuperPoint approaches: try re-initializing superpoint detection on the provided image if descriptors could not be fetched the first time (auto recover).
* PyDetector: adding check if returned descriptors are empty (addressing #1714)
* Throwing error instead of asserting if keypoints and descriptors mistmatch
* ading error instead of warning
* lets do warnings instead (could be possible that images are blanck)
* Adding support for AprilTag v3 library
* New parameter: Marker/Strategy (default opencv-aruco as before). Optimized multicameras marker detection (do only once with stitched image)
* Exposed all AprilTag parameters. Sharing Marker/Dictionary between opencv and apriltag implementation. Added new Marker/Lengths parameter.
* Support AprilTAg library not built with aruco
* cleanup
* Added marker range support
* Make apriltag detection in same orientation than opencv
* fixed shenanigans when rendering markers with multi cameras
* Don't update odom cache (localization mode) when not moving (detecting loop/landmark or not)
* fixed some quirks (camera viewer + tag working)
* Setting quad decimate to 1 by default
* typo
* Implemented OptimizerG2O::loadGraph()
* added apriltag's aruco support info in the cmake config summary
* fixed warning
* fixed isam2 assert when using landmarks
* Fixed homography on multicam
* Adding marker detection time for convenience
* Added missing MIP 36h12 tag family in UI
* Avoid removing nodes from STM when using CreateIntermediateNodes
* Clean up the data of the intermediate node when IntermediateNodeDataKept is false
* Save intermediate node input features
* Don't delete intermediate nodes
* comment typo
* Updated parameter description, bump patch for DBReader API chang
* When ID is not udpated to new one, don't disable words because that signature is still used in the bayes filter
* updated comment
* rtabmap-reprocess: support Rtabmap/DetectionRate when intermediate nodes are created and -skip option is not used
* Fixed smallMovement when rehearsal is not trigdered at the same time
* GUI: visualize rehearsal darkblue when intermediate nodes are used
* Fixed RtabmapThread not transfering input features on intermediate nodes
* Do not override smallMovement and fastMovement when converting to intermediate nodes to keep GUI visualization color working
---------
Co-authored-by: Borong Yuan <yuanborong@hotmail.com>
* Added macos-15-intel and macos-15 build
* Cache brew pkgs
* added tahoe build, adding debug logs
* g2o csparse optional
* removed ls
* build package on
* disabling bundle for now
* updated cache name
* Added MacOS CI status in README.md
* Auto graph repairing: detect and remove bad loop closures accepted in the past that block new good loop closures to be accepted
* Added parameter RGBD/OptimizeMaxErrorRepairRadius: added approach to repair the graph (remove bad loop closures added in the past). Refactored max optimization error function, split repairGraph to its own function.
* Handling optimization from graph end in repair
* MaxGraphErrors: changed link's pointers to copy directly to avoid seg fault down the road if not used properly
* Dont publish optimization statistics if it was not computed.