Skip to content

Fix Ceres residuals conflict with LV's

Nicolas Cadart requested to merge fix/CeresCostFunctionsConflictWithLV into master

Strangely, when the SLAM is compiled within LV, some of the cost functions used are LV's, and not SLAM's. It's even more tricky : the constructor of these residuals could be the one implemented in SLAM, but the operator() was the one defined in LV. Since !66 (merged), the cost functions are not compatible with LV's, so in these cases, SLAM completely failed.

To ensure that the correct residuals implementations are used, the namespace have been changed so that the symbols differ.

This also add the missing include into the CMakeList to properly export headers. Strangely, the project could already compile without declaring this include header.

This MR also cleans the CeresCostFunctions.h file, that originally comes from LidarView code base. Most of the residuals defined in this file are not used in the SLAM, but only in LV. This MR removes them for more clarity and less maintenance.

@nick.laurenson @julia.sanchez @lea.vauchier PTAL

Merge request reports