cartographer-project / cartographer

Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
Apache License 2.0
7.12k stars 2.25k forks source link

Cartographer is effectively GPL because of Ceres -> SuiteSparse dependency #1939

Open ojura opened 10 months ago

ojura commented 10 months ago

In https://github.com/cartographer-project/cartographer/issues/971, the following was noticed:

When libsuitesparse-dev is not installed, (Ceres) optimization will take >100 times longer.
It would nice to warn about this.

Building Cartographer was then switched to require Ceres with SuiteSparse in https://github.com/cartographer-project/cartographer/pull/189.

However, a component of SuiteSparse, CHOLMOD/Supernodal, is licensed under GPL. Effectively, this turn Ceres, Cartographer and all other software that builds upon it to be GPL licensed.

More information in: https://github.com/ceres-solver/ceres-solver/issues/1026

In order for Cartographer to be GPL-free, Ceres either needs to use a GPL-free sparse linear algebra backend (as described in https://github.com/ceres-solver/ceres-solver/issues/1026); or Cartographer needs to be switched to another solver for solving the pose graph optimization problem.

The Ceres scan matcher in LocalTrajectoryBuilder is fine; it does not need a sparse solver. The OptimizationProblem in PoseGraph needs a sparse solver.

bufeng-12 commented 10 months ago

您好!我已收到你的邮件!谢谢!          ——曾君