|
<!DOCTYPE html>
<html>
<head>
Hi Mathieu, I’m working on an iPhone Pro application that captures the environment using the phone’s camera, LiDAR, IMU, and an external GNSS-RTK antenna. The goal is to generate a geo-referenced 3D textured mesh and point cloud with high positional accuracy. Because our geo-location requirements are strict, we use an external RTK antenna that theoretically provides centimeter-level accuracy. I would like to integrate this GNSS-RTK data directly into RTAB-Map’s graph optimizer—not only to assist with loop closures, but also to anchor the reconstructed map in an absolute geo-referenced frame and improve the overall optimization. From what I understood, we add a new graph node with:
rtabmap::SensorData data(rgbImage, depthImage, id, timestamp);
rtabmap.process(data);
And then I attach the available IMU and GPS information:
data.setGPS(gps);
data.setIMU(imu);
Challenge: Sensor Rate Mismatch
Since each sensor has a different capture rate, the RGB, depth, IMU, and GNSS timestamps are not perfectly aligned.
If I simply attach the latest GNSS reading to each Solution 1: InterpolationOne approach would be:
Would this be an appropriate strategy, or unnecessarily complex? Solution 2: Adding GNSS Constraints ManuallyAnother option would be to add GNSS constraints directly into the graph:
Link link(fromId, toId, Link::kGlobalClosure, gpsPose, informationMatrix);
rtabmap.addLink(link);
My interpretation of the parameters:
This seems functionally similar to Solution 1, but allows more precise uncertainty modeling. Is this the recommended method? Graph Structure Question
From my understanding, each RTAB-Map node is tied to a Main QuestionIs this the correct way to integrate high-accuracy GNSS-RTK data into RTAB-Map’s optimization pipeline? Thanks a lot for your help, |
| Free forum by Nabble | Edit this page |
