Commit Graph
1991 Commits
Author SHA1 Message Date
matlabbe b88a504838 fixing tilt on windows ci 2026-06-01 21:12:04 -07:00
matlabbe 858e1ad042 Merge branch 'master' of github.com:introlab/rtabmap into gtest 2026-06-01 21:04:32 -07:00
matlabbe f29676deb0 PyDetector: adding check if returned descriptors are empty (#1715)
* 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)
2026-06-01 21:04:08 -07:00
matlabbe 4b5e1359bf Fixing gtsam version build issues 2026-06-01 19:40:33 -07:00
matlabbe 36fe9e03a4 Fixed bugged check and warn if python didn't return any descriptors 2026-06-01 19:29:31 -07:00
matlabbe d864af6572 Added smartfactor gtsam 2026-06-01 02:00:18 -07:00
matlabbe 140634acad Added stereo20Hz test 2026-05-31 23:51:48 -07:00
matlabbe afc75f5cc4 Added BA integration test 2026-05-31 15:52:19 -07:00
matlabbe b8347613e8 Aligned BundleAdjustment parameters with Optimizer/Strategy to avoid confusion in the code 2026-05-31 13:51:00 -07:00
matlabbe 71092e7c28 Added Ceres multicam BA support 2026-05-31 13:36:02 -07:00
matlabbe 1d4d84272b fixing home dir 2026-05-31 12:23:43 -07:00
matlabbe ce832878a0 fixing build without gtsam 2026-05-31 11:47:19 -07:00
matlabbe 1ef19d6ac4 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. 2026-05-31 00:03:18 -07:00
matlabbe e8eabc1538 Added Optimizer tests and discovered some bugs (fixed) 2026-05-30 20:55:06 -07:00
matlabbe 6f34498651 rtabmap-info: fixing empty parameter strings showing of as NA (#1712)
* rtabmap-info: fixing empty parameter strings showing of as NA

* show all strings with quotes
2026-05-29 13:09:21 -07:00
matlabbe 1c4b838403 fixing flaky tests on windows and mac 2026-05-29 08:41:30 -07:00
matlabbe 10a3949b6a Fixing windows pcl link error 2026-05-28 21:21:14 -07:00
matlabbe 875de7ae53 Added test to detect regression 2026-05-28 20:48:08 -07:00
matlabbe 1ce10ef6e7 Added RANSAC rejection filter to PCL ICP 2026-05-28 10:14:49 -07:00
matlabbe 1a841e8754 more flaky fixes 2026-05-27 23:00:53 -07:00
matlabbe 0cd144069c fixed ceres tests 2026-05-27 21:51:38 -07:00
matlabbe 0bc0a8cf43 suppressed some third party related warnings 2026-05-27 21:05:43 -07:00
matlabbe 499e4796ae Merge branch 'master' of github.com:introlab/rtabmap into gtest 2026-05-27 19:41:49 -07:00
matlabbe bb95cc081a Fixed backward compatibility with bionic (Qt::ItemFlags) (#1710)
* Fixed backward compatibility with bionic (Qt::ItemFlags)

* dont remove occupancy grid with not publish last signature data
2026-05-27 17:42:21 -07:00
matlabbe 35dbb4f20a Added python tests 2026-05-27 00:48:11 -07:00
matlabbe f49157b4e2 Merge branch 'python_singleton' of github.com:introlab/rtabmap into gtest 2026-05-26 20:52:31 -07:00
matlabbe fbea556380 Merge branch 'master' of github.com:introlab/rtabmap into gtest 2026-05-26 20:50:54 -07:00
matlabbe 4756474367 Adding support for AprilTag v3 library (#1702)
* 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
2026-05-26 17:43:34 -07:00
matlabbe 7681e83c32 Refactored how/when python interpretor is created to simplify library usage 2026-05-26 11:01:04 -07:00
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 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 7ccc41de12 Added LASWriter tests 2026-05-17 14:58:35 -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 f40ea246f5 Added coverage report 2026-05-16 21:11:02 -07:00
matlabbe f6a0d63f3d Added doc and tests for BayesFilter class 2026-05-16 15:40:32 -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