-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
URDF not parsable from python wrapper when bio_ik is find_package'd #29
Comments
I can't reproduce this on a custom non-debian build of ROS either.
This is missing Did you look through the linked libraries of bio_ik and the system dependencies for this? I would expect that bio_ik (obviously compiled in your own workspace) might link to a different version of some system library on your melodic system, resulting in ABI breakage and symbol clashes. |
Yes, you're right, but the error occurs before moveit complains about the missing semantics. It is also not a problem with my setup, I can reproduce the issue in a docker container. I attached an archive containing the reproducible example: minimal_example.tar.gz Extract the archive, navigate to the folder, run |
It is also not a problem with my setup, I can reproduce the issue in a docker container.
I attached an archive containing the reproducible example: [minimal_example.tar.gz](https://github.com/TAMS-Group/bio_ik/files/6021725/minimal_example.tar.gz)
Thanks for debugging this. I'm not saying it's a problem with your setup.
It might as well be a problem with the build of a ROS package.
Thank you for setting up the docker image. I'm not sure I'll have the time to hunt this down though. :(
Could you paste the output of `ldd -v` for all relevant binaries (the python module, the bio_ik object, the robot model loader) and is there any discrepancy there?
|
ldd for python module with bio_ik
Output of ldd for python module without bio_ik
|
Output for libbio_ik.so
Output for libmoveit_robot_model_loader.so
|
currently breaks loading the robot description when used from python!? see TAMS-Group/bio_ik#29
👍 I also have this problem when using python bindings that use bio_ik |
👍 I also have this problem when using python bindings that use bio_ik
Feel free to look into this. I planned to investigate it, but did not find the time to do that until now. :sad:
|
So these lines in the CMakeLists.txt seems suspicious, removing them fixes the problem for me!
Why link to these statically? |
Removing the lines fixes the problem for me, too. |
also fixed bug (?) in bio_ik linking TAMS-Group/bio_ik#29
also fixed bug (?) in bio_ik linking TAMS-Group/bio_ik#29
Thank you for finding the cause of the issue.
```
-static-libgcc
-static-libstdc++
```
Why link to these statically?
Probably the same reasons why you would link any library statically.
Did you benchmark whether shared linking lowers performance?
Even if there should be a slight effect, fixing the issue is probably worth it from my side.
|
Hm I didn't know static linking affect runtime performance -- I did not benchmark anything. |
The problem
I am using the MoveIt RobotModelLoader to load a URDF from the ros parameter server. The URDF will not be parsed when the following two conditions are fulfilled:
CMakeLists.txt
Reproducible example:
cd catkin_ws/src && catkin create pkg minimal_example
CMakeLists.txt
wrapper.cpp
roslaunch pr2-description upload_pr2.launch
Then, a lot of ros errors are raised:
Now, remove
bio_ik
from theCMakeLists.txt
, recompile, and try again. The problem will not occur.I tested this on ROS Melodic on Ubuntu 18.04 for both python2 and python3 (just replace python with python3 in the
find_package(BOOST...)
). The problem did not occur on a self compiled workspace on Debian Testing.In my case it was fortunately possible to remove
bio_ik
from the catkin components, but that may not always be the case.I'm sorry for the bizarre issue.
The text was updated successfully, but these errors were encountered: