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

Symbol lookup failed : _ZN15 message_filters 10Connection10 disconnectEd [solved]

asked 2023-06-29 11:36:57 -0600

JeanpierreL gravatar image

updated 2023-07-04 07:35:23 -0600

Hi,

I'm currently trying to compile a variant of costmap_2d::ObstacleLayer to experiment various obstacle-avoiding methods on ROS noetic running on Ubuntu 20.04.

I've built a new ROS package where I copy-pasted the code and dependencies of the original. I've renamed only the class and costmap_plugins to avoid interference with the original. Nothing more has been modified yet.

It builds ok, MoveBase is able to load the new plugin, but crashes immediately with the error : Symbol lookup failed : _ZN15 message_filters 10Connection10 disconnectEd

I've looked into the symbols of the SO file, and obviously 2 symbols are undefined from message_filters but not all. Here are the shell command and its first results :

$ nm devel/lib/libnon_lethal_obstacle_layer.so | grep "message_filters" | head -10 U _ZN15message_filters10Connection10disconnectEv 00000000002017a0 W _ZN15message_filters10ConnectionaSEOS0_ U _ZN15message_filters10ConnectionC1ERKN5boost8functionIFvvEEE 00000000001ec51c W _ZN15message_filters10ConnectionC1Ev 00000000001ec51c W _ZN15message_filters10ConnectionC2Ev 00000000001f0be0 W _ZN15message_filters10ConnectionD1Ev 00000000001f0be0 W _ZN15message_filters10ConnectionD2Ev 000000000020b56a W _ZN15message_filters10SubscriberIN11sensor_msgs10LaserScan_ISaIvEEEE11unsubscribeEv

I've checked message_filters was in the package.xml, find-package, and catkin_package. This solved the only relevant question I found on the internet (https://answers.ros.org/question/1075...), but my problem stays...

Any idea about what could be wrong? Thanks, Laurent.

edit retag flag offensive close merge delete

Comments

Does the output of ldd devel/lib/libnon_lethal_obstacle_layer.so have a line similar to:

libmessage_filters.so => /opt/ros/noetic/lib/libmessage_filters.so

If this is missing, your CMakeLists.txt probably does not correctly specify that your plugin depends on message_filters package.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2023-07-02 10:33:31 -0600 )edit

Thank you for your input. I finally found the problem, which was not related to the package itself but to the way I created it :'((. I used the following command :

catkin create pkg non_lethal_obstacle_layer dynamic_reconfigure geometry_msgs laser_geometry message_filters pluginlib roscpp sensor_msgs tf2 tf2_geometry_msgs tf2_ros tf2_sensor_msgs voxel_grid

instead of :

catkin_create_pkg non_lethal_obstacle_layer dynamic_reconfigure geometry_msgs laser_geometry message_filters pluginlib roscpp sensor_msgs tf2 tf2_geometry_msgs tf2_ros tf2_sensor_msgs voxel_grid

My error created an empty copy of many standard packages. I still does not understand why it even compiled. (just an error with the dynamic reconfigure option in CMakeList, that I commented out to skip forward...) Anyway, the removal of spurious packages, cleanup and rebuild corrected the problem.

I apologize for the trouble. Cheers, Laurent

JeanpierreL gravatar image JeanpierreL  ( 2023-07-04 03:03:54 -0600 )edit

I'm glad you figured it. You should change your comment to be an answer, then click the checkmark inside the gray circle.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2023-07-04 05:45:20 -0600 )edit

Sorry, I don't have enough points to accept my own answer or even to delete my comment...

JeanpierreL gravatar image JeanpierreL  ( 2023-07-04 07:34:56 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2023-07-04 07:33:43 -0600

JeanpierreL gravatar image

Thank you for your input. I finally found the problem, which was not related to the package itself but to the way I created it :'((. I used the following command :

catkin create pkg non_lethal_obstacle_layer dynamic_reconfigure geometry_msgs laser_geometry message_filters pluginlib roscpp sensor_msgs tf2 tf2_geometry_msgs tf2_ros tf2_sensor_msgs voxel_grid

instead of :

catkin_create_pkg non_lethal_obstacle_layer dynamic_reconfigure geometry_msgs laser_geometry message_filters pluginlib roscpp sensor_msgs tf2 tf2_geometry_msgs tf2_ros tf2_sensor_msgs voxel_grid

This created an empty copy of many standard packages. I still does not understand why it even compiled. (just an error with the dynamic reconfigure option in CMakeList, that I commented out to skip forward...) Anyway, the removal of spurious packages, cleanup and rebuild corrected the problem.

I apologize for the trouble.

Cheers, Laurent

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2023-06-29 11:36:57 -0600

Seen: 177 times

Last updated: Jul 04 '23