Commit Graph

16 Commits

Author SHA1 Message Date
Mateo de Mayo 4b4bacb951 Build file improvements: pkgconfig, BUILD_TESTS flag, and other fixes 2022-05-06 15:52:27 -03:00
Nikolaus Demmel 7c2ddd99a3 macos: fix compilation with latest ffmpeg 2022-02-23 03:52:35 +01:00
Nikolaus Demmel e37d3f02e7 cmake: adjust to basalt headers cmake changes 2021-12-04 12:14:22 +01:00
Vladyslav Usenko 99321d1af3 Fix for AppleClang 12 2021-11-21 18:58:56 +01:00
Vladyslav Usenko 2a1c9b9241 Fix for AppleClang 12 2021-11-21 18:54:13 +01:00
Vladyslav Usenko 227447e74c Fix for AppleClang 12 2021-11-21 18:53:43 +01:00
Vladyslav Usenko 08aab6bcde Fix for AppleClang 12 2021-11-21 18:51:55 +01:00
Vladyslav Usenko 05a6df43d6 Fixes for arm64 2021-11-21 18:27:34 +01:00
Nikolaus Demmel 5c32ac289e pangolin: silence clang-13 warnings 2021-11-11 21:21:11 +02:00
Vladyslav Usenko f95b4f4902 Update thirdparty/CMakeLists.txt, CMakeLists.txt 2021-11-11 15:30:15 +00:00
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
Nikolaus Demmel 447c1e01d2 silence warnings in 3rd party libs (pangolin, opengv, ros) 2020-06-24 12:18:38 +02:00
Vladyslav Usenko 1ee6ca8294 small changes in Cmake 2019-06-18 15:16:24 +02:00
Vladyslav Usenko 0e073978b9 Switched to HashBow instead of DBoW3 2019-06-07 12:42:18 +00:00
Vladyslav Usenko 647b9a06c6 Disable librealsense for Pangolin 2019-05-16 17:43:28 +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