ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
You have encountered the basic problem of integration. Like every other library used in ROS we have picked a version of PCL to integrate around. Usually this is not the newest version of any library, and even if it started as the newest version, as soon as there's a new feature release it will no longer be the newest version. Most users of ROS and PCL together use the integrated version for we work hard to keep the API stable and not break their code.
If you would like to change what version you are using, as you stated you have three options, either replace it with the other version, patch the feature back against the old version or install the new version side by side with the old one.
If you want specific features from newer versions you need to choose whether the feature you want is worth upgrading your installation to a non standard version and possibly breaking other code in your repository. Another option is to backport the specific features you want to change into a patch for your existing library. And lastly you can try to install the library side by side as you suggested, however this too is hard due to namespace collisions. If you want to do this you cannot link against both versions of the library. (Removing the pcl dependency is not enough, you cannot depend on any package which depends on PCL either.)
As @joq mentioned we're working on making it so that PCL and ROS integrate in a more standard way in future versions, however that will not solve the fundamental problem.