* update cuvslam api call to adhere to new v4.0 changes
* update comment
* parse cuvslam major version from the header and throw an error if theversion doesn't match the expected
* moving average filter + extensive debug logging
* lots more logs
* improvement by turning off use_motion_model in cuvslam config. lots of debug logs.
* slight improvements to velocity guard logic. lots of debug logs
* removing debug logs. working.
* let find_package_handle_standard_args handle the version comparison logic. Custom logic to handle newer then requested major version
* proper warning message if the major version doesn't match
* add back debug logs. Handle no guess transform case.
* adding warnings when no guess transform is provided
* clean up comments
* lowering average window to 5
* moderate odometry mode, 5 value averaging window
* adding comment
* add reset logs to investigate reset issue
* try returning guess or identity on init to avoid reset cascade
* disable motion model again
* big log when tracking
* remove some debug logs
* flag to use original covariance from cuVSLAM
* use raw covariance
* data collection for revised lost detection
* compare guess to estimated transform for lost detection
* re-enable motion model, it appears to reduce false-positives for the new lost detection
* run pose estimation afer init on first frame
* don't initialize if we don't have enough features
* dont warm up GPU everytime we reset
* low estimate velocity guard. Passes all challenges. Debug comments still everywhere.
* Remove debug logs. Add thresholds to header in a config section.
* Cleanup logs
* exposing multi-cam mode as a rtabmap param
* remove max frame delta
* change to use assertion instead of conditional
* replaced some UERROR by UWARN
---------
Co-authored-by: Felix Toft <felix@robust.ai>
Co-authored-by: matlabbe <matlabbe@gmail.com>
* 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 <felix@robust.ai>
Co-authored-by: matlabbe <matlabbe@gmail.com>