* 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.
* 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 <matlabbe@gmail.com>
* 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.
* 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
* 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 <matlabbe@gmail.com>
* 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
* 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
* 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