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

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 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 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
1

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

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 image bit-pirate  ( 2013-03-14 16:16:58 -0500 )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 image VictorLamoine  ( 2017-06-11 06:08:36 -0500 )edit
2

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: 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 image Tormod Haugene  ( 2016-03-12 09:30:23 -0500 )edit
2

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

http://pastie.org/8665639

edit flag offensive delete link more

Question Tools

2 followers

Stats

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

Seen: 6,126 times

Last updated: Sep 05 '15