0
$\begingroup$

Rosanswers logo

I have written my own global planner and have successfully registered the plugin so that move_base can detect it.

I am getting a problem where move_base will crash whenever I instantiate an instance of base_local_planner::CostmapModel.

I've removed all the code from my global planner so that it will run as a plugin that does nothing. This is what my initialize function looks like:

void FrontierPlanner::initialize(string name, Costmap2DROS* costmap_ros)
{
    map = costmap_ros;
    Costmap2D* costmap = map->getCostmap();
    base_local_planner::CostmapModel model(*costmap); //The offending line
}

This will cause move_base to crash. If I comment out the third line then it will run no problem. It compiles in both cases as well.

The error move_base gives me is:

 [FATAL] [1438809026.524028208]: Failed to create the bob/FrontierPlanner planner, are you sure it is properly registered and that the containing library is built? Exception: Failed to load library /home/viki/catkin_ws/devel/lib//libfrontier_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/viki/catkin_ws/devel/lib//libfrontier_planner_lib.so: undefined symbol: _ZTVN18base_local_planner12CostmapModelE)
[move_base-5] process has died [pid 2554, exit code 1, cmd /opt/ros/indigo/lib/move_base/move_base __name:=move_base __log:=/home/viki/.ros/log/6207c02a-3bb6-11e5-8754-080027c434d6/move_base-5.log].
log file: /home/viki/.ros/log/6207c02a-3bb6-11e5-8754-080027c434d6/move_base-5*.log

Any ideas?


Originally posted by Sebastian on ROS Answers with karma: 363 on 2015-08-05

Post score: 0


Original comments

Comment by mgruhler on 2015-08-06:
Can you please give some more details (maybe link to a gist)? Showing your *plugin.xml for this planner, more details on the implementation as well as the CMakeLists.txt and package.xml.

Otherwise, we can only guess... But something seems to be wrong the way you export your library...

Comment by Sebastian on 2015-08-06:
I forgot a target_link_libraries in my CMakeLists.txt. I wasn't linking the library with my plugin to catkin_libraries.

Comment by mgruhler on 2015-08-07:
can you then post your solution as an answer and mark it as correct? Helps keeping ROS Answers clean ;-)

Comment by Sebastian on 2015-08-07:
I can't accept my own answer because I don't have a high enough reputation lol

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

I forgot to target_link_libraries in my CMakeLists.txt file. I wasn't linking the library with my plugin to catkin_libraries.


Originally posted by Sebastian with karma: 363 on 2015-08-07

This answer was ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

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