Point Cloud Library
pointclouds.org
pointclouds.org
Once you get to a certain point some issues start becoming prominent:
* It is quite bloated and pulls in huge dependencies such as VTK
* Many algorithms are quite unoptimized, for example the NDT registration is rather slow and inaccurate. Some recent, leaner implementations of KD Trees, such as nanoflann and libNABO may also be faster than the FLANN implementation that PCL uses.
* PCL is an old library and has some evolutionary vestiges such as relying on Boost pointers rather than using shared pointers and unique pointers recommended by modern ISO C++
Meanwhile, for some applications, storing a point cloud as a "struct of vectors" can be faster than a "vector of structs" when using SIMD operations due to coalesced memory access. i.e.
struct PointCloud { Eigen::ArrayXdf x, y, z; };
may be better than struct Point { float x, y, z, c; }; using PointCloud = std::vector<Point>;
Oh well, at least PCL doesn't try to roll its own linear algebra (like OpenCV lol).If the goal is generating point cloud, the Azure Kinect's better rgb sensor could be good to have, where-as lidar's advantage- higher throughput depth sampling (faster or higher res)- isn't going to mean as much, probably? Additionally, the accelerometer/gyroscope on the Kinect could potentially be quite useful for registration (figuring out how the camera is pointed).
The iPhone costs more than $500, but you can also use if for other stuff.
And, shameless plug: If you need a software to turn the RGB-D streams into stitched point clouds, check out Dot3D by DotProduct (disclaimer: I'm the founder).
The tutorial image [1] seems very similar to the icon in Ikea's build instructions [2], that might be worth investigating to avoid problems.
[1]: https://pointclouds.org/assets/images/tutorials.png
[2]: https://www.google.com/search?q=ikea+man+instructions&prmd=i...