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

Could not load library after latest ROS updates

asked 2015-01-13 07:12:43 -0500

Enrico C. gravatar image

updated 2015-01-13 13:00:30 -0500

William gravatar image

Hello to all the community. I'm writing this since I'm encountering errors when I launch my custom controllers written for a KUKA LWR arm, used in combination with Gazebo simulator. The error comes when I run the roslaunch command which loads such controllers.

**[ERROR] [1421148091.366974261, 5.814000000]: Could not load class kuka_controllers/BacksteppingController: Failed to load library /home/enrico/catkin_ws/devel/lib//libkuka_controllers.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/enrico/catkin_ws/devel/lib//libkuka_controllers.so: undefined symbol: _ZN26forward_command_controller24ForwardCommandControllerIN18hardware_interface20EffortJointInterfaceEE8startingERKN3ros4TimeE)
[ERROR] [1421148091.367239553, 5.814000000]: Could not load controller 'BacksteppingController' because controller type 'kuka_controllers/BacksteppingController' does not exist.
[ERROR] [1421148091.367296142, 5.814000000]: Use 'rosservice call controller_manager/list_controller_types' to get the available types**

The weird thing is that running the command suggested by ROS (rosservice call [...]) it actually returns all my controllers names. This error has been introduced after the last ROS software updates and before that it was working just fine. Also I have a call to PLUGINLIB_EXPORT_CLASS in my source, so it is not that the problem.

As a note, the ROS built-in position controllers work, so it seems like a linking or a parsing error (also notice that in the library path there is a double / after 'lib', which may the responsible). I've already tried to rebuild the workspace, still the same error.

Thanks in advance, Enrico C.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2015-01-13 13:04:03 -0500

William gravatar image

This symbol _ZN26forward_command_controller24ForwardCommandControllerIN18hardware_interface20EffortJointInterfaceEE8startingERKN3ros4TimeE does not exist in the library you are loading but it is expecting it to. Run through c++filt on a Linux machine:

forward_command_controller::ForwardCommandController<hardware_interface::EffortJointInterface>::starting(ros::Time const&)

This means that you library was likely built against one version of headers but linked against a version of the library without this symbol. Either way, this sounds like an ABI breakage, you can try sudo apt-get dist-upgrade to make sure all of the packages involved are at their latest version. You can also rebuild you from source packages, taking care to make sure the libraries get rebuilt.

edit flag offensive delete link more

Comments

On @Enrico C.'s behalf: Hi William, also to me it seems like a linking problem. Unfortunately the dist-upgrade didn't find any software to update. I think I'm going to try manual building or wait for the next update. To be safe, I've also reverted to an old github commit of my code, where it was

William gravatar image William  ( 2015-01-14 12:43:23 -0500 )edit

On @Enrico C.'s behalf: surely working fine, and the problem didn't go away. Thanks for your answer, by the way.

Enrico

William gravatar image William  ( 2015-01-14 12:44:03 -0500 )edit

No problem. If I were you I would try to track down where that missing symbol is coming from and then look at the source for that and see if it has changed recently.

William gravatar image William  ( 2015-01-14 12:45:01 -0500 )edit

Bless you good sir for teaching me about that lovely command. Bless you.

logan.dunbar gravatar image logan.dunbar  ( 2019-04-21 22:17:45 -0500 )edit

Question Tools

Stats

Asked: 2015-01-13 07:12:43 -0500

Seen: 3,706 times

Last updated: Jan 13 '15