Compile OpenRAVE

http://www.openrave.org

git clone --branch latest_stable https://github.com/rdiankov/openrave.git
cmake -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE=Debug ..

Boost issues

python/bindings/convexdecompositionpy.cpp

+#include <boost/version.hpp>

+
+#if BOOST_VERSION>104600
+void assertion_failed_msg(char const * expr, char const * msg, char const * function, char const * file, long line)
+{
+    throw cdpy_exception(boost::str(boost::format("[%s:%d] -> %s, expr: %s, msg: %s")%file%line%function%expr%msg));
+}
+#endif

python/bindings/pyann.cpp

+#include <boost/version.hpp>

+
+#if BOOST_VERSION>104600
+void assertion_failed_msg(char const * expr, char const * msg, char const * function, char const * file, long line)
+{
+    throw pyann_exception(boost::str(boost::format("[%s:%d] -> %s, expr: %s, msg: %s")%file%line%function%expr%msg));
+}
+#endif

GitHub ticket

Collada

In 3rdparty/collada-2.4.0/include/dae.h, the defines COLLADA_DOM_SUPPORT141 and COLLADA_DOM_SUPPORT150 control which virtual methods the DAE class has. When dae.h is included from src/libopenrave-core/colladaparser/colladacommon.cpp (via src/libopenrave-core/colladaparser/colladacommon.h), neither are #define'd. The result is that the compiler, when it should be calling s_dae->clear(); (in src/libopenrave-core/colladaparser/colladacommon.cpp, line 38), generates code to call entry # 13 in DAE's vtable, which would be correct if COLLADA_DOM_SUPPORT* were always undefined. However, when dae.cpp is compiled, COLLADA_DOM_SUPPORT150 is apparently #define'd, which means that entry # 13 in DAE's vtable ends up being DAE::writeTo(...). Calling writeTo(...) with no arguments, when it should have two, means that the std::strings that are passed as arguments have invalid data pointers, leading to the crash once their data is being used (in this case by std::string's copy constructor).

Should be fixed in OpenRAVE git.

GitHub ticket