Commit Graph
2121 Commits
Author SHA1 Message Date
matlabbe 828a7ed100 making some tests less flaky 2026-05-24 22:39:04 -07:00
matlabbe e9c0194546 Added Memory and Rtabmap tests 2026-05-24 20:49:49 -07:00
matlabbe 5786a8796d Added doc for Rtabmap and Memory classes 2026-05-23 19:01:25 -07:00
matlabbe 5aff0721e9 Merge branch 'master' of github.com:introlab/rtabmap into gtest 2026-05-23 15:24:44 -07:00
matlabbe 49aa566613 Fixed empty global map on ros (regression from #1698) (#1709) 2026-05-23 13:36:15 -07:00
matlabbe 5959fe3505 Added RegistrationVis tests 2026-05-17 22:51:46 -07:00
matlabbe da27557787 Added Registration tests 2026-05-17 17:53:16 -07:00
matlabbe a9cc4fcebf Added Features2D tests 2026-05-17 17:47:13 -07:00
matlabbe 9a8b99f361 Added doc for EnvSensor 2026-05-17 17:12:35 -07:00
matlabbe d5deecaf1a Added GlobalMap tests 2026-05-17 17:10:08 -07:00
matlabbe 3cc21c636f fixing ci errors 2026-05-17 16:58:30 -07:00
matlabbe 77fb48a5af Added LocalGridMaker tests 2026-05-17 16:54:44 -07:00
matlabbe b62a113d0b Added LocalGrid tests 2026-05-17 15:17:31 -07:00
matlabbe 417f9aa494 fixing seed flaky test 2026-05-17 15:02:18 -07:00
matlabbe 7ccc41de12 Added LASWriter tests 2026-05-17 14:58:35 -07:00
matlabbe 057d385404 Added Landmarks tests 2026-05-17 14:24:40 -07:00
matlabbe 7fdf3a13f2 Added IMUThread and IMUFilter tests 2026-05-17 14:20:34 -07:00
matlabbe b0e0498e19 fixing flaky macos test 2026-05-17 13:58:13 -07:00
matlabbe ffe2482cfb Added Graph tests 2026-05-17 13:57:59 -07:00
matlabbe c498a71bc1 Added IMU tests 2026-05-17 10:03:13 -07:00
matlabbe c102c687d9 Added DBDriverSqlite3 tests 2026-05-17 09:53:57 -07:00
matlabbe 59ba6e54bd fixing windows and mac ci errors 2026-05-17 09:19:22 -07:00
matlabbe c295b35a8a uniformized test names 2026-05-16 21:21:27 -07:00
matlabbe f40ea246f5 Added coverage report 2026-05-16 21:11:02 -07:00
matlabbe f6ba3e6d7d Added DBDriver tests 2026-05-16 18:51:17 -07:00
matlabbe 551c9e8a0f Added Odometry tests (base class only) 2026-05-16 17:55:03 -07:00
matlabbe a0d891bff0 Added tests for compression 2026-05-16 17:36:56 -07:00
matlabbe 69e943f80c Added GPS and GeodeticCoords tests 2026-05-16 17:19:33 -07:00
matlabbe c6a2d9721a fixed unresolved on windows 2026-05-16 17:00:35 -07:00
matlabbe 7e06eb7fe4 added test_link 2026-05-16 16:57:14 -07:00
matlabbe f6a0d63f3d Added doc and tests for BayesFilter class 2026-05-16 15:40:32 -07:00
matlabbe 425371a3d9 updated SSC test and doc 2026-05-16 15:40:19 -07:00
matlabbe 614cd925b3 fixed sensordata test 2026-05-16 15:40:00 -07:00
matlabbe 46cf7ec344 Merge branch 'master' of github.com:introlab/rtabmap into gtest 2026-05-16 10:15:18 -07:00
matlabbeandBorong Yuan 8d0692eab0 Save intermediate node input features (#1698)
* 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 <[email protected]>
2026-05-14 09:20:09 -07:00
matlabbe c1ef13a8d6 Various QoL (refactored RTABMAP_VERSION_COMPARE) (#1695) 2026-05-04 20:12:31 -07:00
matlabbe 37f8fa63c5 Auto graph repairing (#1691)
* 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.
2026-05-04 16:02:55 -07:00
Borong Yuan 0cf2e45c81 Preserve the attributes of intermediate nodes when retrieving data from the database (#1694) 2026-04-29 08:04:37 -07:00
Borong Yuanandmatlabbe ebba7e4878 Correct the Jacobian calculation of GravityFactor (#1692)
* correct the Jacobian calculation of GravityFactor

* reimplement GravityFactor's analytical Jacobian

* adopt some minor changes from the GTSAM mainline

* use GTSAM's native AttitudeFactor instead of GravityFactor

* add missing header file and namespace prefix

* Removed GravityFactor. Fixed build with latest GTSAM version from source. Require c++17 when building with GTSAM>=4.3.0.

* Fixed cmake error when gtsam is not installed

---------

Co-authored-by: matlabbe <[email protected]>
2026-04-26 15:33:05 -07:00
matlabbe 9cbe84e445 Support intermediate nodes with memory management enabled (#1687)
* Support intermediate nodes with memory management enabled

* Adding fix from #1686

* Fixed odomCache overlay shown in mapping mode

* Fixed local retrieval with intermediate nodes

* bumping version for updating API. Fixed getting graph error.

* Disable planning if intermediate nodes are there. Updated usage of Kp/BadSignRatio to support intermediate nodes.
2026-04-19 16:08:03 -07:00
matlabbe 79ff91d293 Added Statisics: Loop/Optimization_max_error_from_id and Loop/Optimization_max_error_to_id to help with debugging rejected loop closures 2026-04-16 17:39:58 -07:00
matlabbe aa7546ec62 Enable WITH_PYTHON on CI (#1689)
* Enable WITH_PYTHON on CI

* add python-dev

* use python3-dev instead of libpython3-dev

* use action to instlal python

* pybind now missing

* Fixed python build on linux

* warning

* try to install compatible pybind

* explicitly set where to find pybind
2026-04-14 12:09:41 -07:00
matlabbe a8fd7f043d CloudViewer: fixed rendering camera rotation not normalized warning 2026-04-13 01:16:58 +00:00
Abhijithandmatlabbe a9f63bd5fd Add LIO-SAM as an odometry strategy (#1684)
* Added liosam odometry integration

* Add kXYZIRT scan format with per-point ring channel for LIO-SAM integration

Introduce PointXYZIRT point type and kXYZIRT LaserScan format (x,y,z,
intensity,ring,time) so that ring indices survive the scan pipeline.
Update OdometryLIOSAM to require kXYZIRT and properly split ring/time
into the parallel buffers LIO-SAM expects. Extend deskewing to preserve
ring data and disable base-class deskew in OdometryLIOSAM since LIO-SAM
handles it internally.

* Address PR review: config file, deferred init, and GUI panel for LIO-SAM

- Add OdomLIOSAM/ConfigPath parameter to load LIO-SAM settings from a
  YAML file. When set, individual params are ignored. Extrinsics from
  sensor local transforms always override config file values.
- Defer LioSamCore initialization until both IMU and lidar local
  transforms are available, computing T_lidar_imu from sensor data.
  IMU samples are buffered and replayed after init.
- Fix deferred init for scan-only messages that arrive after IMU
  local transform is already cached.
- Add LIO-SAM entry to odometry strategy combo box (index 14) with
  full PreferencesDialog panel including config path browse button
  and all parameter widgets.

* OdometryLIOSAM: propagate deskewed scan to SensorData

Capture the deskewed cloud produced by LIO-SAM's image projection
stage and replace the raw scan on SensorData with it, so loop closure
registration and other downstream stages operate on the motion-
compensated points instead of the raw pre-deskew input.

* Minor updates for rtabmap_ros

---------

Co-authored-by: matlabbe <[email protected]>
2026-04-12 18:06:44 -07:00
matlabbe 0405949ff4 merged master->branch 2026-04-05 14:20:35 -07:00
matlabbe 8fd701aabe Fixing prior and gravity constraints support for SBA with orbslam dep… (#1683)
* Fixing prior and gravity constraints support for SBA with orbslam dependency

* Updated an error log msg
2026-04-05 12:36:54 -07:00
matlabbe 1ea8fa2e06 New rtabmap-reduceGraph CLI tool (#1655)
* New rtabmap-reduceGraph CLI tool

* fixed some edge cases

* Regenerating optimized map if there was one before reducing the graph

* addMoreLoopClosures: refactored how ctrl-c is handled to stop faster when no loop closures are added

* Added kilted status

* Make offline tool always propagate neighbor merged links

* removed a parameter

* fixed disconnected graph

* fixed --help

* Added error log on Kp/NNStrategy not compatible with huge vocabulary. ReduceGraph/DetectMoreLoopClosures: Make sure original parameters are saved back on closing. g2o: fixing optimizer to Levenberg for SBA to avoid [SetJac] infinite jac fatal error.

* exposing neighbor merged ratio parameter to the tool

* show param in log

* refactored detectMoreLoopClosures to ignore too close nodes in terms of neighbor links based on Mem/STMSize parameter. Reduce graph: added direction parameter.

* Simplified: removed ratio parameter, removed recursive reduction. Just don't reduce if a NM link is longer than maxDistance.

* Removed NNStrategy override, as it was still done on closing when we changed back to original params

* DBViewer: show missing links when showing OptimizedPoses in GraphView, fixed clicking on landmark links

* DetectMoreLoopClosures: Added support for min graph distance option in MainWindow and DbViewer

* slight renaming of ROS jobs

* reprocess: added option --params_last
2026-04-04 19:48:03 -07:00
matlabbe 51cfc37923 Update CI badges (#1681)
* OptimizerG2O: adding support for priors in SBA

* Fixed computeError

* don't fix root id roll/pitch if gravity constraints are fed (SBA)

* changed number_t to double

* forward compatibility

* cleanup

* log

* Updated CI status

* split cmake workflow in linux and windows

* bump release badge version

* uniformize name

* fixing android build
2026-03-29 12:34:09 -07:00
matlabbe 26bab2ba15 OptimizerG2O: adding support for priors in SBA (#1670)
* OptimizerG2O: adding support for priors in SBA

* Fixed computeError

* don't fix root id roll/pitch if gravity constraints are fed (SBA)

* changed number_t to double

* forward compatibility

* cleanup

* log
2026-03-29 11:30:33 -07:00
matlabbe 20409d2bf6 Cudasift tuning and SSC supporting multicameras (#1677)
* 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
2026-03-28 18:47:46 -07:00