Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

Hello, what I understand is that the final result of the Mapclosure algorithm is the possible loop graph index, and then I can get a pair of optimal loop indexes based on the number of interior points. I can think that these two local maps contain the same robot return. The pose point of the position, but how can I determine which point is the same position? The mapclosure algorithm is a loop closure between local maps, and the scancontext is a loop closure detection between individual frames. Later, I need to compare these two algorithms and compare mapclousre How does the algorithm loopback work? One is a local graph and the other is a single frame. How do you compare them? #33

Closed
LL884800 opened this issue Sep 2, 2024 · 5 comments
Labels
question Further information is requested

Comments

@LL884800
Copy link

LL884800 commented Sep 2, 2024

Hello, I want to know how I can be sure that the loop diagram is obtained by using this algorithm. Then how can I be sure that the robot has returned to its original position? If I only get the loop diagram, how can I compare it with the scan context? After all, scan context It is possible to obtain the specific pose of the robot when it returns to its original position.

@saurabh1002
Copy link
Collaborator

Hello @LL884800, thanks for showing interest in our work.
To begin with, I am not exactly sure what you mean by a "loop diagram". It would be great if you can elaborate a bit further!

Secondly, a one-to-one comparison with ScanContext is not possible since the two approaches are different in the way they process data. ScanContext works on individual scans, whereas we work on local maps generated from registered scans within a certain distance. So each local map contains multiple individual scans.

As a result the start position of the robot and certain number of subsequent scans are contained within the first local map. To figure out if you are revisiting the start location, you can check for the local map index of the loop closures obtained, whether the reference index is 0 or not.

The following image shows how we save the closure information in out pipeline.py:
image

The relative pose we provide is between the first scans in the source and the target local maps respectively. This is because each local map is in the local reference frame of the first scan it contains.

@saurabh1002
Copy link
Collaborator

You can check out #24 to see how we integrate the detected closures between local maps to perform a pose-graph optimization. This PR will be soon merged with the main branch.

@LL884800 LL884800 changed the title Hello, I want to know how I can be sure that the loop diagram is obtained by using this algorithm. Then how can I be sure that the robot has returned to its original position? If I only get the loop diagram, how can I compare it with the scan context? After all, scan context It is possible to obtain the specific pose of the robot when it returns to its original position. Hello, what I understand is that the final result of the Mapclosure algorithm is the possible loop graph index, and then I can get a pair of optimal loop indexes based on the number of interior points. I can think that these two local maps contain the same robot return. The pose point of the position, but how can I determine which point is the same position? The mapclosure algorithm is a loop closure between local maps, and the scancontext is a loop closure detection between individual frames. Later, I need to compare these two algorithms and compare mapclousre How does the algorithm loopback work? One is a local graph and the other is a single frame. How do you compare them? Sep 3, 2024
@saurabh1002
Copy link
Collaborator

Hey, it would be great if you can add comments to this issue rather than editing the title of the issue in reply.

@saurabh1002
Copy link
Collaborator

You can find the way we compute scan-level closure indices from the map-level closures in tools/evaluation.py and is also mentioned in the paper. We use the provided script to compute scan-level closures to compare with scan context, through the Precion Recall and F1 score.

@LL884800
Copy link
Author

LL884800 commented Sep 3, 2024

Hello, my understanding is that the final result of the map closure algorithm is a possible loop graph index, and then an optimal loop index can be obtained based on the number of interior points. I can think that these two local maps contain the posture of the robot looping at the same position. points, but how can I determine which point is the same location? What I want to know here is how I determine which point is considered to have returned to the same position. The map closure algorithm is the loop closure between local maps, while the scanning context is the loop closure detection between single frames. I need to compare these two algorithms later. Compare how mapclousre algorithm loopback is performed? One is a partial image and the other is a single frame. How do they compare?

@PRBonn PRBonn locked and limited conversation to collaborators Sep 3, 2024
@saurabh1002 saurabh1002 converted this issue into discussion #37 Sep 3, 2024
@saurabh1002 saurabh1002 added the question Further information is requested label Oct 18, 2024

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants