1. A method for registering data using a set of primitives, wherein the data have three dimensions (3D) and the primitives include points and planes, comprising the steps of: selecting a first set of primitives from the data in a first coordinate system, wherein the first set of primitives includes at least three primitives and at least one plane; predicting a transformation from the first coordinate system to a second coordinate system; transforming the first set of primitives to the second coordinate system using the transformation; determining a second set of primitives according to the first set of primitives transformed to the second coordinate system; and registering the second coordinate system with the first coordinate system using the first set of primitives in the first coordinate system and the second set of primitives in the second coordinate system corresponding to each other, wherein the steps are performed in a processor.