Add Ceres sparse linear algebra library dependency (#189)

Ceres can be built without linking against a sparse linear algebra library
such as SuiteSparse or Eigen-sparse. This can happen if the user does not
have all the dependencies, which normally get installed when following
the Cartographer installation guide. In this case, Cartographer will
work, but without loop closures, because Ceres is not working fast enough
(the loop closure optimization without a sparse linear algebra library
is a few orders of magnitude slower). Another bad side effect of this is
that Cartographer will hang when finalizing the trajectory or on exit,
because all loop closing optimizations will be waiting in a queue which
can take hours to process.

When Ceres is regularly built against a sparse linear algebra library, as it
is supposed to be, it declares a component named SparseLinearAlgebraLibrary.
Because normal functioning of Cartographer seemingly depends on this being
present, it is introduced here in Cartographer as a required Ceres component
dependency.
master
Juraj Oršulić 2017-01-26 11:14:58 +01:00 committed by Holger Rapp
parent 965caf7470
commit f047ad35c1
1 changed files with 1 additions and 1 deletions

View File

@ -27,7 +27,7 @@ google_initialize_cartographer_project()
google_enable_testing() google_enable_testing()
find_package(Boost REQUIRED COMPONENTS iostreams) find_package(Boost REQUIRED COMPONENTS iostreams)
find_package(Ceres REQUIRED) find_package(Ceres REQUIRED COMPONENTS SparseLinearAlgebraLibrary)
find_package(Eigen3 REQUIRED) find_package(Eigen3 REQUIRED)
find_package(LuaGoogle REQUIRED) find_package(LuaGoogle REQUIRED)
find_package(Protobuf REQUIRED) find_package(Protobuf REQUIRED)