0
$\begingroup$

Rosanswers logo

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.

EDIT 2:

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.

EDIT 1:

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/libthread_db.so.1".
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/libc.so.6
#2  0xb7b20835 in abort () from /lib/i386-linux-gnu/libc.so.6
#3  0xb7b623c9 in ?? () from /lib/i386-linux-gnu/libc.so.6
#4  0xb7b651f3 in ?? () from /lib/i386-linux-gnu/libc.so.6
#5  0xb7b66d3c in malloc () from /lib/i386-linux-gnu/libc.so.6
#6  0xb7d78627 in operator new(unsigned int) ()
   from /usr/lib/i386-linux-gnu/libstdc++.so.6
#7  0xb7f920e4 in ros::initInternalTimerManager() ()
   from /opt/ros/fuerte/lib/libroscpp.so
#8  0xb7f74e25 in ros::start() () from /opt/ros/fuerte/lib/libroscpp.so
#9  0xb7f4a6c7 in ros::NodeHandle::construct(std::string const&, bool) ()
   from /opt/ros/fuerte/lib/libroscpp.so
#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/libroscpp.so
#11 0x08048c1a in main (argc=1, argv=0xbffff134)
    at /home/user/ros_igcl_packages/igcl_vicon/src/vicontest.cpp:71

Originally posted by Jon on ROS Answers with karma: 115 on 2012-07-16

Post score: 3


Original comments

Comment by Felix Endres on 2012-07-19:
You have no tags on your question, it is unlikely to be seen by people who know about these things

Comment by sks on 2012-10-26:
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.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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


Originally posted by kartikmohta with karma: 308 on 2013-02-03

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by Jon on 2013-02-05:
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.

Comment by Anas Alhashimi on 2014-11-28:
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

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.