Commit Graph

42 Commits

Author SHA1 Message Date
Nikolaus Demmel 24325f2a06 ICCV'21 square root marginalization paper code release
Major changes:

- New square-root implementation for optimization and
  marginalization, giving faster optimization and numerically
  more stable marginalization. The square root solver is the new
  default, but the Schur complement based implementation is still
  available. (Implements the ICCV'21 paper.)

- The odometry estimator is now fully templetized and you can run
  in float or double. Default is float, which works well with the
  new square-root implementation and gives best runtimes.

- Batch evaluation scripts and documentation to reproduce the
  ICCV'21 experiments.

Additional changes:

- New options in VIO to marginalize lost landmark right away and
  not only when the frame is marginalized (enabled by default).

- small bugfix for keypoint patch extraction bounds

- basalt_vio: more logging for batch evaluation

- basalt_vio: better handling of closing the GUI while estimator is still running

- basalt_vio: new command line argument to limit the number of frames processed

- basalt_vio: new command line argument to save ground truth trajectory

- added unit tests for square root marginalization

- update basalt-headers

- new submodules: gmt, nlohmann/json, magic_enum
2021-10-15 15:09:15 +02:00
Vladyslav Usenko 1b8a855c43 Update apt repository info 2021-08-07 10:40:48 +02:00
Nikolaus Demmel 823b3a0e35 small ci fux 2021-08-06 11:04:45 +02:00
Nikolaus Demmel d316689e6a remove xenial 2021-08-06 10:57:39 +02:00
Vladyslav Usenko 7f2c792e44 Removed 16.04 repository 2020-11-21 15:45:03 +01:00
Jason Chui a13785bf2d fix .gitlab-ci.yml 2020-11-06 17:55:25 +01:00
Vladyslav Usenko 3a699d9ac2 Switch to 20.04 for base docker image 2020-08-09 10:28:21 +02:00
Vladyslav Usenko 6c350b5868 Switch to 20.04 for base docker image 2020-08-09 10:24:39 +02:00
Nikolaus Demmel 2c07e1d660 ci: add catalina jobs 2020-06-24 12:21:17 +02:00
Vladyslav Usenko 0b0399a1f9 Updates to Docker, Readme and CI 2020-04-28 23:01:10 +02:00
Vladyslav Usenko e087fdf1e9 fix repository check 2020-04-28 18:43:47 +02:00
Vladyslav Usenko ffe368bbcb Added focal to CI 2020-04-28 12:43:52 +02:00
Vladyslav Usenko f28ab0d46c added docker build focal 2020-04-28 11:59:51 +02:00
Vladyslav Usenko 24e378a7a1 small fix 2020-03-06 14:45:48 +01:00
Vladyslav Usenko 2926020df7 added tumvi eval 2020-03-06 12:51:28 +01:00
Vladyslav Usenko 49f8481a97 Disable elcapitan 2019-12-24 18:31:01 +01:00
Vladyslav Usenko 9264023b14 Added Docker related CI 2019-12-03 15:15:06 +00:00
Vladyslav Usenko a6a536753f added trajectory saving for Euroc 2019-10-31 14:16:02 +01:00
Vladyslav Usenko ffca1ef6bb added trajectory saving for Euroc 2019-10-31 14:15:40 +01:00
Vladyslav Usenko 18fe854d88 Added stereo (no IMU) odometry and KITTI evaluation 2019-08-23 08:01:40 +00:00
Vladyslav Usenko 7a851029b1 update ci 2019-07-23 17:05:03 +02:00
Vladyslav Usenko dcb866c1f1 update ci 2019-07-23 17:02:39 +02:00
Vladyslav Usenko f5e669f93f Disable Debug symbols in CI to reduce the ccache size 2019-06-09 18:49:03 +00:00
Nikolaus Demmel 9243201c17 ci: use RelWithDebInfo build for non-master branches
- unlike Release, it builds with debug assertions and eigen-nan
  intialization, which may help to spot some bugs earlier.
2019-05-18 14:15:14 +02:00
Nikolaus Demmel c9548bbb23 ci: macos only for master 2019-05-18 14:14:53 +02:00
Nikolaus Demmel 39834556d2 ci: mojave 2019-05-18 13:00:51 +02:00
Vladyslav Usenko fda3f71205 small changes to ci 2019-05-15 14:55:46 +02:00
Vladyslav Usenko 7db51ca51f added manual trigger to deploy 2019-05-15 09:24:35 +02:00
Nikolaus Demmel bed5e5e8e0 Ignore un-updated submodules in clang-format check. 2019-05-14 22:49:02 +02:00
Nikolaus Demmel fa91beed17 ci: tweak 'modified' detection in clang-format job 2019-05-13 21:41:00 +02:00
Vladyslav Usenko 9a9f707bbd small fix for ci 2019-04-25 16:14:07 +02:00
Nikolaus Demmel fa99e2c30b ci: use ci-job-name as cache key and print ccache info 2019-04-25 12:30:28 +02:00
Nikolaus Demmel cdd5578092 ci: use base image for clang-format 2019-04-24 17:48:13 +02:00
Nikolaus Demmel db8655b3d8 ci: fix caching 2019-04-24 17:47:40 +02:00
Nikolaus Demmel 6755f08678 ci and cmake improvements
Changes along the line of
https://gitlab.com/VladyslavUsenko/basalt-headers/merge_requests/1 and
https://gitlab.com/VladyslavUsenko/basalt-headers/merge_requests/2,
and more.

Warning free builds on macos 10.11 - 10.14, Ubuntu Xenial &
Bionic. (macOS 10.14 is not yet in CI, but tested locally.)

Changes similar to basalt-headers:

 - cmake: raise minimum version to 3.10
 - cmake: add workarounds to support macOS < 10.14
 - cmake: set ccache only if not yet set and print info
 - cmake: add NDEBUG define (to disable asserts) for release build and
   EIGEN_INITIALIZE_MATRICES_BY_NAN for others. Add externally supplied
   CMAKE_CXX_FLAGS at the end to allow overriding the defaults.
 - tests: add enable_testing() in main CMakeLists.txt, such that we can
   call 'ctest' from build folder.
 - tests: simplify gtest / gtest_main linking
 - tests: use the newer gtest_discover_tests instead of add_test, which
   adds a separate cmake test for every gtest, even with multiple
   defined in a single executable. Its not only more reliable and less
   verbose in the CMakeLists.txt, but also allows to run 'ctest'
   without -V and still see status for every individual test.
 - ci: add build jobs for Debug/RelWithDebInfo on Bionic, as well as
   builds on Xenial and El Capitan. Use templates to simplify
   .gitlab-ci.yml
 - ci: clang-format job

Additional changes:

 - cmake: unify formatting
 - cmake: various diagnostic warnings for situations that are
   unsupported (should help with gitlab issues).
 - cmake options to disable openmp, pass custom eigen root,
   compiler-launcher, additional CXX_FLAGS that can override default
   flags also for submodules (opengv etc), ...
 - cmake: moved configuration of submodule libs to
   `thirdparty/CMakeLists.txt`. This includes various fixes for
   limiatations of the thirdparty cmake definitions. In particular
   ensures that correct eigen is used, that opengv respects march and
   CXX_FLAGS passed from command line.
 - cmake: simplified linking of executables. Linking `basalt` is
   enough.
 - cmake: basalt sources now build with the minimal disabled
   warnings ("-Wall Wextra -Werror -Wno-unused-parameter
   -ftemplate-backtrace-limit=0", and additionally "-Wno-exceptions"
   for clang). Additional flags are now only set for the submodule
   targets in thirdparty.
 - tests: Running ctest in build folder now also runs the unit tests
   from basalt-headers.
 - ci: in addition to the additional compile jobs and there are now
   also 'test' jobs, that check that the executables in the deb's
   work (runs on all branches, not just master).
2019-04-24 14:21:24 +02:00
Vladyslav Usenko 320074bf94 Merge branch 'master' of gitlab.vision.in.tum.de:slam/basalt 2019-04-18 13:39:50 +02:00
Vladyslav Usenko dda61be439 Update .gitlab-ci.yml 2019-04-18 13:39:31 +02:00
Vladyslav Usenko 1e343b5ade Update .gitlab-ci.yml 2019-04-18 10:57:20 +00:00
Vladyslav Usenko 660155376e Update .gitlab-ci.yml 2019-04-18 09:29:31 +00:00
Vladyslav Usenko 1f6e38d95e Update .gitlab-ci.yml 2019-04-15 21:20:46 +00:00
Vladyslav Usenko e15bb22410 Added euroc evaluation to CI 2019-04-15 15:38:58 +00:00
Vladyslav Usenko 0cef943b16 Initial commit 2019-04-14 21:08:32 +02:00