Skip to content

Latest commit

 

History

History
48 lines (36 loc) · 4 KB

README.md

File metadata and controls

48 lines (36 loc) · 4 KB

ICP and TrICP

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.