Ask Your Question
7

urdf_to_collada undefined reference to vtable for Assimp::IOSystem

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

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 collada_urdf.so 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

Comments

This bug has been ticketed here: https://github.com/ros/robot_model/issues/12

bit-pirate gravatar imagebit-pirate ( 2013-03-14 16:15:41 -0600 )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 imagemikealger ( 2014-08-14 12:06:44 -0600 )edit

3 Answers

Sort by » oldest newest most voted
1

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

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

Comments

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 imagebit-pirate ( 2013-03-14 16:16:58 -0600 )edit

I opened an new issue here: https://github.com/ros/collada_urdf/i... The other issues are closed which makes them hard to find

VictorLamoine gravatar imageVictorLamoine ( 2017-06-11 06:08:36 -0600 )edit
2

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

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: http://answers.ros.org/question/52098...

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

Comments

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

https://groups.google.com/forum/#!msg...

Tormod Haugene gravatar imageTormod Haugene ( 2016-03-12 09:30:23 -0600 )edit
2

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

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:-(

http://pastie.org/8665639

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

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

Seen: 4,560 times

Last updated: Sep 05 '15