<p>Without having access to sample data, is kind of hard to recommend you a specific registration algorithm.</p>

<p>However, I'm pretty exicted nowdays about all the new "data-driven" registration approaches.</p>

<p>From my personal experience, I'm having awesome registration results using the approach of this recent paper:</p>

<p><a href="https://arxiv.org/abs/1603.08182" rel="nofollow noreferrer">https://arxiv.org/abs/1603.08182</a></p>

<p>Wich has source code avaliable here:</p>

<p><a href="https://github.com/andyzeng/3dmatch-toolbox" rel="nofollow noreferrer">https://github.com/andyzeng/3dmatch-toolbox</a></p>

<p>As reported in the paper, it outperforms pcl-descriptor based registration approaches and I think that it may be suitable for your needs.</p>
Set-to-Subset point cloud matching
<p>I have two point clouds, in 3d coordinates. One is a subset of the other, containing many less points. They are in the same scale.</p>

<p>What i need to do is find the translation and rotation between the two. I have looked at Point cloud Library, <a href="https://en.wikipedia.org/wiki/Iterative_closest_point" rel="nofollow noreferrer">"Iterative closest point"</a>, and <a href="https://github.com/gadomski/cpd" rel="nofollow noreferrer">Coherent Point Drift</a>, but these matching approaches both seem to expect the two point sets to contain mostly the same points, not have one be a smaller, subset of the other. </p>

<p>Can i use either of these, with adjustments? Or is there another algorithm to match a subset point cloud to a set?</p>

<p>Thank you.</p>