On Tue, Sep 25, 2012 at 3:44 AM, Hauke Heibel
<hauke.heibel@xxxxxxxxx> wrote:
Hi Radu,
it seems as if I never properly tested the case c=1. The unit tests
test for random c>=0.
I looked at the code and what you say makes sense. I pushed a fix
though I did not find the time to test it and hope that I did not
brake anything.
Regards,
Hauke
On Mon, Sep 24, 2012 at 9:34 PM, Radu B. Rusu <radu.b.rusu@xxxxxxxxx> wrote:
> Maybe to make a correction: the math does look good (i.e., properly
> implemented as in the original paper), however the values that we obtain for
> the translation are all off. Looking at our own implementation (and a few
> other implementations around the web), we calculate the translation simply
> by: t = u_y - R * u_x, so without multiplying with the c Scalar.
>
> Did anyone perform any regression tests on ground truth data to see how it
> performs (with and without (42) as in the Umeyama paper)?
>
> Thanks.
>
> Cheers,
> Radu.
> --
> http://openperception.org
>
>
> On 09/24/2012 12:23 PM, Radu B. Rusu wrote:
>>
>> I noticed a small discrepancy between the documentation for Umeyama and
>> the actual implementation, and I was wondering
>> if this is a bug.
>>
>>
>> http://eigen.tuxfamily.org/dox/group__Geometry__Module.html#gab3f5a82a24490b936f8694cf8fef8e60
>> states "with_scaling
>> Sets c=1 when false is passed." However, looking at
>> http://eigen.tuxfamily.org/dox/Umeyama_8h_source.html, I see:
>>
>> 00157 const Scalar c = 1/src_var * svd.singularValues().dot(S);
>>
>> which is then applied to the translation component. In our tests, this led
>> to a bad translation while the rotation was
>> correct when with_scaling was set to false.
>>
>> Thanks,
>> Radu.
>> --
>> http://openperception.org
>
>
>