Skip to content
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

How to force scan matcher to match all points #71

Open
mehditlili opened this issue Jul 29, 2021 · 1 comment
Open

How to force scan matcher to match all points #71

mehditlili opened this issue Jul 29, 2021 · 1 comment

Comments

@mehditlili
Copy link

mehditlili commented Jul 29, 2021

In the case shown in the image below, I couldn't find a way to make the scan matcher give me a correct relative pose between the two scans (Reference scan shown in red here, lidar scan from the robot shown in yellow). What I think happens is that there are so many coplanar points corresponding to the walls on the left and right of the robot that they lead icp to ignore the few points portruding (points that are very relevant to estimating the x offset). The relative offset in y direction is always precise, but in x direction, as long as both scans have an offset of 10cm or more, the scan matcher fails. I tried tweaking some parameters to no avail. Any hints?

What I am trying to achieve is using the laser scan matcher class in order to estimate the robot pose relative to a reference pose based on the lidar scan observed on that reference pose. Vanilla ICP might be enough for this but I couldn't find a better implementation than laser_scan_matcher that is already integrated in the ROS framework.

forceicp

@Nosille
Copy link

Nosille commented Oct 26, 2021

First, I am not involved with laser scan matcher, but I saw you post and have also had this problem. I can say it is not unique to laser scan matcher. It is a general problem with icp implementations. Basically, icp is a gradient decent process. Once shifting the point cloud a small increment does not result in improvements in the quality of the match, it declares the match as best fit, and finishes. The only real solution within ICP is a closer initial guess.

Do you have options to provide/improve the input for an initial guess? Can you perform the icp matches more often, i.e., before it has shifted so much?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants