Robotics StackExchange | Archived questions

Multiple depth cameras, affine transform a point cloud?

I'm using ROS to combine two live point clouds from RealSense D415 depth cameras for a volumetric video capture system. So far I've successfully gotten multiple streams together in RViz using the tutorials provided here:

https://realsense.intel.com/how-to-multiple-camera-setup-with-ros/

I can rough out an alignment, but it's not easy or accurate.

I've been able to find a good workflow in MeshLab to determine the depth cameras' relative location to each other using static PLYs. One mesh serves as the Fixed Frame, and using the Align tool in MeshLab I can determine the other's transformation and coordinates as a 4x4 matrix that contains a vector and a 3x3 transformation matrix. However, I can't seem to figure out how to best apply the affine transform as a tf command in ROS.

Is there something as easy as the static transform publisher, but for affine transforms? To properly align the point cloud I'd need more than just coordinates and rotation, but also scale, shear which don't appear to be supported by tf. Once I know my alignment, I only need to apply the transform once.

Any other suggestions on how to best align two point clouds in a decently accurate way?

Asked by knarx on 2019-02-09 04:47:09 UTC

Comments

This is a typical multi-camera extrinsic calibration task. Personally I would do that, then all pointclouds will align automatically, as the cameras have been calibrated against each other.

There are multiple pkgs available that can do that for you.

Asked by gvdhoorn on 2019-02-09 12:13:04 UTC

Thanks! Any recomendations for specific packages? I'm looking for a more ICP approach to gain the extrinsic values since aligning the point clouds will be more accurate. The rgbd_registration package (http://wiki.ros.org/rgbd_registration) would have worked perfect but is depreciated.

Asked by knarx on 2019-02-09 22:34:58 UTC

Don't know about ICP based approaches.

re: rgbd_registration: found a fork here. You'll have to port it a bit though.

Asked by gvdhoorn on 2019-02-10 15:16:23 UTC

As to mutli-camera extrinsing calibration, you could take a look at kalibr.

I'm not an expert, just noticed the type of job you're trying to do.

Asked by gvdhoorn on 2019-02-10 15:17:55 UTC

Answers