Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Runtime issue with Spinnaker SDK 2.3.0.77 #66

Open
stwirth opened this issue Feb 11, 2021 · 1 comment
Open

Runtime issue with Spinnaker SDK 2.3.0.77 #66

stwirth opened this issue Feb 11, 2021 · 1 comment

Comments

@stwirth
Copy link
Contributor

stwirth commented Feb 11, 2021

I have been trying to get this driver to work in Ubuntu 20.04 (focal) / ROS noetic with the Spinnaker SDK version 2.3.0.77.
After applying the patch from #63 compilation works fine but running spinnaker_test_node or camera_node results in a segmentation fault.

gdb backtrace:

Thread 2 "spinnaker_test_" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff1cdf700 (LWP 8294)]
0x00007ffff535d540 in boost::detail::thread_data_base::~thread_data_base() () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
(gdb) bt
#0  0x00007ffff535d540 in boost::detail::thread_data_base::~thread_data_base() () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
#1  0x00007ffff1f1ce37 in ?? () from /opt/spinnaker/lib/flir-gentl/FLIR_GenTL.cti
#2  0x00007ffff535c19a in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
#3  0x00007ffff535d959 in boost::thread::join_noexcept() () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
#4  0x00007ffff1f14a28 in ?? () from /opt/spinnaker/lib/flir-gentl/FLIR_GenTL.cti
#5  0x00007ffff535d43b in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
#6  0x00007ffff7daf609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7  0x00007ffff5562293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Running the shipped example /opt/spinnaker/bin/Acquisition works fine.

To test if my build environment is the culprit, I copied the source file from /opt/spinnaker/src/Acquisition/Acquisition.cpp into flir_camera_driver/spinnaker_camera_driver/src and adapted the flir_camera_driver/spinnaker_camera_driver/CMakeLists.txt to build it. The resulting executable runs fine.
Now comes the sorcery: If I just adapt that Acquisition.cpp to initialize ROS by adding #include <ros/ros.h> at the top and ros::init(argc, argv, "spinnaker_test_node"); to main(), the resulting binary crashes.

Investigating further, I found that the same with Spinnaker SDK version 2.2.0.48 works fine (which is enough for me, so I won't dig into this more).

@mcamurri
Copy link

mcamurri commented Mar 4, 2021

I've also the same problem. The most likely cause is an incompatibility between the ros libraries and the spinnaker libraries.

When compiled in isolation, the example sources work, but when linked against ROS libraries the segfault happens.

Most likely the two libraries use different versions of boost, which caused me problems in the past with the bumblebee pointgrey driver as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants