1. A method for tracking a pose of a camera by registering data using a set of primitives, wherein the data have three dimensions (3D) and the primitives include points and planes, comprising steps of: acquiring the data as a sequence of frames by the camera, wherein the camera is a red, green, blue and depth (RGB-D) camera and the camera is movable, wherein for each acquired frame the method comprises: predicting a current pose of the camera acquiring a current frame using a previous pose of the camera and a model of a motion of the camera; determining a transformation between a first coordinate system and a second coordinate system of the camera in the current pose; transforming landmarks in the first coordinate system into the second coordinate system using the transformation, wherein the landmarks include at least three primitives and at least one plane; determining landmarks in the current frame in the second coordinate system; determining a correspondence between the landmarks determined in the second coordinate system and the landmarks transformed from the first coordinate system; and registering the second coordinate system with the first coordinate system by updating the transformation according to the determined correspondence; and tracking the pose of the camera according to the registering, wherein the steps are performed in a processor.