ZebraDevs / fetch_ros

Open ROS Components for Robots from Fetch Robotics
176 stars 148 forks source link

[BUG] Linking issue when installing from source #151

Open bergercookie opened 3 years ago

bergercookie commented 3 years ago

When I run the fetch gazebo simulation stack and fetch_navigation/fetch_nav.launch (installed from apt) it works fine. However repeating the same procedure, after cloning fetch_ros (i.e., fetch_navigation) in my local workspace and after compiling the workspace packages with catkin_make, I'm getting the following error when running the navigation (I've the log in this ticket):

$ roslaunch fetch_navigation fetch_nav.launch

...

/opt/ros/melodic/lib/move_base/move_base: symbol lookup error: /home/user/ros_ws/devel/lib/libfetch_depth_layer.so: undefined symbol: _ZN2cv4rgbd9depthTo3dERKNS_11_InputArrayES3_RKNS_12_OutputArrayES3_

To Reproduce

catkin workspace (please complete the following information):

Additional context

Running this inside a ubuntu 18.04 docker.

fetch-undefined-symbol.txt

moriarty commented 3 years ago

Have you installed all of the dependencies using rosdep?

When installing via apt, the package dependencies are installed automatically. Building from source in a Docker, will fail to compile without the compile time dependencies, and will fail to run without the execution time dependencies.

http://wiki.ros.org/rosdep#Install_dependency_of_a_particular_package

moriarty commented 3 years ago

These Dockerfiles are out of date but both run rosdep.

https://github.com/fetchrobotics/fetch_gazebo/issues/46

https://github.com/fetchrobotics/fetch_gazebo/issues/75

bergercookie commented 3 years ago

Have you installed all of the dependencies using rosdep?

I hadn't, no, good point. However, having installed all the dependencies with rosdep, and having removed the devel/lib/libfetch_depth_layer.so generated object (so that it creates it again), I'm still getting this error.

I'm using catkin_make instead of catkin to compile, but I don't think that difference matters

erelson commented 3 years ago

This is definitely odd. I haven't taken the time to try the repro (but thanks for the steps!)... a stab in the dark is: You could try putting a CATKIN_IGNORE in the fetch_depth_layer/ folder and do a clean build from there.

bergercookie commented 3 years ago

You could try putting a CATKIN_IGNORE in the fetch_depth_layer/ folder and do a clean build from there.

Sure, that's actually my current mitigation; it compiles and executes the navigation gazebo demo successfully.