-
Notifications
You must be signed in to change notification settings - Fork 61
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
Python Wrapper #132
base: master
Are you sure you want to change the base?
Python Wrapper #132
Conversation
Thanks for the PR 👍 this looks really nice, and I've always had a Python binding for Both @jontje and me are rather busy (ROS-Industrial Conference next week), so it'll take some time for us to review this properly. Finally: this is going to sound ungrateful, but it would be great if we could avoid adding more Boost dependencies to Did you have a particular reason not to use |
This looks quite promising after a short skim through! 👍
I also have another demo to finalize before year-end (in addition to the stuff at the ROS-Industrial Conference 2020). |
The main reason we did not use pybind11 is basically xenial support. I have tried to use pybind11 for a different project with g++ 5.5 and C++11 and have always had linking issues in xenial when building for python3. |
ROS Kinetic will be EOL in about 4 months. I don't know about @jontje, but I would not necessarily be too distraught if we lose Xenial compatibility. Users who really want to use that should be able to install an updated compiler. And we could always disable building the Python-bindings if a compiler which is too old is detected. Same goes for Python 2 support. Python 2 has been EOL for a long time now. |
These are all fair, but for our purposes (at Unibap), we still support Xenial and given that python2 is the default python for that version, we support that as well, and that drove our implementation towards Boost.Python.
The CMakeLists.txt provided in the PR silently disables python bindings for each python version that Boost.Python is not found. |
This adds python wrappers to abb_librws using boost.python
We made this compatible for both python2 and python3 (compiles and imports correctly in a catkin workspace regardless of which python version you are using) but please also test it in different distros and setups to verify that it works.
Included there is a ABB robot module and a python test script that you can use to verify the functionality of the wrapper for your setup.
To run the test script in a catkin workspace you can use rosrun (though it is not required)
To run it without rosrun, you must have sourced the catkin workspace (to extent PYTHONPATH)