0
$\begingroup$

Rosanswers logo

Hi everyone,

I started using fuerte on 12.04 and face this problem while migrating code from electric on 10.04. When I try to launch nodelets of type pcl/NormalEstimation and pcl/SACSegmentationFromNormals, I get errors saying libpcl_ros_features.so and libpcl_ros_segmentation.so cannot be found. I wasn't able to find these shared objects at /opt/ros/fuerte/stacks/perception_pcl/pcl_ros/lib/.

[ERROR] [1352391653.634193667]: Failed to load nodelet [/normal_estimation] of type [pcl/NormalEstimation]: Failed to load library /opt/ros/fuerte/stacks/perception_pcl/pcl_ros/lib/libpcl_ros_features.so. Make sure that you are calling the PLUGINLIB_REGISTER_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Cannot load library: /opt/ros/fuerte/stacks/perception_pcl/pcl_ros/lib/libpcl_ros_features.so: cannot open shared object file: No such file or directory

[ERROR] [1352391655.206178336]: Failed to load nodelet [/cylinder_segmentation] of type [pcl/SACSegmentationFromNormals]: Failed to load library /opt/ros/fuerte/stacks/perception_pcl/pcl_ros/lib/libpcl_ros_segmentation.so. Make sure that you are calling the PLUGINLIB_REGISTER_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Cannot load library: /opt/ros/fuerte/stacks/perception_pcl/pcl_ros/lib/libpcl_ros_segmentation.so: cannot open shared object file: No such file or directory

I looked up ROS answers and found the first comment for this answer pointed the issue and the fix. Following that, I uncommented the lines corresponding to features, surface and segmentation in the CMakeLists for pcl_ros package. When I rosmake the package after these changes I get errors, with respect to the setSearchMethod in pcl. The fix mentioned here worked for my other packages. But not here. I get this error as mentioned in this question.

There is a ticket regarding this bug, here.

Any help on fixing this issue is much appreciated.

Thank you, Harsha


Originally posted by harsha on ROS Answers with karma: 91 on 2012-11-08

Post score: 1


Original comments

Comment by joq on 2012-11-08:
Are libpcl_ros_features.so and libpcl_ros_segmentation.so actually present in that directory after you build pcl_ros?

Comment by harsha on 2012-11-08:
Hi Joq. I looked into /opt/ros/fuerte/stacks/perception_pcl/pcl_ros/lib. They are not present in the directory. The libraries available are libgtest.a libgtest_main.a libpcl_ros_filters.so libpcl_ros_io.so libpcl_ros_tests.so libpcl_ros_tf.so.

Comment by harsha on 2012-11-08:
When I try to build pcl_ros after uncommenting the lines for features and segmentation, the build fails.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Your build is failing because you are using the /opt/ros/fuerte install tree. Due to file permissions, that can only be updated by the admin (root) user.

Do not try to build it there using the sudo command. That is not a good solution.

Instead, check out a source overlay using rosws or some similar tool, and build it there. That version will take precedence over the one installed in /opt/ros/fuerte.

EDIT: The reason you should not ever make any changes in the /opt/ros trees is because future Debian package updates will destroy your work.


Originally posted by joq with karma: 25443 on 2012-11-08

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by harsha on 2012-11-09:
Thanks for the reply. I understand using rosws is better. I changed the permissions of the pcl_ros package from root to user and tried to build. Should've mentioned it earlier. The errors are as mentioned here

Comment by harsha on 2012-11-09:
That's right. I would lose all the changes I made when I update the package. I'll remember that. Thanks for letting me know about rosws. I'll use it and let you know how it goes. I appreciate your help.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.