From 78d423b818384858226ce889989dad054ffcf666 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Sat, 19 Sep 2026 16:20:40 -0700 Subject: [PATCH] Odom: support features-only frames --- corelib/src/Odometry.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/corelib/src/Odometry.cpp b/corelib/src/Odometry.cpp index ebcd1db1..dd9b35b4 100644 --- a/corelib/src/Odometry.cpp +++ b/corelib/src/Odometry.cpp @@ -817,7 +817,14 @@ Transform Odometry::process(SensorData & data, const Transform & guessIn, Odomet } } } - else if(!data.imageRaw().empty() || !data.laserScanRaw().isEmpty() || (this->canProcessAsyncIMU() && !data.imu().empty())) + // A frame that brings its own features carries no image, and a frame whose scene was + // empty carries no feature either, so neither says whether there is a frame at all. + // The calibration does: it is there when a camera produced this data. + else if(!data.imageRaw().empty() || + !data.cameraModels().empty() || + !data.stereoCameraModels().empty() || + !data.laserScanRaw().isEmpty() || + (this->canProcessAsyncIMU() && !data.imu().empty())) { t = this->computeTransform(data, guess, info); }