bebop_autonomy: roslaunch bebop_nodelet.launch fails on 18.04/Melodic/src

I get the following error when roslaunching both the node and the nodelet:

[ERROR] [1531415229.229082225]: Failed to load nodelet [/bebop/bebop_nodelet] of type [bebop_driver/BebopDriverNodelet] even after refreshing the cache: Failed to load library /home/mimic/catkin_ws/devel/lib//libbebop_driver_nodelet.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 = libarcommands.so: cannot open shared object file: No such file or directory)

The culprit is libcommands.so was not found in $LD_LIBRARY_PATH, which only contains <CATKIN_WS>/devel/lib and not <CATKIN_WS>/devel/lib/parrot_arsdk.

I’m rusty with my catkin skills, and trying to change the install dir didn’t work (after a catkin clean and catkin build).

I can bypass this issue in two ways:

  • add <CATKIN_WS>/devel/lib/parrot_arsdk to $LD_LIBRARY_PATH (e.g. in ~/.bashrc),
  • or duplicating the symbolic links via cd <CATKIN_WS>/devel/lib/parrot_arsdk && cp -av lib* ..

If you guys can fix this issue properly without using the bypass hacks above, then great! Otherwise, I hope that others might find these hacks helpful.

About this issue

  • Original URL
  • State: open
  • Created 6 years ago
  • Reactions: 6
  • Comments: 16 (1 by maintainers)

Most upvoted comments

After reinstalling ubuntu 18 I was facing this problem again, I used the one above and it still did not work, I realized I was using “catkin build” so I tried “Catkin make” and this solved the problem for me

  • let’s say your catkin workspace is located at ~/catkin_ws
  • for simplicity, let’s export an environment variable: $ export CATKIN_WS="~/catkin_ws"
  • to do this properly, you should open your ~/.bashrc file in a text editor, and add a line somewhere (e.g. at the end) with the following content: LD_LIBRARY_PATH=~/catkin_ws/devel/lib/parrot_arsdk:$LD_LIBRARY_PATH
  • but the quick and dirty way is: $ echo LD_LIBRARY_PATH=$CATKIN_WS/devel/lib/parrot_arsdk:$LD_LIBRARY_PATH >> ~/.bashrc

@Ceepert , I also could not find the parrot_arsdk in the folder. I manage to fix this way:

  • Install the parrot_arsdk: sudo apt install ros-melodic-parrot-arsdk

  • Copy the folder from /opt/ros/melodic/lib/parrot_arsdk to <CATKIN_WS>/devel/lib/

  • Update .bashrc (as @anqixu comment, remember to change to you workspace name) LD_LIBRARY_PATH=~/catkin_ws/devel/lib/parrot_arsdk:$LD_LIBRARY_PATH

I only use the “bypass hacks” mentioned by @anqixu

add <CATKIN_WS>/devel/lib/parrot_arsdk to $LD_LIBRARY_PATH (e.g. in ~/.bashrc),

could you go i little bit into more detail? What is the exact command (Im new to using ubuntu) I dont have a parrot_arsdk folder in catkin_workspace/devel/lib/ I have the ParrotSDK folder on my desktop? How do I get it into that folder?

I only use the “bypass hacks” mentioned by @anqixu

add <CATKIN_WS>/devel/lib/parrot_arsdk to $LD_LIBRARY_PATH (e.g. in ~/.bashrc),

Thanks a lot. It worked.