While installing OpenRAVE on Ubuntu 14.04 or on Ubuntu 16.04, you may run into a number of problems as packages get out of sync. I report here on issues I ran into while installing OpenRAVE on new systems.
What follows assumes that you are trying to install from the
latest_stable branch of OpenRAVE's GitHub repository:
git clone --branch latest_stable https://github.com/rdiankov/openrave.git cd openrave && mkdir build && cd build cmake .. make -j4 sudo make install
I could successfully install OpenRAVE with the commit numbers
5cfc7444... for Ubuntu 14.04 and
9c79ea26... for 16.04.
Missing field in CollisionReport¶
Depending on your configuration, you may run into the following error:
openrave/plugins/bulletrave/bulletcollision.h: In member function ‘bool BulletCollisionChecker::CheckCollisionP(btOverlapFilterCallback, OpenRAVE::CollisionReportPtr)’: openrave/plugins/bulletrave/bulletcollision.h:335:25: error: ‘class OpenRAVE::CollisionReport’ has no member named ‘numCols’
A quickfix is to add the field
int numCols; to the class
this issue on GitHub.
Newer versions of OpenSceneGraph changed the API, so the commit above (
5cfc744410... on branch
latest_stable) will not compile directly on a fresh Ubuntu install. Rather, it will fail with the error "‘BIND_PER_PRIMITIVE’ is not a member of ‘osg::Geometry’". You can fix this by updating line 341 of
Of course you can also try to compile using more recent commits, however on a
fresh Ubuntu install (as of May 12th, 2016) it won't compile either due to the
use of the function
osg::DrawElementsUInt::resizeElements, which is in
the OpenSceneGraph API but not available on the one distributed with Ubuntu.
Undefined symbol for Boost assertions¶
As documented in this thread, you may run into the following issue with newer versions of Boost:
ImportError: ./convexdecompositionpy.so: undefined symbol: _ZN5boost20assertion_failed_msgEPKcS1_S1_S1_l)
The solution proposed here is to go to
python/bindings and update three files:
At the top of each file, spot the line containing
BOOST_ENABLE_ASSERT_HANDLER and replace it by:
It is dirty (disabling a number of checks in these three modules) but effective.
I don't get the same GUI as in your examples¶
You are most likely getting the OpenSceneGraph GUI instead of the QtCoin GUI,
which is the one I use. Both are compiled as plugins when you build OpenRAVE
from source. In Python, the GUI plugin is selected when you call
SetViewer() on your Environment object. For the QtCoin interface, do:
If you compiled OpenRAVE from source, you can enable these GUI plugins at the
CMake level: run
ccmake . in your build folder, and check the following
OPENRAVE_PLUGIN_QTOSGRAVE: turn it ON to enable OpenSceneGraph
OPENRAVE_PLUGIN_QTCOINRAVE: turn it ON to enable QtCoin
If the problem you encounter is not listed above, you can ask your question on the OpenRAVE Users List or on the issue tracker on GitHub. Be sure to provide the first (topmost) error that appears in your logs.
There are no comments yet. Feel free to leave a reply using the form below.