Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8916077
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 15, 20262026-06-15T05:08:34+00:00 2026-06-15T05:08:34+00:00

So I have an iterative closest point (ICP) algorithm that has been written and

  • 0

So I have an iterative closest point (ICP) algorithm that has been written and will fit a model to a point cloud. As a quick tutorial for those not in the know ICP is a simple algorithm that fits points to a model ultimately providing a homogeneous transform matrix between the model and points.

Here is a quick picture tutorial.

Step 1. Find the closest point in the model set to your data set:

Step 2: Using a bunch of fun maths (sometimes based on gradiant descent or SVD) pull the clouds closer together and repeat untill a pose is formed:

![Figure 2][2]

Now that bit is simple and working, what i would like help with is:
How do I tell if the pose that I have is a good one?

So currently I have two ideas, but they are kind of hacky:

  1. How many points are in the ICP Algorithm. Ie, if I am fitting to almost no points, I assume that the pose will be bad:

    But what if the pose is actually good? It could be, even with few points. I dont want to reject good poses:

Figure 5

So what we see here is that low points can actually make a very good position if they are in the right place.

So the other metric investigated was the ratio of the supplied points to the used points. Here’s an example

Figure 6

Now we exlude points that are too far away because they will be outliers, now this means we need a good starting position for the ICP to work, but i am ok with that. Now in the above example the assurance will say NO, this is a bad pose, and it would be right because the ratio of points vs points included is:

2/11 < SOME_THRESHOLD

So thats good, but it will fail in the case shown above where the triangle is upside down. It will say that the upside down triangle is good because all of the points are used by ICP.

You don’t need to be an expert on ICP to answer this question, i am looking for good ideas. Using knowledge of the points how can we classify whether it is a good pose solution or not?

Using both of these solutions together in tandem is a good suggestion but its a pretty lame solution if you ask me, very dumb to just threshold it.

What are some good ideas for how to do this?

PS. If you want to add some code, please go for it. I am working in c++.

PPS. Someone help me with tagging this question I am not sure where it should fall.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-15T05:08:36+00:00Added an answer on June 15, 2026 at 5:08 am

    One possible approach might be comparing poses by their shapes and their orientation.

    Shapes comparison can be done with Hausdorff distance up to isometry, that is poses are of the same shape if

    d(I(actual_pose), calculated_pose) < d_threshold
    

    where d_threshold should be found from experiments. As isometric modifications of X I would consider rotations by different angles – seems to be sufficient in this case.

    Is poses have the same shape, we should compare their orientation. To compare orientation we could use somewhat simplified Freksa model. For each pose we should calculate values

    {x_y min, x_y max, x_z min, x_z max, y_z min, y_z max}
    

    and then make sure that each difference between corresponding values for poses does not break another_threshold, derived from experiments as well.

    Hopefully this makes some sense, or at least you can draw something useful for your purpose from this.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have been working lately on a number of iterative algorithms in MATLAB, and
I have an iterative function, phi, that calls itself many times to return the
I have an algorithm problem that I came across at work but have not
I have a bipartite graph and I'm looking for the most efficient iterative way
I have a point class like: class Point { public: int x, y; Point(int
I have a loop that opens a socket, acts on the socket, then closes
I have a table that consists of comments. Some of them are replies to
I currently have an array data structure that I iterate over like this, calling
I have an AngularJS app that returns a list of json objects and I
I have a Hashtable that contains numerous EventLog objects. In my FormClosed event, I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.