i would like to calibrate 2 laser line scanners extrinsically, i.e. reference to each other. to achieve this, i scan a calibration object with both scanners at the same time by moving them over the object with a 3-axis portal. then i would like to merge 2 point clouds for each. I create the target point cloud with the help of the function sample_points_poisson_disk from a stl-file of a calibration object. the source point cloud is assembled from the scanned profile lines of a laser scanner. each profile line of the laser scanner is transformed with a different transformation matrix. the transformation matrices differ in the y-coordinate of the translation, because each laser line is assigned to a feed coordinate. i would like to use the function registration_icp, which requires the source and target point cloud as input parameters. i am looking for a possibility to pass a function as input parameter for the source point cloud, in which my point cloud is assembled from the individual laser lines via the encoder values of the portal.
If this is already possible with the current version of open3d, I would be very grateful for hints, otherwise I have to look for another solution.
Thanks a lot in advance.
At current there is no lambda function support for ICP, since these tasks are a little bit decoupled. I guess you need to finish it in another pass.