ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

urdf_to_collada undefined reference to vtable for Assimp::IOSystem

asked 2012-11-12 04:06:23 -0500

GIBurrito gravatar image

I'm working on getting ROS and the robot variant packages setup on an armhf port of Ubuntu. About 40 of the 100 robot variant packages have built just fine, however I'm having trouble with the collada_urdf package.

More specifically, when it is trying to link the urdf_to_collada executable the linker is complaining that has an unresolved dependency for IOSystem's vtable. With Assimp being a system package, I'm not sure how to go about resolving this problem.

I've tried reordering the libraries in urdf_to_collada's link.txt file to no avail.

edit retag flag offensive close merge delete


This bug has been ticketed here:

bit-pirate gravatar image bit-pirate  ( 2013-03-14 16:15:41 -0500 )edit

This issue also appears while compiling indigo on an odroid-xu using the standard ubuntu 14.04 image, applying the patch from bit-pirate seems to fix this, hopefully this saves someone else a couple hours

mikealger gravatar image mikealger  ( 2014-08-14 12:06:44 -0500 )edit

3 Answers

Sort by » oldest newest most voted

answered 2013-01-28 12:37:17 -0500

kalectro gravatar image

I know this question is old, but I think I found the answer :)

The problem is that it does not detect the correct assimp version. vi into src/collada_urdf/src/collada_urdf.cpp and write #define IS_ASSIMP3 at the top of the file. Also make sure you actually have assimp3 installed. You can download the source here

edit flag offensive delete link more


I was able to compile collada_urdf from source without any changes (but had to assimp3 as suggested). Thanks for the tip!

bit-pirate gravatar image bit-pirate  ( 2013-03-14 16:16:58 -0500 )edit

I opened an new issue here: The other issues are closed which makes them hard to find

VictorLamoine gravatar image VictorLamoine  ( 2017-06-11 06:08:36 -0500 )edit

answered 2015-09-05 16:38:17 -0500

I solved it for armhf (Raspberrypi) adding to the robot_model/collada_urdf/src/collada_urdf.cpp file the next code:

 #ifdef __arm__                 // fix for ARM build
 #include <strings.h>
 bool Assimp::IOSystem::ComparePaths(const char *p1, const char *p2) const
    return !::strcasecmp(p1, p2);
 #  endif

This solution is inspired in this other one:

But in that case is solved specifically for the rviz. I think that adding this code in this file a more much general solution is provided.

edit flag offensive delete link more


I found this same solution in the following google group, made as a patch file.!msg...

Tormod Haugene gravatar image Tormod Haugene  ( 2016-03-12 09:30:23 -0500 )edit

answered 2014-01-24 17:42:16 -0500

mw46d gravatar image

It looks like I hit the same problem again:-( With libassimp3 on Ubuntu 13.10 (armhf). With a different g++ on 13.04 (x64), my little test source seems to compile as expected:-(

edit flag offensive delete link more

Question Tools



Asked: 2012-11-12 04:06:23 -0500

Seen: 6,130 times

Last updated: Sep 05 '15