* 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
* 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
* Adding OpenGV as submodule (optional)
* Remove submodule to migrate to FetchContent
* using FetchContent
* remove empty .gitmodules
* Fixing OpenGV not able to find eigen on windows
* patching opengv to adjust -march=native based on PCL
* fixing patching on windows
* eigen fix
* PR cancel on-going CI builds if new commit is added to PR
* try another approach
* updating patch with some logs
* more debug mesage
* fixing EIGEN_INCLUDE_DIR
* enable rolling_builds on appveyor
* removed rolling_builds appveyor
* fixing eigen cache
* test
* more debug logs
* another try
* cleanup
* updated appveyor to work with fetchcontent
* removed mkdir build (appveyor)
* appveyor: trying ninja to increase CI speed
* removed mkdr
* appveyor: spitting opengv and rtabmap builds to be under 60 min per job
* appveyor: caching dependencies
* using global configuration
* using baked image
* fixing wget in ps
* fixing not support for
* pip error
* reverted pip install
* fixed realsense cache
* fixing multi step build
* removing baked image
* typo
* Windows: Converted appveyor to github actions
* updated boost version
* fixing boost
* udpated boost config
* boost...
* platform_version
* install boost directly
* silent boost install
* very silent boost
* fixing ls
* added boost install dir
* showing boost install dir
* moved windows dependencies in external action file
* explicitly save boost cache to same time on iterations
* pip install gdown
* update
* caching more deps
* caching all depts
* removed explicit boost cache save
* mscv 14.0
* forcing building visual studio 14 2015
* installing v12 in 2022 instead
* setup cmd prompt
* init right toolset
* fixing system version for opengv compilation error
* fixing package and artifact
* CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
* removing cmd
* find manually psapi.lib
* resolve
* refactor psapi env
* forcing 10.0.19041.0
* using windows=2022 runner instead
* added vcpkg
* commenting windows-latest for now
* trying vcpkg instead
* search path
* updated path
* moved json
* removed deleted file for git
* adding a real version
* using version-string
* cleanup vcpkg
* building artifacts with vcpkg
* removed old windows build approach, added custom dependencies (gtsam, libpointmatcher) to vcpkg build
* udpated vcpkg version for issue https://github.com/microsoft/vcpkg/pull/49103
* try with minimal dep first
* disable opengv for now
* try vcpkg single compilation
* space
* updated link
* fixed qupote
* fixing cache name
* adding debug folder
* adjust path
* adjust path
* providing vcpkg binaries instead
* ident
* added triplet
* added BOOST_ROOT
* boost root
* boost root
* fixed path
* adding eigen headers
* try path
* cmake prefix path
* boost timer def
* libnabo fixes
* pointmatcher prefix
* disabling pointmathcer tests
* updated cmake parameters
* changed how file is downloaded
* trying curl instead
* puttoing backe InvokeWeb because it is a dropbox issue
* skipping optional deps for now
* ficing env variable
* triplet
* installing triplets
* not overriding default vcpkg env variables
* missing path
* manifet install off
* that was working locally
* missing protobuf path
* fixing tiff not found
* fixing vtk not found
* more vtk fixes
* another thy
* changing download url
* updated url
* try
* shoudl work now
* protobuf exe
* readding tiff
* explicit vcpkg installed folder
* missing commands
* try without tiff
* ficing vtk comple path
* -DPSAPI_LIBRARIES=Psapi.lib
* quoting
* fixing psapi required
* Set up MSVC Developer Command Prompt
* disabling pckaging for now
* openni.ini
* renabling packing
* Added stripped deps
* fix name
* updated binaries
* format
* updated opengv eigen path
* added tbb dep
* updatd archive name with vs version
* updated archive in action
* fixing patch error
* corrupted
* updated gtsam version / vcpkg
* removed appveyor. Set internal opengv build disabled by defaut (because build can be very long on some machines), will enable it inside the ros release branches instead.
* updated opengv patch
* gtsam mkl dep
* updated vcpkg binaries
* updated patches
* removed mkl dep
* missing eigen in gtsam dep
* disabling gtsam till we find a compatible version locally
* all working locally!
* removed ninja
* working python calls
* fixed hard symlink for python3.dll
* fixed qt missing png, fixed opengv not finding eigen with config, fixed python3.dll missing
* fixed flaoting dockwidget on start, removed cmd line window when launching bundled app
* use sub-packages cudnn
* Added cuda dev workflow
* fixed archive name
* Updated deps with pytorch cuda
* updating ci PATH
* fixing ci build without torch
* rename cuda artifacts
* cache cuda, add job to test internal opengv build
* Updated output artifacts zip name
* windows package: only zip on pull request
* Change USE_INTERNAL_OPENGV to BUILD_OPENGV
* use use-github-cache
* updated artifacts path
* Detect more loop closures from/to specific map ID only option
* default value -1
* Added elapsed time
* Avoid loading ALL signatures in RAM, only load them when necessary
* Avoid creating flann index when initializing with Kp/NNStrategy>=3
* Setting opt params by default
* Read-only localization mode
* Localization: don't update map's node timestamps if statistic after run are not saved
* Updated Mem/LocalizationReadOnly description
* Updated description of Kp/FlannIndexSaved
* Working IMU_RGBD and IMU_STEREO. Changing Inter IMU base frame is now possible.
* Output error msg when vocabulary path is wrong.
* Showing full local feature map
* Prioritize neighbor links in Optimizer::getConnectedGraph() to avoid odometry jumps.
* Fixed landmark order
* report: added search for first valid id
* Fixed non-neighbor comparison logic
* RGBD/LocalizationPriorError can now be 0 (disabled) to avoid using priors to fix the graph (https://github.com/introlab/rtabmap_ros/issues/1371)
* amend previous commit
* 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]>
* Orbbec SDK 2 integration (new CameraOrbbecSDK class)
* Added rectification option, fixed the build without orbbec sdk
* Fixed timestamp issue on Windows
* Removed WITH_ORBBEC_SDK=ON by default in case v1 is installed. Enabled inter imu when selecting orbbec sdk.
* requiring orbbec version=2 to avoid confusion
* Finalizing options
* integrating cuvslam, stereo cam initialization
* fixing transformations
* use isaac ros TocuVSLAMPose
* organizing
* handling covariance conversion
* cleaning up config
* moving cmake instructions to FindCuVSLAM.cmake file
* fixing ui integration
* updating software license for cuvslam
* improving memory management
* cleaning up header more
* reverting mistake in GUI
* using opaque pointers for header definitions, compiles
* back to typed definitions using forward-referencing
* fixing dangling pointer
* cleaning up
* fixing variable scope issues
* Using cuda to allocate gpu memory
* fixing transfrom from cuvslam back to ros coordinate frame
* reducing excessive logs
* removing redundant if true in cuvslam cmake
* moving find cuda into cuvslam cmake
* cleaning cmake to use modern target
* adding copyright line
* Finding tf2 and eigen3 in cmake
* simplifying clean up logic
* better logs
* moving cuvslam implementation methods into cpp
* fixing build with implmentation function declarations moved to the cpp
* cleaning transformation logic and adding grayscale support
* typo
* removing unecessary class member variable for processed images
* remove trailing underscore from initialize cuvslam function signature
* locally scoping config params since they are copied by cuvslam
* removing unecessary member variables and using locally scoped values since cuvslam seems to copy them
* more cleaning and refactoring
* fixing cmake inconsistancies and surpress warning
* fixing up baseline transform
* trying to remove tf2 for transformations
* fixing incorect baseline transform swap
* comment, begin reset logic investigation
* better handling of previous pose and transform during error cases
* hunting for reset bug, not found
* observation export implementatin, currently getting strange errors
* multi cam support
* Memory fixes
* comments
* make cuda stream a member variable so it isn't initialized and destroyed on every frame
* preparing to add ground constraints
* adding ground constraints, working
* adding wheel odom fusion into cuvslam tracker
* parsing parameter to apply planar constraints
* removing planar constraint in config, doesn't do anything
* using proper cuda stream type for member variable
* cleaning up for merge
* only parse params when cuvslam is compiled
* updating error message if using rgb-d instead of stereo
* removing wheel odom testing logs
* reverting bgr to rgb conversion
* fixing initial pose logic
* return null transform on invalid covariance
* debugging covariance
* guard against low velocity situations where cuvslam covariance spikes, but we aren't lost
* cleaning things up
---------
Co-authored-by: Felix Toft <[email protected]>
Co-authored-by: matlabbe <[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]>
* Added parameter RGBD/LocalizationSecondTryWithoutProximityLinks
* Statistics: added new stat to know when proximity links are removed after a successful second loc try
* changed kLoopProximity_links_cleared for a count instead of bool
* Updating odomCachePoses with optimization for better visualization
* Using shadows on all texts and icons to see them better when background is white. Buffering database previews to show faster the Library. Updated how RAM usage is computed and now show max memory. Added warnings when RAM usage is low.
* Added measuring tool
* fixed map not shown when closing visualization
* Added measure text size setting, changed look and feel of point to point
* Fixed measuring point not showing
* Added fix for #1401
* Addressing #1407
* Export: Added colored OBJ options
* fixed index_t not existing on focal
* Fixed Settings not applied after restoring to all default settings witohut restarting the app (Marker detection not working issue #1455 )
* Marker detection: Fixing wrong depth used when rgb and depth image sizes cannot be divided exactly one from the the other #1455
* Added Marker Max Range option (default 1m)
* Added OBJ texture policy option (keep color on textureless polygons)
* Added texture/color blending option directly in the app. Added LAZ export option.
* Hiding measuring button if not mesh, dont zip if exporting to laz, updating Export XXX button based on the current context, fixed always blending texture/color on not visualization mode
* updated default marker max range to 2m
* bump ios app version
* fixing pcl 1.8.1 build
* fixed android build
* Reorganize DepthAI params
* Advanced Tuning of DepthAI’s SGBM Pipeline
* Update IMU Local Transform for OAK-D LR, OAK-D SR, and PoE Devices
* Reorganiz the usage of DepthAI. Get params before creating the pipeline, and automatically determine the resolution of different models.
* Identify the IMU type to specifically handle BMI270 and BNO085/086
* Added OdomF2M/BundleAdjustmentMinMotion and OdomF2M/BundleAdjustmentMaxKeyFramesPerFeature parameters
* Added new odom stats localBundleMaxKeyFramesForInlier
* Adjusted how localBundleMaxKeyFramesForInlier is computed when OdomF2M/BundleAdjustmentMaxFrames is used.
* optimization: Dont compute average pixel distance if parameter is not used
* add rvl_codec
* add support for RVL deep image compression
* DBViewer: edit depth re-using same compression format than the one in database.
* Fixing windows ci
* 💄
* missing dll export (windows)
* typo
---------
Co-authored-by: matlabbe <[email protected]>
* Stashing changes so far
* Tested and working
* removed unused options
* Added density_radius and density_angle options
* improved description
* backward compatibility fixes, matching texture exported file names with base name
* Setting global full opt by default, updated preferences defaulting to g2o or gtsam if one or the other is unavailable
* created concise layout
* Hiding matching lines and always update graphics view A when clicking on a node in the graph in concise view mode
---------
Co-authored-by: Chuck-Ellison <[email protected]>
Co-authored-by: matlabbe <[email protected]>
* Added Data Recording Mode. Added option to filter ARKit localization jumps.
* Implemented max acc relocalization filtering (working on iOS)
* Fixed android build, added re-localization max acceleration parameter
* ARCore Java: Fixed pose of depth not available at stamp requested
* Android log fix
* Added libLAS support
* ios: added LAS support
* updated dep install script to skip libraries already installed
* CameraMobile: Fixed origin not updated if updateOnRender() is used
* Default max opt error increased to 2x to reduce number of loop closures rejected. OptimizerGTSAM: updated gravity noise model to use same sigma for both parameters.
* Updated license
* bump 0.21.7
* updated license date
* 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