Skip to content

v2.3 - Memory Management, Active Feature Publishing, Small Fixes

Compare
Choose a tag to compare
@goldbattle goldbattle released this 20 Dec 06:47
· 354 commits to master since this release
ba77fbe

Key Changes

  • Switch to using shared_ptr in the majority of places (fixed a lot of memory leaks), see #96
  • Small fix to propagator for edge case where IMU measurements are lacked (should hopefully address #87, #89, #90)
  • Support for periods in folder names when using ov_eval error_comparison
  • Fix ov_eval RPE trajectory selection for low frequency groundtruth files
  • Added option to do 1d triangulation, update triangulation documentation
  • Update propagation doc to most closely follow Trawny's report
  • Added docs on profiling the memory and complexity of the codebase
  • Publish "active tracks" which are all features which are currently seen from the cam0
    • Can be used for loop closure and other XR applications.
    • All possible features are re-triangulated at each timestep to generate this active pointcloud / sparse depthmap.
  • Option to limit number of MSCKF feature updates
    • Addresses large "spikes" in computation when a bunch of features are lost
    • Allows for tracking of more points then what are used in estimation
  • More arbitrary camera subscriber logic
    • Enables multi-camera subscriptions with mixes of stereo pairs
    • All cameras are in same clock frame (might change in the future to per-camera time offset)
  • Camera images are now processed ASAP to reduce latency (thanks @nmerrill67 )
  • Continuous integration building to enable support for ubuntu 16.04, 18.04, and 20.04 and opencv 3-4 (thanks @nmerrill67 )
  • On startup 4 dof gauge freedoms now fixed to zero uncertainty on startup
  • Option to run in true single-threaded mode with no parallelization in the frontend stereo tracking.
  • Visualization of the active SLAM points as green squares on the image now to help show where SLAM features are being tracked.

Validation

I ran a few runs on the ETH eurocmav dataset to compare performance vs previous releases. While there is no guarantee, I believe we don't have any major regressions in accuracy. Default levels of computational cost have gone up due to tracking of more points to have denser pointclouds. This can be tuned as necessary for any specific platform.
Screenshot from 2020-12-01 10-42-09

Vicon2gt Utility

We have also released a package to facilitate the generation of groundtruth trajectories.

This utility was created to generate groundtruth trajectories using a motion capture system (e.g. Vicon or OptiTrack) for use in evaluating visual-inertial estimation systems. Specifically we want to calculate the inertial IMU state (full 15 dof) at camera frequency rate and generate a groundtruth trajectory similar to those provided by the EurocMav datasets.

Please check it out here: https://github.com/rpng/vicon2gt