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.
Setup¶
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.
Known issues¶
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
CollisionReport
in include/openrave/collisionchecker.h:57
. See
this issue on GitHub.
Undefined BIND_PER_PRIMITIVE¶
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 plugins/qtosgrave/Item.cpp
into:
geom->setNormalBinding(osg::Geometry::BIND_PER_PRIMITIVE_SET);
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:
- convexdecompositionpy.cpp
- bindings.cpp
- pyann.cpp
At the top of each file, spot the line containing BOOST_ENABLE_ASSERT_HANDLER
and replace it by:
#define BOOST_DISABLE_ASSERTS
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:
env.SetViewer('qtcoin')
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
two parameters:
OPENRAVE_PLUGIN_QTOSGRAVE
: turn it ON to enable OpenSceneGraphOPENRAVE_PLUGIN_QTCOINRAVE
: turn it ON to enable QtCoin
Another issue?¶
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.
Discussion ¶
Feel free to post a comment by e-mail using the form below. Your e-mail address will not be disclosed.