Ask Your Question

Vicon with ROS Fuerte and Ubuntu 12.04

asked 2012-07-16 10:24:22 -0500

Jon gravatar image

updated 2014-01-28 17:13:02 -0500

ngrennan gravatar image

Has anyone used the ViconDataStreamSDK to connect to a Vicon motion tracking system in ROS Fuerte and Ubuntu 12.04? I had it set up and working in ROS Electric and Ubuntu 11.10, but when I transferred to the new ROS and Ubuntu I found that I get a segmentation fault. I also tried the vicon_bridge package from ethz and saw a similar problem.


I tested on a computer running Ubuntu 10.04 and Fuerte and everything worked fine. I also compiled and tested the ViconDataStreamSDK demo program (not using ROS) on Ubuntu 12.04 and found that it too worked. So, it seems to be a problem specific to trying to run the ViconDataStreamSDK on the combination of Fuerte and Ubuntu 12.04.


I did some additional testing and found that the error occurs when declaring the NodeHandle variable. The error only occurs after the ViconDataStreamSDK_CPP library is linked during compilation (my simple test program runs fine before adding ViconDataStreamSDK_CPP to the target_link_libraries but crashes after adding). Below is a gdb run and backtrace after the error:

(gdb) run
Starting program: /home/user/ros_igcl_packages/igcl_vicon/bin/vicontest 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/".
vicontest: malloc.c:2451: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
Program received signal SIGABRT, Aborted.
0xb7fdd424 in __kernel_vsyscall ()
(gdb) backtrace
#0  0xb7fdd424 in __kernel_vsyscall ()
#1  0xb7b1d1ef in raise () from /lib/i386-linux-gnu/
#2  0xb7b20835 in abort () from /lib/i386-linux-gnu/
#3  0xb7b623c9 in ?? () from /lib/i386-linux-gnu/
#4  0xb7b651f3 in ?? () from /lib/i386-linux-gnu/
#5  0xb7b66d3c in malloc () from /lib/i386-linux-gnu/
#6  0xb7d78627 in operator new(unsigned int) ()
   from /usr/lib/i386-linux-gnu/
#7  0xb7f920e4 in ros::initInternalTimerManager() ()
   from /opt/ros/fuerte/lib/
#8  0xb7f74e25 in ros::start() () from /opt/ros/fuerte/lib/
#9  0xb7f4a6c7 in ros::NodeHandle::construct(std::string const&, bool) ()
   from /opt/ros/fuerte/lib/
#10 0xb7f4b853 in ros::NodeHandle::NodeHandle(std::string const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&) () from /opt/ros/fuerte/lib/
#11 0x08048c1a in main (argc=1, argv=0xbffff134)
    at /home/user/ros_igcl_packages/igcl_vicon/src/vicontest.cpp:71
edit retag flag offensive close merge delete


You have no tags on your question, it is unlikely to be seen by people who know about these things

Felix Endres gravatar image Felix Endres  ( 2012-07-19 23:06:04 -0500 )edit

I am also facing similar issue along with another friend of mine. Has there been any progress in locating the issue and is any hope of solving it? I tried methods suggested by others below but did not work either. Thinking of downgrading Ubuntu and ROS versions. The problem started after upgrading.

sks gravatar image sks  ( 2012-10-26 07:09:46 -0500 )edit

4 Answers

Sort by ยป oldest newest most voted

answered 2013-02-03 18:44:44 -0500

kartikmohta gravatar image

You might want to try the new Vicon DataStream SDK v1.3, it has multiple versions of the library based on which Boost version it was compiled for.

edit flag offensive delete link more


I replaced the old Vicon DataStream SDK with the new v1.3 (choosing the correct boost version, which in my case was 1.46.1) and found that my code for interfacing to Vicon now compiles and runs without any problems.

Jon gravatar image Jon  ( 2013-02-05 10:17:09 -0500 )edit

I updated the vicon_SDK to the latest Linux version (Linux32-boost-1.53.0 and Linux64-boost-1.53.0). After rosmake, The vicon_bridge is working now and i can see the segments topics published in ROS. I have the following setup: ROS fuerte ,Ubuntu : 12.04 LTS 32-bit running on 64-bit laptop

Anas Alhashimi gravatar image Anas Alhashimi  ( 2014-11-28 03:46:59 -0500 )edit

answered 2012-10-26 14:49:43 -0500

I think we encountered this problem. We found that the SDK worked on a 64-bit Ubuntu 12.04 install but not in 32-bit. Our fix was just to use a 64-bit machine to talk to the Vicon PC.

edit flag offensive delete link more

answered 2012-09-27 05:24:34 -0500

mlanting gravatar image

I have not used Vicon at all, but I am getting the same kind of error with a node I made for the Bumblebee2 stereo camera. I wanted to use the Triclops library for stereo processing which did not play well with ROS, but I managed to get it working on my previous setup (Electric + Lucid). The problem then was a Boost incompatibility between the Point Grey Triclops library and ROS which I was able to work around by limiting the Triclops library to one thread with a parameter.

After upgrading to Fuerte and Precise I get the same malloc error (more or less..) when starting the node. Where before the problem was a segfault during stereo processing, I now have it happening during camera initialization which uses a wrapper library from Point Grey for libdc1394 which I got to work with the libdc1394v2 ROS package.

I have not yet made a lot of progress in solving the issue, but I suspect a Boost incompatibility again (only seemingly more severe...). I'm not sure yet if the problem is with libdc1394v2 or the Triclops wrapper. I will update if/when I learn more about the problem. Sorry this isn't really an answer (yet), but it wouldn't fit as a comment...

edit flag offensive delete link more

answered 2012-09-30 07:08:10 -0500

Hazen gravatar image

I experienced this problem with my Vicon node. What ended up solving it was separating all the code that interacted with the Vicon SDK into it's own file and compiling that code into a library that linked to the Vicon SDK. I then wrote a ROS node that linked to that new library. It's not an elegant solution but it worked for me.

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



Asked: 2012-07-16 10:24:22 -0500

Seen: 1,538 times

Last updated: Feb 03 '13