We've got a mobile platform with a source of odometry and an IMU, which are merged in an EKF filter (robot_localization node), producing continuous odom->base_link transform. The robot is also equipped with a lidar, that we use for SLAM. Now, since the robot's pose estimate coming from SLAM has a known covariance, I used a second EKF, merging the odometry, IMU and SLAM pose and producing the map->odom transform. As you can see, I followed the standard approach to use two EKFs, where the first one is merging continuous data and the second all data.
From what I understood, the pose coming from SLAM is not continuous (similary to GPS signal). On the other hand, I noticed that visual odometry is usually considered continuous, thus only one EKF is used. However, the map->odom transform is not static, so the second EKF looks like a good way to update it dynamically.
If we stick with two separate EKFs as mentioned in the beginning, what are the state of the art techniques to take into account the quality of previous position estimates? For example, if the robot starts at a docking station, the initial position is well known and shouldn't be too much affected by the map->odom transform. Or if the initial position has a large covariance, then the ongoing computation could actually improve it.
Thanks for any suggestion or links to articles regarding this topic.