Fixing 4.3.1-ros gtsam compatibility (#1783)

* Fixing 4.3.1-ros gtsam compatibility

* javobian fix in SwitchVariable

* Fix GTSAM scalar switch traits, Jacobians and attitude API detection

* Separate sigmoid factor correction from GTSAM compatibility

* Correct sigmoid switch Jacobian and add focused factor regression

* combined gtsam tests in same file

* cmake refactor

---------

Co-authored-by: Frank Dellaert <[email protected]>
This commit is contained in:
matlabbe
2026-09-30 21:03:04 -07:00
committed by GitHub
co-authored by Frank Dellaert
parent 0f98c63e9d
commit 0156bc22ed
8 changed files with 352 additions and 74 deletions
+11
View File
@@ -68,9 +68,20 @@ set(corelib_test_sources
test_sensorcapturethread.cpp #SensorCaptureThread.h
)
# test_optimizer_gtsam.cpp includes the Vertigo GTSAM factors from
# corelib/src/optimizer directly, so it needs GTSAM itself (rtabmap_core links
# it PRIVATE).
IF(GTSAM_FOUND)
list(APPEND corelib_test_sources test_optimizer_gtsam.cpp) #OptimizerGTSAM.h (Vertigo factors, gravity)
ENDIF(GTSAM_FOUND)
add_executable(test_corelib ${corelib_test_sources})
target_link_libraries(test_corelib gtest_main rtabmap_core)
IF(GTSAM_FOUND)
target_link_libraries(test_corelib gtsam)
ENDIF(GTSAM_FOUND)
# test_registrationicp.cpp includes corelib/src/icp/libpointmatcher.h directly
# to test the LaserScan <-> DataPoints conversions, so it needs the library
# itself (rtabmap_core links it PRIVATE and only re-exports its include dirs).