0
votes

I have followed the following tutorial:

http://pointclouds.org/documentation/tutorials/correspondence_grouping.php

In an effort to estimate the pose of an object in a scene. I have successfully got that tutorial working for both the sample point clouds as well as my own point clouds (after adjusting some parameters).

The person who wrote the tutorial had the following to say:

The recognize method returns a vector of Eigen::Matrix4f representing a transformation (rotation + translation) for each instance of the model found in the scene (obtained via Absolute Orientation)

I get this transformation matrix, but I do not understand what the values are in reference to.

For example, the same tutorial page has the following output:

    |  0.969 -0.120  0.217 |
R = |  0.117  0.993  0.026 |
    | -0.218 -0.000  0.976 |
t = < -0.159, 0.212, -0.042 >

While I understand that these values represent the rotation and translation of each model found in the scene - what are these values using as a reference point and how can they be used?

For example, if I wanted to place another model on top of the identified model, is it possible to use those values to localize the identified model? Or if I had a robot that wanted to interact with the model, could these values be used by the robot to infer where the object is in the scene?

The correspondence grouping method requires two parameters - a scene and a model. My current assumption is that the algorithm says "I found this model in the scene, now what transformation do I need to apply to the model to make it align with the scene?". Since the model was extracted from the scene, after the algorithm found the model in the scene, it determines what transformation needs to be applied. But since the model was extracted directly from the scene, very little transformation needs to be applied.

Could anyone provide some insight into these values?

1

1 Answers

0
votes

OK, I believe I have verified my theory. I took a second image of the scene with the model moved to the left by about 1 meter. I extracted that model and used it as an input to the correspondence grouping. The translation matrix translates the object on the X axis by significantly more than the original object. This confirms to me that the transformation matrix that is printing is the transformation from the supplied object to the instance of the object recognized in the scene.