Point Cloud Library, registro robusto de dos nubes de puntos

Necesito encontrar la diferencia de transformación y rotación entre dos nubes de puntos 3d. Para esto estoy mirando PCL, ya que parece ideal.

En datos de prueba limpios, tengo el punto iterativo más cercano trabajando, pero dando resultados extraños (aunque puede que lo haya implementado incorrectamente ...) Tengopcl::estimateRigidTransformation funciona, y parece mejor, aunque supongo que tratará peor con datos ruidosos.

Mi pregunta es:

Las dos nubes serán ruidosas, y aunque deben contener los mismos puntos, habrá algunas discrepancias. ¿Cuál es la mejor manera de lidiar con esto?

¿Debería encontrar las características correspondientes en las dos nubes para comenzar y ENTONCES usarestimateTransform? ¿O debería mirar unRANSAC función para eliminar valores atípicos? EsICP una mejor manera de ir queestimateRigidTransform?