-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple Map Loading #146
Multiple Map Loading #146
Conversation
…ctor in additional graph + proper clang-format
create extra factor between both graphs to avoid indeterminant system exception
Hi @remco-r , Thanks a lot for your contribution! This is a huge improvement! I'll soon review the PR and give you feedback. |
Hi @remco-r , I tested this new feature on my side, and I successfully merged three dump files without problems --- IT IS AMAZING! While I found that the implementation is mostly fine, I added a few modifications to simplify the rekey process and improve optimization stability. Can you merge https://github.com/koide3/glim/tree/mmm into this branch? Then, I think the PR will be ready to be merged! The modifications I made are:
|
Hi @koide3, Thanks for the review. I like your updates, they simplify things. I cherry picked your commit, and added one commit on top where i removed one more obsolete thing. About the rekeying process. I had it like you've done it before, but i believed you cannot guarantee exactly two between factors per submap. Because i thought when you manually connect two frames in the offline_viewer, it also creates a between factor, so there may be an arbitrary amount of extra between factors in the graph that is loaded. However, i just did a small quick test, and it still worked, so maybe i understood it wrong.
|
I think it doesn't matter because
Yes,
Ah, I'll remove it later. I'm merging this PR into the main branch. |
This feature enables merging multiple maps in the offline viewer.
After the first global map is loaded, an additional map can be loaded into the existing GlobalMapping.
The state (factor id's) of the existing global_mapping will be checked, and the new Graph and Values will be added after rekeying.
At this stage two maps are loaded into the ISAM optimizer. Since these two maps are not connected, an indeterminant system error can be thrown. This is solved by adding a temporary between factor between the two graphs. It is up to the user to connect the two graphs afterwards in the viewer. Upon the next optimzation step, the temporary factor will be removed.
issues: