-
Notifications
You must be signed in to change notification settings - Fork 90
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
Startup camera sync via initializing/deinitializing cycle does not work with GigE camera #10
Comments
Having the same issue, I commented out the assertion line, however, that leads to the node crashing eventually. |
What is ur setup exactly? GIG E or ethernet. How many cameras? |
@karanchawla the above question is for you. |
I’m away from the computer at the moment, will send a complete bug report in a bit. |
I asked the manufacturer FLIR about this and they told me (translated quote): There actually is a difference between the GigE and USB3 variant: The GigE camera resets FrameID, if AcquisitionStop, AcquisitionStart is executed. The USB3 does this only on EndAcquisition, BeginAcquisition. The counter cannot be reset manually. HTH |
@llvs and @karanchawla are you guys using the GPIO cable to trigger the cameras as described in the ReadMe. If you are setting up the code for 2 camera and the trigger doesn't happen correctly, the code would timeout during the image acquisition on the slave camera and terminate. @llvs before worrying too much about the frame id's it would be worth checking if it is an issue. If you are able to acquire images from 2 cameras, I suggest pointing them at a stopwatch and checking if they are synced. |
No, as the problems using the node happen already with a single camera. However, in the future I assume that we will need to employ hardware triggering via GPIO. |
My setup is as follows: I'm trying to use this repository to acquire images however, the node would crash after a few minutes after giving a few warnings about image might be incomplete! |
@karanchawla which particular model are you using. How many megapixels camera is it? |
Specs for the camera I'm using: https://www.ptgrey.com/blackfly-s-color-32-mp-gige-vision-sony-imx265 |
So does it work fine for a few mins? |
|
It works for less than a minute after which it crashes. I have posted the log in the comment above. |
@karanchawla That issue seems to be with the Spinnaker SDK as opposed to the ROS driver. See
|
@karanchawla and @llvs were you guys able to get the cameras to work? Do you have an update about the issues? |
Hi @shahvi I am getting the exact same issue as @karanchawla. I have a Blackfly BFLY-PGE-20E4C. I had a frameID error to start with as above. I then commented line 59 in camera.cpp. Once I did that the camera would run for under a minute and then would crash again. Same failure as above. I can run spinview at any framerate available. I have set frame:=10 for the ROS node. |
@mikedef Its difficult to debug without us having that type of camera. One thing you could try would be to launch the code with the debug turned on by changing the first line in
debug_console.conf
See if the debug messages help... |
@shahvi changing to debug_console.conf did not give me any updated debug messages. Here is my latest error message: Spinnaker: Failed waiting for EventData on NEW_BUFFER_DATA event [-1011] |
@mikedef , I am really out of ideas. It seems to be happening in the Spinnaker_SDK and I am not sure what it might be. Hard to know without having one to play with. |
@shahvi Right I am not sure either. Also the color flag does not work for this camera as well. |
Hi @shahvi looks like the Event Data Spinnaker error was solved by increasing UDP buffer size to 25MB by 'sudo sysctl -w net.core.rmem_max=26214400' and 'sudo sysctl -w net.core.rmem_default=26214400'. I found this on a different forum. Sorry about the back and forth. I figured since the camera worked fine with Spinview that it would work fine with the ROS node. |
@mikedef thanks for the update. So does the driver work properly once you make this change? |
@shahvi The driver does not work in color mode. It does work when in black and white. I had to make a few changes, mostly commenting out of error checking code as highlighted above. I get the following errors when setting the color flag to true |
Setting the eumeration takes place in: spinnaker_sdk_camera_driver/src/camera.cpp Line 134 in fd3d35e
Maybe these GigE cameras have a different enumeration entry ? You can check in SpinView, what enumerations the PixelFormat option accepts. |
@shahvi Looks like my only option is BayerGB8. Where is this set exactly? I changed line 96 to PixelFormat_BayerGB8 and did a catkin_make, but I still get the BGR8 error as before. |
You should be able to change it at spinnaker_sdk_camera_driver/src/capture.cpp Line 508 in fd3d35e
|
@shahvi Sorry it's actually BayerBG8 not GB. Either way it works when I change the pixel format to BayerBG8. |
In the meantime we found the following regarding the errors with:
The two cameras are flooding the IP connection with packets. To have more than one camera coexist in peace one has to divide the GigE bandwith between the cameras. This is done via the |
@llvs That solves the image incomplete and event buffer timeout issue thanks! |
@llvs how would you set that up with ros in terminal exactly? I can find the parameters in spinview but changing in spinview doesn't seem to help in roslaunching the application as the parameters are reset the next time I open spinview. Many thanks. |
@alankwok97 You can save SpinView settings to your camera by typing user into the search box in SpinView. Change the parameter UserSetSelector to UserSet0 or UserSet1. Then click the execute button for UserSetSave. Now your settings are saved and all you have to do now is change UserSetDefault to match your desired UserSet. Everytime your camera is booted up, the settings saved will be used. If you want to go back to Default, you can select Default under UserSetSelector and click Execute for UserSetLoad. |
@kaalessi Thanks for your reply! |
@llvs what could be causing this error if I’m using only one camera? You said in your case with multiple cameras they were flooding the network, but this shouldn’t happen with a single camera, right? |
I can only guess here, but it may have to do with too small network buffers. The linux defaults are maybe too little. Or you may want to use Ethernet Jumbo Frames if the camera allows it to reduce network load. But those are only guesses. |
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:
You suggested in private conversation:
Your suggestion above is not possible for us, as we want to use a stereo camera pair and want to have synced cameras.
The text was updated successfully, but these errors were encountered: