Talking with PCL founder Radu Rusu on the release of PCL 1.4.0
MENLO PARK, Calif. – As point cloud processing software packages are released, they inevitably feature a handful (or all) of abilities like point cloud filtering, feature estimation, surface reconstruction, registration, model fitting and segmentation. Essentially, they take the raw point cloud data and help you make sense of it, attach intelligence to it, and be able to more easily use it to solve problems and make business decisions.
But did you know there’s an open source library of algorithms that perform these functions, on which software developers can freely draw?
The Point Cloud Library launched officially in March of 2011, has just released PCL 1.4.0 this week and it’s got all manner of enhancements that will likely only make sense to hard-core coders. For instance, the “most notable” change is this: “changed the default on the order of data in all Eigen matrices to be row major -DEIGEN_DEFAULT_TO_ROW_MAJOR (Eigen defaults to column major). Be careful if your code was using 1D index operators, as they might be broken!”
This reporter will admit most of the updates might as well be in Greek.
However, the effort is important enough that engineers and scientists from around the world are contributing to the library’s coding, including folks from Carnegie Mellon, Intel, Australian National University, Brown University, MIT – the list is long. The organization also receives funding from the likes of Google, Toyota, Trimble, NVidia, and Urban Robotics.
PCL even recently was awarded first prize in the Open Source Software World Challenge by South Korea’s Ministry of Knowledge and Economy.
The organization’s genesis began with Radu Rusu’s hire at Willow Garage, a firm that builds robots and develops software for autonomous robotics technologies. Rusu had developed tools for point cloud mapping and 3D perception while getting his Ph.D. at the University of Munich and he began developing libraries of algorithms for Willow Garage to help robots perceive the world and act upon it.
Rusu knew others across the globe were working on similar libraries, whether for robotics or for the transportation, plant and process, gaming, and all manner of vertical industries. At Willow Garage, “we said we should cater to those smart people all over the world working in 3D,” said Rusu, “whether it’s photogrammetry and sensing, computer graphics, or what have you, and we should pull together all these resources and come up with a set of standard tools for 3D processing.”
Thus began the Point Cloud Library.
So, what’s the difference between processing point clouds for robots and processing point clouds for extracting piping models or pulling out transmission lines?
“In fact,” said Rusu, “I’d argue there’s absolutely no difference … we take sensor data in and try to build models. The difference might be that our models have to cater to the needs of a robot, and there will be different models for different purposes. For example, if it has to localize, then it would use some form of interpretation, like an octree, while if we were rendering scenes for object recognition, then we’d use surface recognition.
“That’s not too different,” he said, “and that’s what’s so exciting. It means for the first time we can pull together people from different fields, and teach them the same language to help them solve the same needs.”
The obvious follow-up question: Doesn’t this harm all those start-ups that are trying to make a buck off of their version of feature recognition, etc.?
Rusu doesn’t think so. He thinks it helps them, actually. “If you discover a fantastic algorithm that solves problems that no one could solve before, then, yeah, patent it and try to make money,” he said, “but 99 percent of the time, that’s not what happens. It’s usually small incremental evolutions of core algorithms that already exist. It’s almost impossible to make money off the algorithms that make up that base.” And it’s the base that makes up the Point Cloud Library. That base means that start-ups, or large organizations looking to add software abilities to their portfolio, don’t have to start from scratch, and they have a standard way of communicating with each other, to boot.
Plus, these are just algorithms and blocks of code. Customers need a user interface. They need customer support. They need someone with a vision of how to apply these algorithms alongside whatever secret sauce has been developed internally at said start up.
“We’re never in a situation where we’re actually competing with companies,” Rusu said, “unless those companies base their entire business on a core algorithm, and they should never do that because then the only way they’d separate themselves would be marketing.”
So, what’s next for the PCL? Essentially, the organization uses funding from sources like Google’s Summer of Code project, which donated $60,000 for 11 coders to do work, or corporations like Trimble to employ young and talented coders (generally students) to contribute to the library. One way they focus their efforts is with “code sprints,” where a company like Trimble will request that work be done in a certain area that they believe will push the industry forward and fund that effort.
“We tell companies that these code sprints are going to be a fantastic recruitment tool,” Rusu said, “and if they want to have interns that are already experts in this field, it’s easy: These are the people you want to go to.”
Look for Point Cloud Library to announce more corporate partners in the near future (most recently, Urban Robotic announced it was donating octree-based code to the project). If you’d like to get involved, you can find contact information here.