neufieldrobotics / spinnaker_sdk_camera_driver Goto Github PK
View Code? Open in Web Editor NEWPoint Grey (FLIR) Spinnaker based camera driver (Blackfly S etc.)
License: MIT License
Point Grey (FLIR) Spinnaker based camera driver (Blackfly S etc.)
License: MIT License
Setup:
Ubuntu 16.04.1, kernel 4.15.0-29
ROS kinetic
FLIR Spinnaker SDW v1.21.0.61
Description:
After installing the current version of the Spinnaker SDK (1.21.0.61) from FLIR's website many Qt base ros tools such as rviz, and all rqt_* variants crash on launch.
I did not go much into detail, so I do not have a fix yet. Of course, this is not related to this ROS driver but rather the under-lying SDK. but I guess this is relevant for anyone who wants to use this driver alongside ROS kinetic.
Steps to Reproduce:
rosrun rviz rviz
.This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".
rosrun rqt_image_view rqt_image_view
Segmentation fault (core dumped)
Hi all
I bought a new flir s camera , but I can't launch thisdrive node correctly according to the steps of readme . The error is as fllows:
[FATAL] [1565781001.434096093]: Failed to load nodelet '/acquisition_node
of type acquisition/capture_nodelet
to manager vision_nodelet_manager' [vision_nodelet_manager-1] process has died [pid 15410, exit code -11, cmd /opt/ros/kinetic/lib/nodelet/nodelet manager __name:=vision_nodelet_manager __log:=/home/pix/.ros/log/83dfd6f2-be6f-11e9-856c-1c1b0daf78ce/vision_nodelet_manager-1.log]. log file: /home/pix/.ros/log/83dfd6f2-be6f-11e9-856c-1c1b0daf78ce/vision_nodelet_manager-1*.log [acquisition_node-2] process has died [pid 15411, exit code 255, cmd /opt/ros/kinetic/lib/nodelet/nodelet load acquisition/capture_nodelet vision_nodelet_manager __name:=acquisition_node __log:=/home/pix/.ros/log/83dfd6f2-be6f-11e9-856c-1c1b0daf78ce/acquisition_node-2.log]. log file: /home/pix/.ros/log/83dfd6f2-be6f-11e9-856c-1c1b0daf78ce/acquisition_node-2*.log
How is this done?
I have two Blackfly S cameras. I'm able to connect them all to a network with my laptop and stream images from them by specifying one cam_id at a time in the test_params.yaml file.
When I have two cameras the cam_ids test_params.yaml file I am unable to stream the data from the cameras.
Attached is a zip file with my launch file, the test_params.yaml file and a log. The only modifications I made to the code are removing this assert message ROS_ASSERT_MSG(frameID_ == 0 and adding logging around the GetNextFrame() call to show that's where the Spinnaker exception is being thrown.
I see in https://github.com/neufieldrobotics/spinnaker_sdk_camera_driver there are instructions on hooking a master/slave setup in the GPIO. I have not done this and don't need highly synchronized frames, I'm just looking to stream data from them and it's OK if they aren't synchronized.
Also note: I'm unable to stream two cameras from spinview, ebusplayer or software I wrote to interface with the spinnaker SDK.
MultiCamPackage.zip
Any ideas I can try out?
Hi, I use two camera (BFS-U3-16S2C-CS), and I connect this two camera to my laptop's two different USB3 port. Then I follow your document rewrite the "test.yaml"
`
cam_ids:
and I get this Error
Hello,
I'm working with a GigE camera (I'm using Flir Oryx) and I seem to have a strange error. After setting trigger source
to software
, the pCam->GetNextImage( )
function waits forever. Has anybody faced this problem before and found a solution? Please let me know. Thanks in advance!
Hi community,
We are trying to use a hardware impulse (external) to trigger the camera for acquisition. However, I cannot find how to work on this.
I have tried the acquisition mode, but it is not exactly working... Some help here?
Thanks in advance.
Best,
Yiyang
I use the spinnaker_sdk_camera_driver and I experience an issue of which I don't know what the core of the issue might be.
Your ROS driver detects the camera and the flushing also seems to work (see log of roslaunch below) However, the camera seems to not start with frame ID 0.
The camera is a new Blackfly S with standard factory firmware. It is connected via GigE with Power-over-Ethernet network cable. The camera also works fine in spinview.
The test was done in VirtualBox on a fully updated Lubuntu 16.04.
What can I do, to have the camera start with a certain frame number?
Console output is as follows:
[ INFO] [1539259721.897108867]: [ OK ] USB memory: 1000 MB
20181011[ INFO] [1539259721.897183646]: *** PARAMETER SETTINGS ***
[ INFO] [1539259721.897203254]: ** Date = 20181011
[ INFO] [1539259721.897739443]: Save path set via parameter to: /home/pw
[ INFO] [1539259721.897782787]: Camera IDs:
[ INFO] [1539259721.898293787]: <serial no>
[ INFO] [1539259721.898791570]: Camera Aliases:
[ INFO] [1539259721.898814759]: <serial no> >> cam0
[ INFO] [1539259721.899740583]: Unique time stamps for each camera: 0
[ INFO] [1539259721.900238189]: color set to: 0
[ INFO] [1539259721.900932690]: Exporting images to ROS: 1
[ INFO] [1539259721.901459004]: Showing live images setting: 0
[ INFO] [1539259721.901925390]: Showing grid-style live images setting: 0
[ INFO] [1539259721.902395142]: Max Rate Save Mode: 0
[ INFO] [1539259721.902891314]: Displaying timing details: 0
[ INFO] [1539259721.904583561]: No. of images to skip set to: 20
[ INFO] [1539259721.906793675]: Init sleep delays set to : 20 sec
[ WARN] [1539259721.907340806]: 'fps' Parameter not set, using default behavior: fps=20.00
[ INFO] [1539259721.907794313]: 'exp'=0, Setting autoexposure
[ INFO] [1539259721.908270332]: Binning set to: 2
[ INFO] [1539259721.908731872]: Using Software rate control, rate set to: 20
[ INFO] [1539259721.909187848]: Saving images set to: 0
[ INFO] [1539259721.910053749]: Camera coeffs not provided correctly, camera info messges will not be published.
[ INFO] [1539259721.910122159]: Creating system instance...
[ INFO] [1539259721.910468338]: Retreiving list of cameras...
[ INFO] [1539259723.542994586]: Numer of cameras found: 1
[ INFO] [1539259723.543034197]: Cameras connected: 1
[ INFO] [1539259723.543082408]: -<serial no>
[ INFO] [1539259723.545509510]: *** FLUSH SEQUENCE ***
[ INFO] [1539259723.545538521]: Initializing cameras...
[ INFO] [1539259724.172084859]: Deinitializing cameras...
[ INFO] [1539259725.952781566]: All cameras deinitialized.
[ INFO] [1539259725.952871993]: Initializing cameras...
[ INFO] [1539259726.425770815]: *** ACQUISITION ***
[FATAL] [1539259726.495451653]: ASSERTION FAILED
file = /home/pw/ros/ws/spinnaker_ws/src/spinnaker_camera_driver/src/camera.cpp
line = 59
cond = frameID_ == 0
message = [FATAL] [1539259726.495545610]: First frame ID was not zero! Might cause sync issues later...
[FATAL] [1539259726.495617142]:
You suggested in private conversation:
We dont have any GigE versions at our lab, so haven't tested with them. The assertion for the frame number is because when using multiple camera we want to make sure they are synced. If you are only using a single camera, you should be able to safely comment out the assertion at:
Link to source
Your suggestion above is not possible for us, as we want to use a stereo camera pair and want to have synced cameras.
can i get live video from camera with this ?
PARAMETERS
NODES
/
acquisition_node (spinnaker_sdk_camera_driver/acquisition_node)
auto-starting new master
process[master]: started with pid [7179]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to de373cdc-6f35-11e9-8464-9c305be96d8d
process[rosout-1]: started with pid [7193]
started core service [/rosout]
process[acquisition_node-2]: started with pid [7209]
[ INFO] [1557061277.057179656]: [ OK ] USB memory: 1000 MB
[ INFO] [1557061277.057291773]: *** PARAMETER SETTINGS ***
[ INFO] [1557061277.057315139]: ** Date = 20190505
[ INFO] [1557061277.057781627]: Save path set via parameter to: /home/tarena
[ INFO] [1557061277.057815296]: Camera IDs:
[ INFO] [1557061277.058256414]: 18285550
[ INFO] [1557061277.058709557]: Camera Aliases:
[ INFO] [1557061277.058726610]: 18285550 >> cam0
[ INFO] [1557061277.059670647]: Unique time stamps for each camera: false
[ INFO] [1557061277.060148378]: color set to: true
[ INFO] [1557061277.060596604]: Exporting images to ROS: true
[ INFO] [1557061277.061059862]: Showing live images setting: false
[ INFO] [1557061277.061548876]: Showing grid-style live images setting: false
[ INFO] [1557061277.061953093]: Max Rate Save Mode: false
[ INFO] [1557061277.062347908]: Displaying timing details: false
[ INFO] [1557061277.062833572]: No. of images to skip set to: 20
[ INFO] [1557061277.063281499]: Init sleep delays set to : 0.00 sec
[ WARN] [1557061277.063725959]: 'fps' Parameter not set, using default behavior: fps=20.00
[ INFO] [1557061277.064149388]: 'exp'=0, Setting autoexposure
[ INFO] [1557061277.064549205]: Binning set to: 2
[ INFO] [1557061277.064986304]: Using Software rate control, rate set to: 10
[ INFO] [1557061277.065412179]: Saving images set to: 0
[ INFO] [1557061277.067137108]: Camera coeffs not provided correctly, camera info messges will not be published.
[ INFO] [1557061277.067168683]: Creating system instance...
[ INFO] [1557061277.068513767]: Retreiving list of cameras...
terminate called after throwing an instance of 'Spinnaker::Exception'
what(): Spinnaker: Parameter is already set. argument was expected to be NULL. [-1009]
[acquisition_node-2] process has died [pid 7209, exit code -6, cmd /home/tarena/spinnaker_ws/devel/lib/spinnaker_sdk_camera_driver/acquisition_node __name:=acquisition_node __log:=/home/tarena/.ros/log/de373cdc-6f35-11e9-8464-9c305be96d8d/acquisition_node-2.log].
log file: /home/tarena/.ros/log/de373cdc-6f35-11e9-8464-9c305be96d8d/acquisition_node-2*.log
undefined reference to powf@GLIBC_2.27
undefined reference to glob@GLIBC_2.27
Could you give me some advise?
I installed the package as per the procedure given in the Readme. But while running the launch file, I get this error. I use a CM3-U3-13S2M-CS camera.
Unable to set BinningHorizontal to 1 (ptr retrieval). Aborting...
[FATAL] [1548385968.642554237]: Error: Spinnaker: GenICam::AccessException= Node is not writable. : AccessException thrown in node 'BinningHorizontal' while calling 'BinningHorizontal.SetValue()' (file 'IntegerT.h', line 77) [-2006]
[ WARN] [1548385968.642580159]: Most likely cause for this error is if your camera can't support color and your are trying to set it to color mode
terminate called after throwing an instance of 'Spinnaker::Exception'
what(): Spinnaker: GenICam::AccessException= Node is not writable. : AccessException thrown in node 'TriggerSoftware' while calling 'TriggerSoftware.Execute()' (file 'CommandT.h', line 61) [-2006]
[acquisition_node-2] process has died [pid 13535, exit code -6, cmd /home/naveed/Documents/forklift_ws/devel/lib/spinnaker_sdk_camera_driver/acquisition_node __name:=acquisition_node __log:=/home/naveed/.ros/log/163e809e-204f-11e9-b8aa-48e244c47c43/acquisition_node-2.log].
log file: /home/naveed/.ros/log/163e809e-204f-11e9-b8aa-48e244c47c43/acquisition_node-2*.log
hi @shahvi , thanks for your kind effort,
i successfully install the spinnaker in ubuntu 16.06 using the https://www.ptgrey.com/support/downloads SDK.
However, after I launch the launch file. It keep initializing. The output of the terminal is shown as follows:
ROS_MASTER_URI=http://localhost:11311
process[acquisition_node-1]: started with pid [35983]
[ INFO] [1532634725.551832777]: [ OK ] USB memory: 1000 MB
20180726[ INFO] [1532634725.552007210]: *** PARAMETER SETTINGS ***
[ INFO] [1532634725.552042492]: ** Date = 20180726
[ INFO] [1532634725.553050693]: Save path set via parameter to: /home/mscsim
[ INFO] [1532634725.553130185]: Camera IDs:
[ INFO] [1532634725.554337614]: 18285435
[ INFO] [1532634725.555473278]: Camera Aliases:
[ INFO] [1532634725.555527312]: 18285435 >> cam0
[ INFO] [1532634725.557665155]: Unique time stamps for each camera: 0
[ INFO] [1532634725.558754244]: color set to: 0
[ INFO] [1532634725.559858203]: Exporting images to ROS: 1
[ INFO] [1532634725.560955787]: Showing live images setting: 0
[ INFO] [1532634725.562036843]: Showing grid-style live images setting: 0
[ INFO] [1532634725.563059372]: Max Rate Save Mode: 0
[ INFO] [1532634725.564012400]: Displaying timing details: 0
[ INFO] [1532634725.564774616]: No. of images to skip set to: 20
[ INFO] [1532634725.565765973]: Init sleep delays set to : 20 sec
[ WARN] [1532634725.566955677]: 'fps' Parameter not set, using default behavior: fps=20.00
[ INFO] [1532634725.567906886]: 'exp'=0, Setting autoexposure
[ INFO] [1532634725.568642868]: Binning set to: 2
[ INFO] [1532634725.569545892]: Using Software rate control, rate set to: 20
[ INFO] [1532634725.570253196]: Saving images set to: 0
[ INFO] [1532634725.571615514]: Camera coeffs not provided correctly, camera info messges will not be published.
[ INFO] [1532634725.571665739]: Creating system instance...
[ INFO] [1532634725.572125027]: Retreiving list of cameras...
[ INFO] [1532634727.607574562]: Numer of cameras found: 1
[ INFO] [1532634727.607647535]: Cameras connected: 1
[ INFO] [1532634727.607699535]: -18285435
[ INFO] [1532634727.612179084]: *** FLUSH SEQUENCE ***
[ INFO] [1532634727.612233628]: Initializing cameras...
[ INFO] [1532634728.067750532]: Deinitializing cameras...
[ INFO] [1532634728.072786168]: All cameras deinitialized.
[ INFO] [1532634728.072877135]: Initializing cameras...
Hi @shahvi ,
Thanks for building this package.
I am currently using a black fly s. The acquisition frame rate on spinview is 200 and the image resolution was 1440x1080.
I ran your launch file and tried to get 200 fps but only getting a max of 47fps(33fps in color). The image resolution i'm getting is 720p. When i change the soft_framerate to anything higher than 47 i get this error:
How do i get 200 fps and 1080p image using your package?
Thanks in advance.
Modify the node so that if only 1 camera is connected, the serial numbers are not required.
Hi!
I'm using a GigE BSF camera and get this error:
[FATAL] [1558940122.459818739]: Excption: Spinnaker: Failed waiting for EventData on NEW_BUFFER_DATA event [-1011]
I can see the image for a few seconds but then the error comes.
Could somebody help me?
PARAMETERS
NODES
/
acquisition_node (spinnaker_sdk_camera_driver/acquisition_node)
auto-starting new master
process[master]: started with pid [8248]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 4f9f595a-804c-11e9-8439-e4e7491b4d31
process[rosout-1]: started with pid [8261]
started core service [/rosout]
process[acquisition_node-2]: started with pid [8278]
log4cxx: Could not read configuration file [/home/cpaniagua/workspaces/crv_ws/src/spinnaker_sdk_camera_driver/cfg/atd_console.conf].
[ INFO] [1558940086.138683281]: [ OK ] USB memory: 1000 MB
[ INFO] [1558940086.138787367]: *** PARAMETER SETTINGS ***
[ INFO] [1558940086.138810996]: ** Date = 20190527
[ INFO] [1558940086.139269778]: Save path set via parameter to: /home/cpaniagua
[ INFO] [1558940086.139311425]: Camera IDs:
[ INFO] [1558940086.139714906]: 18434477
[ INFO] [1558940086.140151610]: Camera Aliases:
[ INFO] [1558940086.140177757]: 18434477 >> cam0
[ INFO] [1558940086.140980758]: Unique time stamps for each camera: false
[ INFO] [1558940086.141366739]: color set to: false
[ INFO] [1558940086.141805404]: Exporting images to ROS: true
[ INFO] [1558940086.142242177]: Showing live images setting: false
[ INFO] [1558940086.142679324]: Showing grid-style live images setting: false
[ INFO] [1558940086.143168229]: Max Rate Save Mode: false
[ INFO] [1558940086.143602762]: Displaying timing details: false
[ INFO] [1558940086.143983993]: No. of images to skip set to: 2
[ INFO] [1558940086.144361464]: Init sleep delays set to : 0.00 sec
[ INFO] [1558940086.144787032]: Master cam fps set to : 10.00
[ INFO] [1558940086.145149309]: 'exp'=0, Setting autoexposure
[ INFO] [1558940086.145520790]: Binning set to: 2
[ INFO] [1558940086.145921243]: Using Software rate control, rate set to: 10
[ INFO] [1558940086.146331736]: Saving images set to: 0
[ INFO] [1558940086.147707064]: Camera coeffs not provided correctly, camera info messges will not be published.
[ INFO] [1558940086.147741762]: Creating system instance...
[ INFO] [1558940086.149169264]: Retreiving list of cameras...
[ INFO] [1558940087.619172667]: Numer of cameras found: 1
[ INFO] [1558940087.619209955]: Cameras connected: 1
[ INFO] [1558940087.619242041]: -18434477
[ INFO] [1558940087.621849166]: *** FLUSH SEQUENCE ***
[ INFO] [1558940087.621879806]: Initializing cameras...
[ INFO] [1558940088.928264000]: Deinitializing cameras...
[ INFO] [1558940089.138336741]: All cameras deinitialized.
[ INFO] [1558940089.138539016]: Initializing cameras...
[ INFO] [1558940090.279638149]: *** ACQUISITION ***
[FATAL] [1558940122.459818739]: Excption: Spinnaker: Failed waiting for EventData on NEW_BUFFER_DATA event [-1011]
[ INFO] [1558940122.540482320]: Deinitializing cameras...
[ INFO] [1558940122.748654234]: All cameras deinitialized.
[ INFO] [1558940122.748729271]: Clearing camList...
[ INFO] [1558940122.748754686]: Releasing camera pointers...
[ INFO] [1558940122.748779764]: Releasing system instance...
Hi,
when I'm trying to "catkin build" the spinnaker_camera_driver, I get the following error message:
CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by
"image_exposure_msgs" with any of the following names:
image_exposure_msgsConfig.cmake
image_exposure_msgs-config.cmake
Add the installation prefix of "image_exposure_msgs" to CMAKE_PREFIX_PATH
or set "image_exposure_msgs_DIR" to a directory containing one of the above
files. If "image_exposure_msgs" provides a separate development package or
SDK, be sure it has been installed.
Call Stack (most recent call first):
CMakeLists.txt:8 (find_package)
I'm new to the ROS-environment, so I don't really understand what that means?
I'm using Ubuntu 18.04 and ROS Melodic.
My catkin-configuration is:
Devel Space Layout: linked
Install Space Layout: None
---------------------------------------------------------------------------------------------------------
Additional CMake Args: -DCMAKE_BUILD_TYPE=Release -DBINDINGS_RUBY=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_FLAGS=-Wno-int-in-bool-context
Additional Make Args: None
Additional catkin Make Args: None
Internal Make Job Server: True
Cache Job Environments: False
---------------------------------------------------------------------------------------------------------
Whitelisted Packages: None
Blacklisted Packages: None
Please let me know if you need some further information
Thanks for your help! :)
Hi,
Just one more question.
I found that the published framerate (~20Hz) is lower than my camera's max frame rate (35Hz), even if I set fps and soft_framerate to be 35Hz in acquisition.launch file.
Also, the resolution (1224x1024) of published image is exactly half of the max resolution of my camera (2448x2048).
Is there any way to tune it to be max? Thanks.
Cheers,
Su
The package name in package.xml is "spinnaker_sdk_camera_driver" whereas the README.md instructions use package name "spinnaker_camera_driver."
I think either the instructions should be changed to
roslaunch spinnaker_sdk_camera_driver acquisition.launch
or line 3 of package.xml should be changed to
<name>spinnaker_camera_driver</name>
hi, Mr shahvi,
When I Install the driver and run "catkin_make",
The following error occurred:
fatal error: spinnaker_sdk_camera_driver/spinnaker_image_names.h: No such file or directory
How can I find the "spinnaker_image_names.h" file?
Would you please help me? Thanks
Hi.
I'm using Blackfly S USB and running tiny yolo for object detection on Jetson Xavier. A few times, I run into this error and the node shuts down.
I use the acquisition.launch
, color image at with usbfs memory 1000-2048. Can you help to clarify what this error means? Does it relate to memory issue?
[FATAL] [1562808193.910065924]: Excption: Spinnaker: Could not write Port at address: 000C8824 with length: 00000004 [-1010]
Hi,
Thanks for providing the driver. Very useful.
I had a problem with reading list of cameras from test_params.yaml. I followed you documentation and set the yaml file as follows:
cam_ids:
- 18285082
cam_aliases: cam0
master_cam:
- 18285082
skip: 20
delay: 0
Unfortunately, it is not working. When I examined it carefully, I found that the following line in capture.cpp is doing nothing.
ROS_ASSERT_MSG(nh_pvt_.getParam("cam_ids", cam_id_vec),"If cam_aliases are provided, they should be the same number as cam_ids and should correspond in order!");
This results in cam_id_vec.size()
equals to 0.
I further found that ROS_ASSERT_MSG(CONDITION, MSG)
is doing nothing. e.g. I put the following code in capture.cpp,
ROS_ASSERT_MSG(true,"true !!");
ROS_ASSERT_MSG(false,"false !!");
It does not give me any error or feeback msg during the launch.
To make things get working. I ended up changing the code into:
//ROS_ASSERT_MSG(nh_pvt_.getParam("cam_ids", cam_id_vec),"If cam_aliases are provided, they should be the same number as cam_ids and should correspond in order!");
int cam_id_vec_int;
nh_pvt_.getParam("cam_ids", cam_id_vec_int);
cam_id_vec.push_back(cam_id_vec_int);
...
//ROS_ASSERT_MSG(nh_pvt_.getParam("master_cam", mcam_int),"master_cam is required!");
nh_pvt_.getParam("master_cam", mcam_int);
master_cam_id_=to_string(mcam_int);
and the yaml file into:
cam_ids: 18285082
cam_aliases: cam0
master_cam: 18285082
skip: 20
delay: 0
However, the code only runs one camera in this way.
So, I'd like to if the raw code is working properly on your machine? Can you suggest me what might be the problem on my side?
Thanks.
Su
I'm using BFS-PGE-200S6C-C camera GigE.
Ubuntu 16.04, ROS kinetic.
When I use a USB camera, nothing happened.
When I use a GigE camera, many crashes.
First, I have configured "jumbo frames" to 9K MTU, so that there will be no "WARNING: IMAGE MISSING PACKETS".
Then, when I got:
"[FATAL] [1558592573.700551986]: ASSERTION FAILED
file = /home/ziqi/catkin_icosphere/src/spinnaker_sdk_camera_driver/src/camera.cpp
line = 59
cond = frameID_ == 0
message =
[FATAL] [1558592573.700634858]: First frame ID was not zero! Might cause sync issues later..."
I comment on the ASSERTION.
But I think the bandwidth of 1000M is still sometimes not enough, so there will be:
"Warning: Image incomplete with image status 9!"
and
"Exception: Spinnaker: Failed waiting for EventData on NEW_BUFFER_DATA event [-1011]"
and
"terminate called after throwing an instance of 'std::bad_cast' what(): std::bad_cast".
So I lower the frame rate to 1 in launch file, and it can run as long as 2min, and eventually crash with "terminate called after throwing an instance of 'std::bad_cast' what(): std::bad_cast".
So maybe, it's just because the bandwidth is not big enough as USB.
Hi! Thanks to all contributors for this driver!
I'm running a BlackFlyS FLIR camera on a Raspberry Pi4 (4GB), running Ubuntu 18.04 (kernel version 4.19.86-v8-24, most recent firmware, with usbfs_memory_mb set to 4096. While the camera works in SpinView dependably, there are some issues running the camera through this ROS driver.
In my testing, I have only been able to get the ROS driver to successfully run under certain conditions:
If Spinview is not run (and stopped) before the ROS driver, or the ROS driver is set to use color (regardless of any other parameters), the driver crashes with the following error:
Spinnaker could not open the device, try reconnecting the device.
Not only that, but the crash appears to extend to crashing the entire system. The GUI of the entire OS becomes unresponsive, and if running in a TTY, the TTY begins to get flooded by the following messages:
Dec 10 18:40:05 rpi kernel: [ 778.197866] raspberrypi-clk raspberrypi-clk: Failed to get pllb frequency: -12
Dec 10 18:40:05 rpi kernel: [ 778.213628] raspberrypi-clk raspberrypi-clk: Failed to change pllb frequency: -12
Dec 10 18:40:05 rpi kernel: [ 778.213637] raspberrypi-clk raspberrypi-clk: Failed to get pllb frequency: -12
Dec 10 18:40:05 rpi kernel: [ 778.289829] raspberrypi-clk raspberrypi-clk: Failed to change v3d frequency: -12
Dec 10 18:40:05 rpi kernel: [ 778.289843] raspberrypi-clk raspberrypi-clk: Failed to get v3d frequency: -12
The error, as far as I can find in syslog, is the following:
Dec 10 17:46:19 rpi kernel: [ 554.427395] xhci_hcd 0000:01:00.0: Ring expansion failed
Dec 10 17:46:19 rpi kernel: [ 554.429241] usb 2-2: usbfs: usb_submit_urb returned -12
Dec 10 17:46:19 rpi kernel: [ 554.609879] vc4_plane_set_blank: firmware call failed. Please update your firmware
Dec 10 17:46:19 rpi kernel: [ 554.610098] WARNING: CPU: 3 PID: 7 at drivers/gpu/drm/vc4/vc4_firmware_kms.c:401 vc4_plane_set_blank+0x134/0x140 [vc4]
Dec 10 17:46:19 rpi kernel: [ 554.610102] Modules linked in: rfcomm aes_neon_blk crypto_simd cryptd aes_arm64 bnep hci_uart btbcm serdev bluetooth ecdh_generic fuse joydev evdev vc4 brcmfmac snd_bcm2835(C) drm_kms_helper cec brcmutil snd_seq_midi snd_soc_core snd_seq_midi_event snd_compress snd_rawmidi snd_pcm_dmaengine cfg80211 snd_pcm snd_seq v3d bcm2835_codec(C) v4l2_mem2mem gpu_sched rfkill snd_seq_device bcm2835_v4l2(C) videobuf2_dma_contig snd_timer syscopyarea bcm2835_mmal_vchiq(C) v4l2_common sysfillrect videobuf2_vmalloc sysimgblt videobuf2_memops fb_sys_fops videobuf2_v4l2 drm videobuf2_common raspberrypi_hwmon snd hwmon drm_panel_orientation_quirks videodev media i2c_bcm2835 vc_sm_cma(C) rpivid_mem uio_pdrv_genirq uio fixed sch_fq_codel i2c_dev ip_tables x_tables ipv6 crc_ccitt
Dec 10 17:46:19 rpi kernel: [ 554.610315] CPU: 3 PID: 7 Comm: kworker/u8:0 Tainted: G C 4.19.86-v8-24 #24
Dec 10 17:46:19 rpi kernel: [ 554.610322] Hardware name: Raspberry Pi 4 Model B Rev 1.1 (DT)
Dec 10 17:46:19 rpi kernel: [ 554.610342] Workqueue: events_unbound commit_work [vc4]
Dec 10 17:46:19 rpi kernel: [ 554.610350] pstate: 00000005 (nzcv daif -PAN -UAO)
Dec 10 17:46:19 rpi kernel: [ 554.610363] pc : vc4_plane_set_blank+0x134/0x140 [vc4]
Dec 10 17:46:19 rpi kernel: [ 554.610376] lr : vc4_plane_set_blank+0x134/0x140 [vc4]
Dec 10 17:46:19 rpi kernel: [ 554.610378] sp : ffffff800805bc50
Dec 10 17:46:19 rpi kernel: [ 554.610381] x29: ffffff800805bc50 x28: ffffffac8ba66000
Dec 10 17:46:19 rpi kernel: [ 554.610388] x27: ffffffe9b701c070 x26: ffffffe96bb0fa00
Dec 10 17:46:19 rpi kernel: [ 554.610394] x25: ffffffac4c63a3f0 x24: ffffffac4c4c2310
Dec 10 17:46:19 rpi kernel: [ 554.610400] x23: ffffffac4c63a328 x22: 0000000000000000
Dec 10 17:46:19 rpi kernel: [ 554.610407] x21: ffffffe9b250e480 x20: ffffffac8ba686c8
Dec 10 17:46:19 rpi kernel: [ 554.610413] x19: 00000000fffffff4 x18: 0000000000000000
Dec 10 17:46:19 rpi kernel: [ 554.610420] x17: 0000000000000001 x16: 0000000000000007
Dec 10 17:46:19 rpi kernel: [ 554.610426] x15: 0000000000000000 x14: 69662072756f7920
Dec 10 17:46:19 rpi kernel: [ 554.610433] x13: 6574616470752065 x12: 7361656c50202e64
Dec 10 17:46:19 rpi kernel: [ 554.610440] x11: 656c696166206c6c x10: 616320657261776d
Dec 10 17:46:19 rpi kernel: [ 554.610446] x9 : 726966203a6b6e61 x8 : 6c625f7465735f65
Dec 10 17:46:19 rpi kernel: [ 554.610453] x7 : ffffffac8bb85000 x6 : 0000003d30790000
Dec 10 17:46:19 rpi kernel: [ 554.610461] x5 : 0000000000000001 x4 : ffffffac8ab318dc
Dec 10 17:46:19 rpi kernel: [ 554.610468] x3 : ffffffe9bbfaa098 x2 : 0000000000000007
Dec 10 17:46:19 rpi kernel: [ 554.610474] x1 : 7fdde3a69068f000 x0 : 0000000000000000
Dec 10 17:46:19 rpi kernel: [ 554.610481] Call trace:
Dec 10 17:46:19 rpi kernel: [ 554.610498] vc4_plane_set_blank+0x134/0x140 [vc4]
Dec 10 17:46:19 rpi kernel: [ 554.610510] vc4_plane_atomic_update+0x44/0x50 [vc4]
Dec 10 17:46:19 rpi kernel: [ 554.610573] drm_atomic_helper_commit_planes+0xf4/0x220 [drm_kms_helper]
Dec 10 17:46:19 rpi kernel: [ 554.610587] vc4_atomic_complete_commit+0x60/0x280 [vc4]
Dec 10 17:46:19 rpi kernel: [ 554.610599] commit_work+0x20/0x30 [vc4]
Dec 10 17:46:19 rpi kernel: [ 554.610616] process_one_work+0x1c4/0x420
Dec 10 17:46:19 rpi kernel: [ 554.610620] worker_thread+0x50/0x408
Dec 10 17:46:19 rpi kernel: [ 554.610626] kthread+0x108/0x138
Dec 10 17:46:19 rpi kernel: [ 554.610633] ret_from_fork+0x10/0x1c
Dec 10 17:46:19 rpi kernel: [ 554.610638] ---[ end trace b99e203732373c60 ]---
I realize that this may be out of your capacity to help me debug, but if you have any idea of what might be going on, I'd appreciate some guidance, as this is very confusing to me.
Hi there,
I am currently working on a new project using ROS to get data from a FLIR Blackfly camera (I am still quite new to this language). I followed the instructions written on the ROS wiki web page (including changing the serial number) but still couldn't launch the acquisition.launch file. Here are the FATAL errors that I have:
[FATAL] [1563449758.815448351]: Error: Spinnaker: GenICam::OutOfRangeException= Value = 1 must be equal or greater than Min = 2. : OutOfRangeException thrown in node 'BinningHorizontal' while calling 'BinningHorizontal.SetValue()' (file 'IntegerT.h', line 79) [-2002]
[ WARN] [1563449758.815547185]: Most likely cause for this error is if your camera can't support color and your are trying to set it to color mode
[FATAL] [1563449758.934733561]: Failed to load nodelet '/acquisition_nodeof typeacquisition/capture_nodeletto managervision_nodelet_manager'
terminate called after throwing an instance of 'Spinnaker::Exception'
what(): Spinnaker: Camera is not started. [-1002]
[vision_nodelet_manager-2] process has died [pid 31124, exit code -6, cmd /opt/ros/melodic/lib/nodelet/nodelet manager __name:=vision_nodelet_manager __log:=/home/dell8116/.ros/log/3345535e-a950-11e9-b8e9-c8f750384496/vision_nodelet_manager-2.log].
log file: /home/dell8116/.ros/log/3345535e-a950-11e9-b8e9-c8f750384496/vision_nodelet_manager-2*.log
[acquisition_node-3] process has died [pid 31125, exit code 255, cmd /opt/ros/melodic/lib/nodelet/nodelet load acquisition/capture_nodelet vision_nodelet_manager __name:=acquisition_node __log:=/home/dell8116/.ros/log/3345535e-a950-11e9-b8e9-c8f750384496/acquisition_node-3.log].
log file: /home/dell8116/.ros/log/3345535e-a950-11e9-b8e9-c8f750384496/acquisition_node-3*.log
And here is the text in test_params.yaml:
cam_ids:
19138453
cam_aliases:
cam0
master_cam: 19138453
skip: 20
delay: 1.0
Assign all the follwing via launch file to prevent confusion and conflict
#save_path: ~/projects/data
#save_type: .bmp #binary or .tiff or .bmp
#binning: 1 # going from 2 to 1 requires cameras to be unplugged and replugged
#color: false
#frames: 50
#soft_framerate: 20 # this frame rate reflects to the software frame rate set using ros::rate
#exp: 997
#to_ros: true #When to_ros is not selected, but live is selected, pressing 'space' exports single image to ROS
#Camera info message details
distortion_model: plumb_bob
image_height: 1536
image_width: 2048
distortion_coeffs:
[-0.021141875266089592, -0.3733872931278025, 2.385982550579459, 3.2824571732099725]
#specified as [fx 0 cx 0 fy cy 0 0 1]
intrinsic_coeffs:
[1886.9232141485886, 0.0, 604.7214878709341, 0.0, 1886.6668765711668, 493.47726714719823, 0.0, 0.0, 1.0]
rectification_coeffs:
[1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000]
projection_coeffs:
[913.700317, 0.000000, 953.448302, 0.000000, 0.000000, 1063.296631, 777.871993, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]
Currently I am using ros melodic (Ubuntu 18.04 Bionic) and I know that the package is written for kinetic but are there ways to fix these problems and get it working? It would mean so much to me.
Many thanks.
hi,
I installed the package as described in the readme file but run into following error when launching the acquisition.launch file:
SUMMARY
PARAMETERS
NODES
/
acquisition_node (nodelet/nodelet)
vision_nodelet_manager (nodelet/nodelet)
auto-starting new master
process[master]: started with pid [3186]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to c62ad446-d484-11e9-a8db-704d7b468a87
process[rosout-1]: started with pid [3197]
started core service [/rosout]
process[vision_nodelet_manager-2]: started with pid [3204]
process[acquisition_node-3]: started with pid [3205]
[ INFO] [1568200234.378092973]: Initializing nodelet with 8 worker threads.
[ INFO] [1568200234.469821027]: Initializing nodelet
[ INFO] [1568200234.470650278]: [ OK ] USB memory: 1000 MB
[ INFO] [1568200234.470738239]: *** PARAMETER SETTINGS ***
[ INFO] [1568200234.470766384]: ** Date = 20190911
[ INFO] [1568200234.471259372]: Save path set via parameter to: /home/dflap3
[ INFO] [1568200234.471344509]: Camera IDs:
[ INFO] [1568200234.471757675]: 19196232
[ INFO] [1568200234.471792758]: 18369848
[ INFO] [1568200234.472160588]: Camera Aliases:
[ INFO] [1568200234.472199804]: 19196232 >> cam0
[ INFO] [1568200234.472227846]: 18369848 >> cam1
[ INFO] [1568200234.472832455]: Unique time stamps for each camera: false
[ INFO] [1568200234.473213194]: color set to: false
[ INFO] [1568200234.473500659]: Exporting images to ROS: true
[ INFO] [1568200234.473786457]: Showing live images setting: false
[ INFO] [1568200234.474056609]: Showing grid-style live images setting: false
[ INFO] [1568200234.474328396]: Max Rate Save Mode: false
[ INFO] [1568200234.474594420]: Displaying timing details: false
[ INFO] [1568200234.474852531]: No. of images to skip set to: 20
[ INFO] [1568200234.475111779]: Init sleep delays set to : 1.00 sec
[ WARN] [1568200234.475356684]: 'fps' Parameter not set, using default behavior: fps=20.00
[ INFO] [1568200234.475595481]: 'exposure_time'=0, Setting autoexposure
[ INFO] [1568200234.475838259]: 'target_grey_value'=0, Setting AutoExposureTargetGreyValueAuto to Continuous/ auto
[ INFO] [1568200234.476077990]: 'binning'=1 invalid, Using defauly binning=
[ INFO] [1568200234.476317417]: Using Software rate control, rate set to: 30
[ INFO] [1568200234.476556696]: Saving images set to: 0
[ INFO] [1568200234.476817448]: Camera Intrinsic Paramters:
[ INFO] [1568200234.477031244]: 1886.923214 0.000000 604.721488 0.000000 1886.666877 493.477267 0.000000 0.000000 1.000000
[ INFO] [1568200234.477087424]: 1886.923214 0.000000 604.721488 0.000000 1886.666877 493.477267 0.000000 0.000000 1.000000
[ INFO] [1568200234.477354952]: Camera Distortion Paramters:
[ INFO] [1568200234.477408009]: -0.021142 -0.373387 2.385983 3.282457
[ INFO] [1568200234.477423409]: -0.021142 -0.373387 2.385983 3.282457
[ INFO] [1568200234.477650528]: Camera Rectification Paramters:
[ INFO] [1568200234.477699540]: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000
[ INFO] [1568200234.477726995]: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000
[ INFO] [1568200234.478031901]: Camera Projection Paramters:
[ INFO] [1568200234.478095465]: 913.700317 0.000000 953.448302 0.000000 0.000000 1063.296631 777.871993 0.000000 0.000000 0.000000 1.000000 0.000000
[ INFO] [1568200234.478151048]: 913.700317 0.000000 953.448302 0.000000 0.000000 1063.296631 777.871993 0.000000 0.000000 0.000000 1.000000 0.000000
[ INFO] [1568200234.478163537]: Camera coeffs provided, camera info messges will be published.
[ INFO] [1568200234.478190427]: Creating system instance...
[ INFO] [1568200234.479567690]: Retreiving list of cameras...
[ INFO] [1568200235.951922580]: Numer of cameras found: 2
[ INFO] [1568200235.951970578]: Cameras connected: 2
[ INFO] [1568200235.952035932]: -18369848
[ INFO] [1568200235.952070280]: -19196232
[ INFO] [1568200235.991937338]: Dynamic Reconfigure: Level : 4294967295
[ INFO] [1568200235.992759586]: *** FLUSH SEQUENCE ***
[ INFO] [1568200235.992779510]: Initializing cameras...
[ INFO] [1568200236.850680937]: Deinitializing cameras...
[ INFO] [1568200237.259045112]: All cameras deinitialized.
[ INFO] [1568200239.259414460]: Initializing cameras...
[FATAL] [1568200239.467671816]: Unable to set BinningHorizontal to 1 (ptr retrieval). Aborting...
[FATAL] [1568200239.467947258]: Error: Spinnaker: GenICam::AccessException= Node is not writable. : AccessException thrown in node 'BinningHorizontal' while calling 'BinningHorizontal.SetValue()' (file 'IntegerT.h', line 77) [-2006]
[ WARN] [1568200239.467999702]: Most likely cause for this error is if your camera can't support color and your are trying to set it to color mode
[FATAL] [1568200239.661708138]: Failed to load nodelet '/acquisition_nodeof type
acquisition/capture_nodeletto manager
vision_nodelet_manager'
[acquisition_node-3] process has died [pid 3205, exit code 255, cmd /opt/ros/melodic/lib/nodelet/nodelet load acquisition/capture_nodelet vision_nodelet_manager __name:=acquisition_node __log:=/home/dflap3/.ros/log/c62ad446-d484-11e9-a8db-704d7b468a87/acquisition_node-3.log].
log file: /home/dflap3/.ros/log/c62ad446-d484-11e9-a8db-704d7b468a87/acquisition_node-3*.log
terminate called after throwing an instance of 'Spinnaker::Exception'
what(): Spinnaker: GenICam::AccessException= Node is not writable. : AccessException thrown in node 'TriggerSoftware' while calling 'TriggerSoftware.Execute()' (file 'CommandT.h', line 61) [-2006]
[vision_nodelet_manager-2] process has died [pid 3204, exit code -6, cmd /opt/ros/melodic/lib/nodelet/nodelet manager __name:=vision_nodelet_manager __log:=/home/dflap3/.ros/log/c62ad446-d484-11e9-a8db-704d7b468a87/vision_nodelet_manager-2.log].
log file: /home/dflap3/.ros/log/c62ad446-d484-11e9-a8db-704d7b468a87/vision_nodelet_manager-2*.log
^C[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done
as you can see, binning was set to 0 in the params...
Also color mode was deactivated, so that can't be the issue - even though the cameras (BFLY-PGE-23S6-C) do support color.
Any suggestions?
Thanks a lot and best regards,
addext
Greetings. I am wondering what is the physical meaning of projection_coeff? And how it is calculated? It feels like coming from intrinsic and distortion, but I am not sure how though...
Please advise.. Thank you.
such as White Balence
Is it because there is some buffer to configure ? Im using the camera in a separated network interface so the bandwith shouldnt be a problem.
The spinnaker node should error out and exit with a message if it cannot find all the specified cameras.
Can a signal generator (generating a standard pulse wave) be used with multiple cameras as slaves thereby making use of no master cam using this SDK?
I am trying to connect 3 cameras in sync but without having one of the cameras as a master. The setup instead will use a signal generator as a trigger for the 3 cameras.
In which part of the node is it possible to flip the image both vertically and horizontally ? In spinview its ReverseX and ReverseY but I dont really know which part of the API corresponds to those flags and in which part of the adquisition procedure should I change it
Hi
I was trying to install the driver and ROS node for a Blackfly S 0.4MP (Mono) USB 3 camera, but the ROS node keeps failing with an obscure error message:
Console output:
process[acquisition_node-1]: started with pid [18446]
[ INFO] [1543406066.566989925]: [ OK ] USB memory: 1000 MB
20181128[ INFO] [1543406066.567830177]: *** PARAMETER SETTINGS ***
[ INFO] [1543406066.567851121]: ** Date = 20181128
[ INFO] [1543406066.568256178]: Save path set via parameter to: /home/mfehr
[ INFO] [1543406066.568295076]: Camera IDs:
[ INFO] [1543406066.568700824]: 18286011
[ INFO] [1543406066.569064274]: Camera Aliases:
[ INFO] [1543406066.569085450]: 18286011 >> cam0
[ INFO] [1543406066.569885286]: Unique time stamps for each camera: 0
[ INFO] [1543406066.570257958]: color set to: 0
[ INFO] [1543406066.570630975]: Exporting images to ROS: 1
[ INFO] [1543406066.570990423]: Showing live images setting: 0
[ INFO] [1543406066.571327265]: Showing grid-style live images setting: 0
[ INFO] [1543406066.571658724]: Max Rate Save Mode: 0
[ INFO] [1543406066.571938841]: Displaying timing details: 0
[ INFO] [1543406066.572210547]: No. of images to skip set to: 20
[ INFO] [1543406066.572479189]: Init sleep delays set to : 20 sec
[ WARN] [1543406066.572758069]: 'fps' Parameter not set, using default behavior: fps=20.00
[ INFO] [1543406066.573029590]: 'exp'=0, Setting autoexposure
[ INFO] [1543406066.573316150]: Binning set to: 2
[ INFO] [1543406066.573605354]: Using Software rate control, rate set to: 20
[ INFO] [1543406066.573913936]: Saving images set to: 0
[ INFO] [1543406066.574420132]: Camera coeffs not provided correctly, camera info messges will not be published.
[ INFO] [1543406066.574460727]: Creating system instance...
[ INFO] [1543406066.575081079]: Retreiving list of cameras...
[ INFO] [1543406068.494115871]: Numer of cameras found: 1
[ INFO] [1543406068.494220409]: Cameras connected: 1
[ INFO] [1543406068.494301892]: -18286011
[ INFO] [1543406068.499358346]: *** FLUSH SEQUENCE ***
[ INFO] [1543406068.499439460]: Initializing cameras...
[ INFO] [1543406068.841084258]: Deinitializing cameras...
[ INFO] [1543406068.846022099]: All cameras deinitialized.
[ INFO] [1543406068.846102392]: Initializing cameras...
[ INFO] [1543406069.091411564]: *** ACQUISITION ***
[FATAL] [1543406071.120527337]: Some exception occured.
Exiting gracefully,
possible reason could be Camera Disconnection...
[ INFO] [1543406071.556492237]: Deinitializing cameras...
[ INFO] [1543406071.561361527]: All cameras deinitialized.
[ INFO] [1543406071.561383029]: Clearing camList...
[ INFO] [1543406071.561416981]: Releasing camera pointers...
[ INFO] [1543406071.561442979]: Releasing system instance...
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
[acquisition_node-1] process has died [pid 18446, exit code -6, cmd /home/mfehr/spinnaker_ws/devel/lib/spinnaker_sdk_camera_driver/acquisition_node __name:=acquisition_node __log:=/home/mfehr/.ros/log/a20abe0a-f2e9-11e8-b469-507b9dc5144a/acquisition_node-1.log].
log file: /home/mfehr/.ros/log/a20abe0a-f2e9-11e8-b469-507b9dc5144a/acquisition_node-1*.log
Exception:
I modified the try-catch statement in capture.cpp
to actually output the exception and got this:
Failed waiting for EventData on NEW_BUFFER_DATA event [-1011]
I did find this issue here. But I'm not sure how to use this, since I'm not triggering the camera. I'm just using the default test_params.yaml
file (with changing the ID of course).
GDB backtrache:
#0 0x00007ffff3b5ee97 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff3b60801 in __GI_abort () at abort.c:79
#2 0x00007ffff3f9d8b7 in () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff3fa3a06 in () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff3fa2a69 in () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff3fa3418 in __gxx_personality_v0 () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff76cea9c in __libunwind_Unwind_RaiseException () at /usr/lib/x86_64-linux-gnu/libunwind.so.8
#7 0x00007ffff3fa3c67 in __cxa_throw () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#8 0x00007ffff3fa29a2 in () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9 0x00007ffff7972bfd in Spinnaker::CameraPtr::operator=(int) () at /home/mfehr/spinnaker_ws/devel/lib/libacquilib.so
#10 0x00007ffff7998ece in acquisition::Camera::~Camera() () at /home/mfehr/spinnaker_ws/devel/lib/libacquilib.so
#11 0x00007ffff798e87d in void std::_Destroy<acquisition::Camera>(acquisition::Camera*) ()
at /home/mfehr/spinnaker_ws/devel/lib/libacquilib.so
#12 0x00007ffff798b7fb in void std::_Destroy_aux<false>::__destroy<acquisition::Camera*>(acquisition::Camera*, acquisition::Camera*) () at /home/mfehr/spinnaker_ws/devel/lib/libacquilib.so
#13 0x00007ffff7986df2 in void std::_Destroy<acquisition::Camera*>(acquisition::Camera*, acquisition::Camera*) ()
at /home/mfehr/spinnaker_ws/devel/lib/libacquilib.so
#14 0x00007ffff79818df in void std::_Destroy<acquisition::Camera*, acquisition::Camera>(acquisition::Camera*, acquisition::Camera*, std::allocator<acquisition::Camera>&) () at /home/mfehr/spinnaker_ws/devel/lib/libacquilib.so
#15 0x00007ffff797a483 in std::vector<acquisition::Camera, std::allocator<acquisition::Camera> >::~vector() ()
at /home/mfehr/spinnaker_ws/devel/lib/libacquilib.so
#16 0x00007ffff795b66c in acquisition::Capture::~Capture() () at /home/mfehr/spinnaker_ws/devel/lib/libacquilib.so
#17 0x000055555555cd49 in main ()
spinview works:
The camera application that came with the driver spinview
works fine and successfully displays the camera image.
My System:
Ubuntu 18.04, ROS melodic, I installed the driver (followed the instructions in the README) and pulled current master from this repo.
I tried searching online and also ran gdb, but it's an error from inside the driver, not the ROS node itself.
Could you give me a hint how I can fix this issue?
I am using an ORX-10G-51S5C camera with ROS and recording the data into a rosbag. I am consistently getting a frame rate in the mid 20s and would like to increase it to more than 30 fps. I am calculating the frame by dividing msgs in rosbag by the length in seconds of the rosbag. I have set binning to 2, and in SpinView set the GevSCPD to 1000 and the DeviceLinkThroughputLimit to 1200000000. What can be changed to increase the framerate and not impact the resolution significantly? When binning is set to 2 in SpinView, I am able to get 144 frames per second. I was able to get my GigE camera working by following this thread: #10.
The current code doesn't use image transport. There is some clash between the sdk and the node that makes the system crash when using Image transport,
I have a BFLY-PGE-31S4C-C camera (colour camera) that works fine with SpinView but does not appear to work with this software. When I launch I get:
.
.
.
[ INFO] [1574766847.220783177]: *** FLUSH SEQUENCE ***
[ INFO] [1574766847.220853627]: Initializing cameras...
[ INFO] [1574766848.266822840]: Deinitializing cameras...
[ INFO] [1574766848.471857426]: All cameras deinitialized.
[ INFO] [1574766850.472168583]: Initializing cameras...
[FATAL] [1574766633.586155060]: Unable to set BinningHorizontal to 1 (ptr retrieval). Aborting...
[FATAL] [1574766633.586326700]: Error: Spinnaker: GenICam::AccessException= Node is not writable. : AccessException thrown in node 'BinningHorizontal' while calling 'BinningHorizontal.SetValue()' (file 'IntegerT.h', line 77) [-2006]
[ WARN] [1574766633.586353570]: Most likely cause for this error is if your camera can't support color and your are trying to set it to color mode
I tried commenting out the lines that set binning as suggested here
#19
and I got similar complaints about "AutoExposureTargetGreyValueAuto" and then "LineSelector", "LineMode" etc. and eventually
[ INFO] [1574767506.657825357]: *** ACQUISITION ***
[FATAL] [1574767506.678578051]: Unable to execute trigger. Aborting...
terminate called after throwing an instance of 'Spinnaker::Exception'
what(): Spinnaker: GenICam::AccessException= Node is not writable. : AccessException thrown in node 'TriggerSoftware' while calling 'TriggerSoftware.Execute()' (file 'CommandT.h', line 61) [-2006]
I guess this software doesn't support my camera? :)
Is there any plans to implement these things ?
When listing topics, I can see that Camera_info has been initialized but doesnt show any info when using rostopic echo
image_transport_test code works for single camera
when multiple cameras are plugged in, following error occurs
terminate called after throwing an instance of 'Spinnaker::Exception'
what(): Spinnaker: Failed waiting for EventData on NEW_BUFFER_DATA event [-1011]
gdb output:
[New Thread 0x7fff84ff9700 (LWP 21638)]
[New Thread 0x7fff667fc700 (LWP 21639)]
[Thread 0x7fff667fc700 (LWP 21639) exited]
[Thread 0x7fff84ff9700 (LWP 21638) exited]
terminate called after throwing an instance of 'Spinnaker::Exception'
what(): Spinnaker: Failed waiting for EventData on NEW_BUFFER_DATA event [-1011]
Thread1 "acquisition_nod" received signal SIGABRT, Aborted.
0x00007ffff3c29428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
54 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) where
#0 0x00007ffff3c29428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1 0x00007ffff3c2b02a in __GI_abort () at abort.c:89
#2 0x00007ffff404d84d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff404b6b6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff404b701 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff404b919 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff4db77be in ?? () from /usr/lib/libSpinnaker.so.1
#7 0x00007ffff4dae655 in ?? () from /usr/lib/libSpinnaker.so.1
#8 0x00007ffff4de5816 in ?? () from /usr/lib/libSpinnaker.so.1
#9 0x00007ffff4ea8b61 in Spinnaker::CameraBase::GetNextImage(unsigned long, unsigned long) () from /usr/lib/libSpinnaker.so.1
#10 0x00007ffff7b90813 in acquisition::Camera::grab_frame() () from /home/mithun/apps/ws_catkin/devel/lib/libacquilib.so
#11 0x00007ffff7b91477 in acquisition::Camera::grab_mat_frame() () from /home/mithun/apps/ws_catkin/devel/lib/libacquilib.so
#12 0x00007ffff7b4981d in acquisition::Capture::get_mat_images() () from /home/mithun/apps/ws_catkin/devel/lib/libacquilib.so
#13 0x00007ffff7b4a05a in acquisition::Capture::run_soft_trig() () from /home/mithun/apps/ws_catkin/devel/lib/libacquilib.so
#14 0x00007ffff7b4e3c2 in acquisition::Capture::run() () from /home/mithun/apps/ws_catkin/devel/lib/libacquilib.so
#15 0x00000000004073c2 in main ()
(gdb)
Tried with Powered USB hub, so it's not power related error either.
AcquisitionMultipleCamera binary, can save images from both the cameras.
The GetNextImage error occurs for the cam1 (for master cam, it is successful )before entering the loop in run_soft_trig()
Hello, I would like to know more about methods, in IManagedCameraBase
class:
IManagedImage GetNextImage();
IManagedImage GetNextImage(ulong timout);
But there is not much documentation there (Or I can not find it).
I have installed "SpinnakerSDK_FULL_1.27.0.48_x86" from FLIR.
And have made one C# application with DLL libary "SpinnakerNET_v140.dll" version 1.27.0.48.
All works Okay, except when I'm continuously getting frames from FLIR AX5 camera and then unplug network cable, I get 2 exceptions:
System.Runtime.InteropServices.SEHException: 'External component has thrown an exception.'
SpinnakerNET.SpinnakerException: 'Spinnaker: Failed waiting for EventData on NEW_BUFFER_DATA event. [-1011]'
in line
using (IManagedImage rawImage = cam.GetNextImage(500))
So i would ask you, if i can get more documentation how to handle this exception and use this method.
I learned how to use SDK from "Acquisition_CSharp_vs2015" example, and my code is mostly the same with few modifications - it runs in thread and I show images with LUT on windows form application.
Is there OnDisconnect event in SDK?
Any examples for reconnection handling?
I am trying to use a GigE Blackfly S with this driver and the nodelet is crashing without any error messages. I've correctly set the camera serial and experimented with both binning 1 and 2 and left all other parameters at default. I can confirm that the camera works perfectly fine in spinview. Here is the log output:
started roslaunch server http://alex-desktop:35887/
SUMMARY
========
PARAMETERS
* /acquisition_node/binning: 2
* /acquisition_node/cam_aliases: ['cam0']
* /acquisition_node/cam_ids: [19220523]
* /acquisition_node/color: True
* /acquisition_node/delay: 1.0
* /acquisition_node/distortion_coeffs: [[-0.021141875266...
* /acquisition_node/distortion_model: plumb_bob
* /acquisition_node/exposure_time: 0
* /acquisition_node/frames: 3400
* /acquisition_node/image_height: 1536
* /acquisition_node/image_width: 2048
* /acquisition_node/intrinsic_coeffs: [[1886.9232141485...
* /acquisition_node/live: False
* /acquisition_node/live_grid: False
* /acquisition_node/master_cam: 19220523
* /acquisition_node/max_rate_save: False
* /acquisition_node/projection_coeffs: [[913.700317, 0.0...
* /acquisition_node/rectification_coeffs: [[1.0, 0.0, 0.0, ...
* /acquisition_node/save: False
* /acquisition_node/save_path: ~
* /acquisition_node/save_type: bmp
* /acquisition_node/skip: 20
* /acquisition_node/soft_framerate: 30
* /acquisition_node/target_grey_value: 0
* /acquisition_node/time: False
* /acquisition_node/to_ros: True
* /acquisition_node/utstamps: False
* /rosdistro: melodic
* /rosversion: 1.14.3
NODES
/
acquisition_node (nodelet/nodelet)
vision_nodelet_manager (nodelet/nodelet)
auto-starting new master
process[master]: started with pid [12907]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 07f42e1e-bd37-11e9-b8e2-7085c2ae64f9
process[rosout-1]: started with pid [12918]
started core service [/rosout]
process[vision_nodelet_manager-2]: started with pid [12922]
process[acquisition_node-3]: started with pid [12926]
[ INFO] [1565637967.211156336]: Initializing nodelet with 8 worker threads.
[ INFO] [1565637967.288913402]: Initializing nodelet
[ INFO] [1565637967.289453491]: [ OK ] USB memory: 1000 MB
[ INFO] [1565637967.289478199]: *** PARAMETER SETTINGS ***
[ INFO] [1565637967.289484704]: ** Date = 20190812
[ INFO] [1565637967.289844771]: Save path set via parameter to: /home/alex
[ INFO] [1565637967.289859725]: Camera IDs:
[ INFO] [1565637967.290148244]: Camera Aliases:
[FATAL] [1565637967.363517338]: Failed to load nodelet '/acquisition_node` of type `acquisition/capture_nodelet` to manager `vision_nodelet_manager'
[vision_nodelet_manager-2] process has died [pid 12922, exit code -11, cmd /opt/ros/melodic/lib/nodelet/nodelet manager __name:=vision_nodelet_manager __log:=/home/alex/.ros/log/07f42e1e-bd37-11e9-b8e2-7085c2ae64f9/vision_nodelet_manager-2.log].
log file: /home/alex/.ros/log/07f42e1e-bd37-11e9-b8e2-7085c2ae64f9/vision_nodelet_manager-2*.log
[acquisition_node-3] process has died [pid 12926, exit code 255, cmd /opt/ros/melodic/lib/nodelet/nodelet load acquisition/capture_nodelet vision_nodelet_manager __name:=acquisition_node __log:=/home/alex/.ros/log/07f42e1e-bd37-11e9-b8e2-7085c2ae64f9/acquisition_node-3.log].
log file: /home/alex/.ros/log/07f42e1e-bd37-11e9-b8e2-7085c2ae64f9/acquisition_node-3*.log
^C[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done
Any ideas what could be causing this? I know others have successfully used GigE Blackfly cameras with this driver just fine.
Hi! Does this package set the device (camera) time at initialization? If so, where does it do it? I could not find it in this ROS package. Alternatively, how could I synchronize the camera with the system (computer) when starting the camera nodelet?
I noticed that the raw image timestamps (obtained using the GetTimeStamp()
method) were in the past, and once they are properly adjusted, I would like to use them with the outgoing ROS messages instead of the current method, which uses ros::Time::Now(). I am using a FLIR Blackfly S BFS-U3-23S3C.
Thanks!
What parameters do you change in the driver node to slow framerate? Changing the soft_framerate parameter causes the output raw image to delay images, not actually reducing frames from camera.
Using the Flir Firefly S that outputs at 60 FPS. Trying to output at 30 FPS without any delay to the images.
Has anyone else noticed horizontal image tearing using Spinnaker with a Blackfly camera? I am using the GigE variant and there is often horizontal image tearing noticeable when the camera moves fast. Are there any solutions to this? It's a significant problem and I'm trying to figure out if it's hardware or software.
Hi,
The camera I am using is GS3-U3-41C6C, under Ubuntu 16.04 LTS, ROS Kinetic.
I modified the test_params.ymal as the tutorial suggested, but encountered two problems.
process[acquisition_node-1]: started with pid [8704]
[ INFO] [1551087121.707963015]: [ OK ] USB memory: 1000 MB
[ INFO] [1551087121.708028347]: *** PARAMETER SETTINGS ***
[ INFO] [1551087121.708038749]: ** Date = 20190225
[ INFO] [1551087121.708396940]: Save path set via parameter to: /home/robotarm
[ INFO] [1551087121.708416384]: Camera IDs:
[ INFO] [1551087121.708731826]: No camera aliases provided. Camera IDs will be used as names.
[ INFO] [1551087121.709056883]: Unique time stamps for each camera: false
[ INFO] [1551087121.709383283]: color set to: false
[ INFO] [1551087121.709693204]: Exporting images to ROS: true
[ INFO] [1551087015.778780291]: Creating system instance...
[ INFO] [1551087015.779031366]: Retreiving list of cameras...
[ INFO] [1551087016.720772197]: Numer of cameras found: 1
[ INFO] [1551087016.720851572]: Cameras connected: 1
[ INFO] [1551087016.720918757]: -16400214
[ INFO] [1551087016.723558542]: *** FLUSH SEQUENCE ***
[ INFO] [1551087016.723630000]: Initializing cameras...
[acquisition_node-1] process has died [pid 8550, exit code -11, cmd /home/robotarm/catkin_ws/devel/lib/spinnaker_sdk_camera_driver/acquisition_node __name:=acquisition_node __log:=/home/robotarm/.ros/log/51d851bc-38db-11e9-8ecd-e0d55e613c3c/acquisition_node-1.log].
log file: /home/robotarm/.ros/log/51d851bc-38db-11e9-8ecd-e0d55e613c3c/acquisition_node-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done.
I have tried to modify the source code as in Problem #8 , and still couldn't solve it.
Any help would be appreciated.
Hi,
I have the latest version of the Spinnaker SDK installed on my machine which is spinnaker-1.27.0.48-i386, but when I try to build and link the ROS package I get the following error.
Errors << spinnaker_sdk_camera_driver:make /home/XXX/workspace/logs/spinnaker_sdk_camera_driver/build.make.000.log
/home/XXX/workspace/src/spinnaker_sdk_camera_driver/src/camera.cpp: In destructor ‘acquisition::Camera::~Camera()’:
/home/XXX/workspace/src/spinnaker_sdk_camera_driver/src/camera.cpp:5:11: warning: passing NULL to non-pointer argument 1 of ‘Spinnaker::CameraPtr::CameraPtr(long int)’ [-Wconversion-null]
pCam_ = NULL;
^
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libSpinnaker.so when searching for -lSpinnaker
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libSpinnaker.so when searching for -lSpinnaker
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/../../../libSpinnaker.so when searching for -lSpinnaker
/usr/bin/ld: skipping incompatible //usr/lib/libSpinnaker.so when searching for -lSpinnaker
/usr/bin/ld: cannot find -lSpinnaker
collect2: error: ld returned 1 exit status
make[2]: *** [/home/XXX/workspace/devel/.private/spinnaker_sdk_camera_driver/lib/libacquilib.so] Error 1
make[1]: *** [CMakeFiles/acquilib.dir/all] Error 2
make: *** [all] Error 2
I am guessing the the ROS package is built against a previous, incompatible version of the SDK. Could you advise on which version of the SDK is actually supported?
Thanks
Henry
I have ROS Melodic running on Ubuntu 18.04. Since "ros-kinetic-cv-bridge" and "ros-kinetic-image-transport" in the prerequisites are not supported anymore, I substituted them with the melodic versions, which resulted in numerous catkin_make errors, such as not being able to find the "opencv" folder, after renaming the "opencv4" folder in the usr/include directory to "opencv", it resulted in more errors such as not being able to include <cv.h>.
Is there a workaround for this? Is there an updated version for this driver? Or is using Kinetic the only way?
Thank you!
Hello,
I have a Blackfly S USB 3 camera connected to a Jetson Tx2. I'm trying to use this node but it crashes without information about the reason. Using the spinview application I can see the image.
Could anybody help me?
nvidia@tegra-ubuntu:~$ roslaunch spinnaker_sdk_camera_driver acquisition.launch
... logging to /home/nvidia/.ros/log/af4f800e-7c7e-11e9-af01-00044bc57968/roslaunch-tegra-ubuntu-3080.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://tegra-ubuntu:46778/
PARAMETERS
NODES
/
acquisition_node (spinnaker_sdk_camera_driver/acquisition_node)
auto-starting new master
process[master]: started with pid [3090]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to af4f800e-7c7e-11e9-af01-00044bc57968
process[rosout-1]: started with pid [3106]
started core service [/rosout]
process[acquisition_node-2]: started with pid [3110]
[acquisition_node-2] process has died [pid 3110, exit code -6, cmd /home/nvidia/worspaces/crv_ws/devel/lib/spinnaker_sdk_camera_driver/acquisition_node __name:=acquisition_node __log:=/home/nvidia/.ros/log/af4f800e-7c7e-11e9-af01-00044bc57968/acquisition_node-2.log].
log file: /home/nvidia/.ros/log/af4f800e-7c7e-11e9-af01-00044bc57968/acquisition_node-2*.log
I have a windows console application written in C using visual studio 2013. the application reference all the needed Spinnaker libraries.
Within Visual Studio I can retrieve system instance and extract Frame from all cameras connected. The problem happens when i try to deploy the application via Installshield. The executable return the above error when calling the spinSystemGetInstance function.
Can someone help me on this matter?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.