Hi, I'd like to confirm whether the pose graph structure in the attached diagram is correct for multi-sensor fusion system using GTSAM. Here’s a summary of what I’ve modeled:
Green circles (GT_0, GT_1, GT_2) represent the estimated robot poses (LiDAR frame).
Magenta triangles represent visual odometry poses, connected with BetweenFactors.
Blue ellipses are IMUFactors between adjacent LiDAR poses.
Gray squares are BetweenFactors representing LiDAR odometry between consecutive poses.
Yellow diamond is a PriorFactor on the initial pose GT_0.
All measurements (LiDAR odometry, visual odometry, and IMU preintegration) contribute to refining the trajectory of the GT_i poses.
Does this structure correctly reflect best practices for fusing LiDAR, visual, and IMU data in a factor graph?
Additional Questions:
Should I transform the visual odometry frame into the LiDAR frame before adding it to the factor graph?
Currently, the visual odometry poses are connected to the same trajectory nodes (GT_i) as the LiDAR poses via BetweenFactors. Should I first transform visual odometry into the LiDAR frame using a known extrinsic calibration (e.g., T_lidar_visual) before creating those factors?
Should I periodically add a LiDAR pose as a PriorFactor to prevent drift accumulation?
Right now, I only have a single PriorFactor on GT_0. In practice, would it help with long-term consistency to anchor some later LiDAR poses with weaker PriorFactors, or is that unnecessary when using tightly integrated IMU factors?
Any suggestions for improvement or error correction would be greatly appreciated!