Implementation of Iterative Closest Point and Trimmed Iterative Closest Point algorithms.
Initial, 10° rotation around the z axis to displace one of the LionScan pointclouds. |
Initial, 20° rotation around the z axis to displace one of the LionScan pointclouds. |
|
|
After using ICP to register the 2 LionScan pointclouds. (10°) |
After using TrICP to register the 2 LionScan pointclouds. (10°) |
|
|
After using ICP to register the 2 LionScan pointclouds. (20°) |
After using TrICP to register the 2 LionScan pointclouds. (20°) |
|
|
Angular rotation error = arccos((Tr(R'*Rgroundtruth) - 1) / 2)
Name |
Angular rotation error |
Translation MSE |
MSE |
Runtime |
ICP (10°) |
43.61895188360379° |
42.12371448351258 |
5.14622 |
33.2789 s |
TrICP (10°) |
12.074753762145663° |
5.3375604492657045 |
2.24015 |
10.1002 s |
ICP (20°) |
43.36017013541045° |
38.286774289962146 |
5.14622 |
34.7251 s |
TrICP (20°) |
18.911658794566836° |
5.331268631078188 |
4.55636 |
13.7501 s |
Initial, 10° rotation around the z axis to displace one of the fountain pointclouds. |
Initial, 20° rotation around the z axis to displace one of the fountain pointclouds. |
|
|
After using ICP to register the 2 fountain pointclouds. (10°) |
After using TrICP to register the 2 fountain pointclouds. (10°) |
|
|
After using ICP to register the 2 fountain pointclouds. (20°) |
After using TrICP to register the 2 fountain pointclouds. (20°) |
|
|
Angular rotation error = arccos((Tr(R'*Rgroundtruth) - 1) / 2)
Name |
Angular rotation error |
Translation MSE |
MSE |
Runtime |
ICP (10°) |
6.282617302451196° |
9.00814058823539 |
0.270625 |
24.8517 s |
TrICP (10°) |
11.218936278870313° |
0.06764219165830683 |
0.00709813 |
13.1458 s |
ICP (20°) |
26.351965024001462° |
59.101602791646876 |
0.251174 |
63.4932 s |
TrICP (20°) |
29.45099774151091° |
38.8969257815729 |
0.0238604 |
13.1965 s |
TrICP is more robust to rotations and to incomplete, noisy data.
TrICP runs faster than ICP and results in lower MSE values.