CI coverage: adding g2o, gtsam, ceres and libpointmatcher. (#1743)

* CI coverage: adding g2o, gtsam, ceres and libpointmatcher. Also fetch test data for integration tests.

* ld

* Increasing ci test timeout for coverage

* Fixed tests when vertigo is not there

* verbose tests

* updating flaky test

* faster coverage by extending unit tests and disable integration test (only for coverage report)

* improving coverage of unit tests in comparison to integrations tests

* fixing not covered new lines
This commit is contained in:
matlabbe
2026-08-08 23:47:48 -07:00
committed by GitHub
parent 2e193ee191
commit 338e142e58
18 changed files with 1212 additions and 75 deletions
+8
View File
@@ -4669,6 +4669,14 @@ void DBDriverSqlite3::saveQuery(const std::list<Signature *> & signatures)
for(std::list<Signature *>::const_iterator i=signatures.begin(); i!=signatures.end(); ++i)
{
if(((*i)->sensorData().imageCompressed().empty() && !(*i)->sensorData().imageRaw().empty()) ||
((*i)->sensorData().depthOrRightCompressed().empty() && !(*i)->sensorData().depthOrRightRaw().empty()) ||
((*i)->sensorData().laserScanCompressed().isEmpty() && !(*i)->sensorData().laserScanRaw().isEmpty()))
{
UWARN("Node %d carries raw sensor data but no compressed data. Only compressed "
"buffers are saved, so that payload will be empty in the database. Compress "
"it first (see compressImage2() / compressData2()).", (*i)->id());
}
if(!(*i)->sensorData().imageCompressed().empty() ||
!(*i)->sensorData().depthOrRightCompressed().empty() ||
!(*i)->sensorData().depthConfidenceCompressed().empty() ||
+12 -1
View File
@@ -3850,7 +3850,12 @@ Transform Memory::computeIcpTransformMulti(
guessNorm > fromScan.rangeMax() + toScan.rangeMax())
{
// stop right known,it is impossible that scans overlay.
UINFO("Too far scans between %d and %d to compute transformation: guessNorm=%f, scan range from=%f to=%f", fromId, toId, guessNorm, fromScan.rangeMax(), toScan.rangeMax());
const std::string rejected = uFormat("Too far scans between %d and %d to compute transformation: guessNorm=%f, scan range from=%f to=%f", fromId, toId, guessNorm, fromScan.rangeMax(), toScan.rangeMax());
UINFO("%s", rejected.c_str());
if(info)
{
info->rejectedMsg = rejected;
}
return t;
}
@@ -3989,6 +3994,12 @@ Transform Memory::computeIcpTransformMulti(
t = t.inverse();
}
}
else if(info)
{
info->rejectedMsg = uFormat("Node %d (scan %s) or %d (scan %s) has no laser scan, cannot compute ICP transform.",
fromId, fromScan.isEmpty()?"empty":"ok",
toId, toScan.isEmpty()?"empty":"ok");
}
return t;
}