* 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 <[email protected]>
* 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 <[email protected]>
Co-authored-by: matlabbe <[email protected]>
* 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)
* 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
* CudaSIFT: filter doubles
* removed fixed threshold
* SSC can be used with multicameras. Refactored CudaSIFT to support SSC. Add new parameter SIFT/MaxGaussianThreshold. DbViewer: show negative features with gray color (so that we can know which features are in the vocabulary)
* Added SIFT/MaxGaussianThreshold parameter
* Updated parameter description
* initial python implementation of superpoint rpautrat
* working python implementation of superpoint
* small tweaks to try and work around the GIL issue
* fix missing os import
* begging cpp impl of superpoint python model
* finishing cpp superpoint impl using the same SPDetector interface
* finalizing superpoint cpp impl, working with cpu but needs to be cleaned
* fixing feature matching by reworking nms and filtering logic
* speeding up nms with batched operations and cleaning up
* updating conversion script
* adding args for image dimensions and cuda usage to model tracer
* wiring up UI to parse superpoint params
* adding label to superpoint rpautrat ui
* reverting some unintended ui changes
* typo
* oneline revert
* removing nms and threshold filtering from cpp, this is handled internally by the superpoint model
* using python interface to run the superpoint _to_torchscript.py script at runtime
* generate and load model file on the first incoming frame
* reverting unintented change
* ui changes appear mysteriously again, reverting
* remove topk from model to prevent issue when number of detected keypoints is lower then the k value (scripting fails in this case)
* cleaning up for review
* change dest for model file and remove debug logs
* bump patch and add version comment
* rm unucessary comment
* use resources to load file to ensure it works when rtabmap isn't built from source
* execute with pybind runpy instead of system call
* only build superpoint rpautrat if we have torch and python support
* changing param to accept a path to the weights .pth file directly
* parse the default working directory to save the model file in
* rm extraneous change
* rm setters and re-initialize the detector whenever params change. We cannot support changing params after the model is constructed
* update UI text
* only enable superpoint rpautrat when built with python and torch
* more build information regarding superpoint rpautrat
* generate temporary python script in the working dir
* rm unecessary changes to rtabmap_superpoint.py
* fix comment and only add repo root to sys.path
* introduce a new parameter for the superpoint python model definition
* execute script from string instead of writing to a file
* wrap parse params in a single compiler directive
* remove descriptor spatial matching logic and rely on upstream RTAB-Map processes to take the top-K desc and kpts
* only add python script to resources if built with superpoint rpautrat support. supress warning with type casting
* isolate pybind11 setup so it can't affect any other modules or potential regnerations of the model file
* update about dialog to show superpoint rpautrat
* remove debug logs
---------
Co-authored-by: Felix Toft <[email protected]>
* On init, rebuild the dictionnary only once
* Fixed first dictionary update to avoid rebuilding multiple times. Commented some very verbose debug logs (should create a new level: UVERBOSE or UTRACE)
* bump version 0.23: added parameters "Mem/LoadVisualLocalFeaturesOnInit", "Mem/FlannIndexSaved", "Kp/SerializeWithChecksum".
* Renamed Mem/FlannIndexSaved to Kp/FlannIndexSaved. Update UI Preferences with new parameters.
* commented some very verbose debug logs
* Warn flann index serialization not implemented on windows
* Warn flann index deserialization not implemented on windows
* Removing some verbose logs
* missing header (win32)
* Added GlobalMap::fullUpdateNeeded() function
* Adding log
* Save flann index even if links changed
* log time to serialize flann index
* Make dictionary modified only after we update
---------
Co-authored-by: Mathieu Labbe <[email protected]>
* Adding GFTT and SIFT Cuda support
* Working CudaSift
* Disable cudasift option when not available
* Added check to avoid re-allocating gpu memory everytime parseParameters is called. Added workaround of to detect/ignore invalid descriptors
* Added SIFT/PreciseUpscale and SIFT/Upscale parameters. Adjusted max octave to behave more like opencv
* Refactored how maximum features are thresholded, to be more similar to OpenCV version
* Updated loop closure benchmark scripts
* Cuda optical flow tmp commit
* Added Stereo/Gpu Vis/CorFlowGpu parameters (optical flow gpu integration for F2F odom and stereo correspondences)
* Fixed build without opencv cuda
* Fixed build with Opencv 4.10
* ZED: updated parameters to match zed sdk 4
* MRPT requires C++17
* updated max octave limit CudaSift
* gui: fixed wrongly showing landmark rejected when it was not (because a loop closure was rejected at the same time)
* Added Vis/PnPMaxVariance and RGBD/InvertedReg parameters. Implemented inlier distribution computation for multicam.
* On loc/small displacement: don't remove from odom cache if loop is rejected (maybe first loc)
* Loc: don't prune odom cache on small movement if delayed loc is enabled
* loc/small movement: cleanup bidirectional links
* Cov/PnP: fixed objPt transform to estimate depth
Co-authored-by: mathieu86 <[email protected]>
* Integrated OpenGV
* Fixed build without opengv
* Cmake: moved OpenGV dependency status under solvers group
* Added multi-stereocamera models support
* Fixed OpenGV 0 sample error when one of the camera doesn't have features. Fixed g2o BA id offset with multi-camera.
* Fixed multicam 3d points generated from stereo correspondences
* db: Fixed multi stereo models not loaded correctly
* gui: fixed stereo rectification option, RegVis: fixed projection error with old databases (image size not set in calibration)
* OdomF2M: Fixed map.at error when bundle adjustment is not used
* depthai: added imu firmware update option for convenience
* Fixed various refactor errors
* Moved "large number stereo correspondences rejected" warning outside computeCorrespondences function for multicam
* Added error log if ba correspondences are computed with empty signatures
* fixed compilation errors with latest opencv
Co-authored-by: mathieu86 <[email protected]>
Refactored how features are stored in Signature (significative memory optimization, causing major refactoring in Memory, RegistrationVis, OdometryF2M)
FLANN: optimized memory usage when Kp/IncrementalFlann is false
Added memory usage functions
Added statistics Loop/Visual_inliers_ratio/ and Memory/RAM_estimated/MB
EpipolarGeometry: templated findPairs functions
graph::filterLinks: added inverted option
LocalBundleOnLoopClosure: Force to use only neighbor links
MainWindow: fixed max depth filtering for map's features
Rtabmap::getSignatureCopy() fixed links not returned
Added UPlot::getAllCurveDataAsText() function.
DbViewer: fixed features not rendered in right view when failing ro refine a constraint
report: added --export and --export_prefix options (to export figures data)