Commit Graph
2127 Commits
Author SHA1 Message Date
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 919990ea1f More octomap checks 2026-05-25 21:10:24 -07:00
matlabbe 0286eb65be Added integration tests (RGB-D, Stereo, Lidar2d, Lidar3d) 2026-05-25 20:15:37 -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 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