Point to Line Iterative Closest Point¶
Iterative Closest Point aims to align two point clouds \(P\) and \(Q\) by finding a rigid-body transformation \((R, t)\) applied to point cloud \(P\) and iteratively minimizes the error metric. Point to Point distance of vanilla ICP [1] uses Euclidean distance between correspondences points. Point to Line Iterative Closest Point (PLICP) is a variant of ICP with a difference in error metric. PLICP computes error metric by projecting distances of correspondence points to the normal vector of the target point cloud [2]. PLICP can be solved by an optimization process such as Gauss-Newton and Levenberg-Marquardt methods [3, 4].
Error Metric¶
The error metric of PLICP is expressed by:
where :
- State \(\mathbf{x}(x, y, \theta)\) : Coordinates and rotation angle
- Rotation matrix (\(R\)) : Rotation matrix obtained from correspondences
- Translation vector (\(\mathbf{t}\)) : Translation vector obtained from correspondences
- Source point cloud (\(p\)) : Source point cloud
- Target point cloud (\(q\)) : Target point cloud
- Normals vector of target point cloud (\(n_q\)) : Normals vector of the target point cloud
Left terms in the bracket of Eq. (1) describe the distance of correspondence point in the transformed source point to target point. The right terms describes projecting the distance to normals of target point.
Solution by Optimization¶
We can minimize \(E(\mathbf{x})\) by using optimization process. Minimizing \(E(\mathbf{x})\) needs to compute Gradient and Hessian matrix of \(E(\mathbf{x})\) at any parameters [4]. Given current initial guess \(\breve{\mathbf{x}}\) and perturbation of \(\mathbf{x}\) donated by \(\Delta\mathbf{x}\).
Let \(e_{i}(\mathbf{x})=\left(\boldsymbol{R}(\mathbf{x}_{\theta})p_{i}+t( \mathbf{x}_{x},\mathbf{x}_{y})-q_{i}\right)\cdot n_{q,i}\),
Thus, optimal parameters \(\mathbf{x}^{*}\) expressed by :
Eq. (2) can be approximated by using first-order Taylor expansion current initial guess \(\breve{\mathbf{x}}\) [5, 6].
Substitute Eq. (5) to \(e_i\) in Eq. (2),
Rewrite error metric in Eq. (2) with Eq. (7) by using the same method in [13].
Thus, we can obtain \(\Delta\mathbf{x}^*\) by solving linear system
Optimal rigid-body transformation \(\mathbf{x}^*\) can be obtained by adding an initial guess \(\breve{\mathbf{x}}\) to computed perturbation \(\Delta\mathbf{x}^*\).
In Eq. (13), \(\mathbf{J}\) is a Jacobian of \(e_i(\mathbf{x})\) and \(\mathbf{I}\) is an identity matrix. Jacobian of \(e_i(\mathbf{x})\) expressed by taking partial derivatives of \(e_i(\mathbf{x})\) w.r.t parameters \(\mathbf{x}\):
References¶
[1] Method for registration of 3-D shapes
[2] Object modeling by registration of multiple range images
[5] Robust registration of 2D and 3D point sets
[6] SLAM using ICP and graph optimization considering physical properties of environment