This bit is easy, the centroids are just the average of the points and can be calculated as follows:Īnd are 3×1 vectors eg. Bring both dataset to the origin then find the optimal rotation R.R is a 3×3 rotation matrix and t is the translation vector (technically matrix Nx3).įinding the optimal rigid transformation matrix can be broken down into the following steps: Where A and B are sets of 3D points with known correspondences. If the data is noisy it will minimize the least squares error A minimum of 3 unique points is required for a unique solution. The solution presented will work with both noise free and noisy data. This problem arises especially in tasks like 3D point cloud data registration, where the data is obtained from hardware like a 3D laser scanner or the popular Kinect device. This is in contrast to an affine transform, which includes scaling and shearing. This transformation is sometimes called the Euclidean or Rigid transform, because it preserves the shape and size. Here, ‘optimal’ or ‘best’ is in terms of least square errors. We want to find the best rotation and translation that will align the points in dataset A to dataset B. The corresponding points have the same colour, R is the rotation and t is the translation. An illustration of the problem is shown below for the simplest case of 3 corresponding points (the minimum required points to solve). Finding the optimal/best rotation and translation between two sets of corresponding 3D point data, so that they are aligned/registered, is a common problem I come across.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |