* 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
* 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]>
* 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
* GridMap integration
* Removed GridGlobal/FullUpdate parameter. Bump version 0.21.3. Mvoed specialized global map classes under global_map sub dir. Renamed Map -> GlobalMap.
* UI: Added elevation map visualization
* Added LocalGridCache class to share cache between global maps
* Fixed OctoMap nans. DbViewer: Added frontiers visualization.
* convenient functions for ros
* Small fix
* fixed build without GridMap
* CI disabled fail-fast
* CI updated checkout action to v4
* Refactored RegistrationIcp so that libpointmatcher yaml can work with icp odometry (we can then avoid refiltering data with local map of F2M). All data filtering (including libpointmatcher DataFilters) are done at the beginning of the function.
* ICP: Restored ref and data scans order for libpointmatcher (seems more stable this way).
* Fixed compilation error without libpointmatcher
* CCCoreLib integration (Icp/Strategy=2). Icp/PMForce4DoF is now Icp/Force4DoF. Icp/PM is now Icp/Strategy. Icp/PMOutlierRatio is now Icp/OutlierRatio.
* Fixed build without CCCoreLib
* Cleanup RegistrationIcp from third party functions.
* Preferences: disable libpointmatcher and cccorlib options if not available
Referred issues:
#655https://github.com/introlab/rtabmap_ros/issues/492
Note: IMU not supported yet with ORB_SLAM3.
Commits:
* Added orbslam3 support. UI-Source->IMU filtering: Added base frame conversion option of IMU data to uniformize yaw initialization. Madgwick: fixed yaw initialization accordingly to Z acc.
* fixed regression build error with ORB_SLAM2
* Renamed OdometryORBSLAM2 to OdometryORBSLAM (can be 2 or 3 now)
* Added CameraStereoZedOC (Zed Open Capture driver). Calibration: added stereo baseline option, show warning if fx is very different after stereo calibration.
* Fixed build without Zed Open Capture. Fixed "any" prefix added to all tools when WITH_ZEDOC=ON. UI: fixed Zed Open Capture action not disabled when not built with it.