ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Cannot load OMPL global planner plugin [closed]

asked 2016-01-24 22:10:21 -0600

Megacephalo gravatar image

updated 2016-01-29 06:11:26 -0600

Hi all !

Recently I have been trying other's global planner plug-ins, and I came across this global planner plugin ( https://github.com/windelbouwman/move... ) and keep running into this problem like the following:

[FATAL] [1453693784.973444827, 729.192000000]: Failed to create the ompl_global_planner/OmplGlobalPlanner planner, are you sure it is properly registered and that the containing library is built? Exception: Failed to load library /home/iceira/indigo_ws/devel/lib//libompl_global_planner_lib.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = /home/iceira/indigo_ws/devel/lib//libompl_global_planner_lib.so: undefined symbol: _ZNK4ompl4base21OptimizationObjective11isSatisfiedENS0_4CostE)

What should I do? How do I debug it ?

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by Procópio
close date 2016-02-15 07:35:52.579499

Comments

So I tried again. I checked through all necessary files for plugin, still no avail. Then I tried

c++filt _ZNK4ompl4base21OptimizationObjective11isSatisfiedENS0_4CostE

and the demangled message reads:

ompl::base::OptimizationObjective::isSatisfied(ompl::base::Cost) const

Megacephalo gravatar image Megacephalo  ( 2016-01-29 06:05:40 -0600 )edit

1 Answer

Sort by » oldest newest most voted
1

answered 2016-01-30 12:50:08 -0600

ahendrix gravatar image

This error means that (at least) one method couldn't be found by the linker when loading the global planner library. Given that the method that couldn't be found is from the OMPL namespace, I'm guessing that it's somewhere in the OMPL libraries.

From looking at the CMakeLists.txt in that package, I see that the library is compiled against OMPL, but isn't linked with the OMPL libraries; that's probably why it can't find OMPL.

You should link the global planner library that you're trying to build against OMPL:

target_link_libraries(ompl_global_planner_lib ${OMPL_LIBRARIES})
edit flag offensive delete link more

Comments

Oh my gosh! It works ! that is easy ...after you pointed out !! Thank you so much, ahendrix !

Megacephalo gravatar image Megacephalo  ( 2016-02-15 04:34:27 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2016-01-24 22:10:21 -0600

Seen: 1,898 times

Last updated: Jan 30 '16