ros-drivers / pointgrey_camera_driver

ROS driver for Pt. Grey cameras, based on the official FlyCapture2 SDK.
128 stars 180 forks source link

FlyCapture2::ErrorType 41 There is an image consistency issue with this image. #123

Open benjaminabruzzo opened 7 years ago

benjaminabruzzo commented 7 years ago

I am trying to implement two externally triggered blackfly cameras, but cannot resolve the image consistency issue crashing my nodelets:

core service [/rosout] found
process[left/camera/left_nodelet_manager-1]: started with pid [2718]
process[left/camera/left_nodelet-2]: started with pid [2719]
process[left/camera/image_view-3]: started with pid [2720]
process[right/camera/right_nodelet_manager-4]: started with pid [2721]
process[right/camera/right_nodelet-5]: started with pid [2722]
process[right/camera/image_view-6]: started with pid [2723]
init done
init done
[ERROR] [1498794492.863910730]: PointGreyCamera::grabImage Failed to retrieve buffer | FlyCapture2::ErrorType 41 There is an image consistency issue with this image.
[ERROR] [1498794494.245366210]: PointGreyCamera::grabImage Failed to retrieve buffer | FlyCapture2::ErrorType 41 There is an image consistency issue with this image.
[ERROR] [1498794512.669232337]: PointGreyCamera::grabImage Failed to retrieve buffer | FlyCapture2::ErrorType 41 There is an image consistency issue with this image.
[ERROR] [1498794512.868528896]: PointGreyCamera::grabImage Failed to retrieve buffer | FlyCapture2::ErrorType 41 There is an image consistency issue with this image.
[ERROR] [1498794514.070943270]: PointGreyCamera::grabImage Failed to retrieve buffer | FlyCapture2::ErrorType 41 There is an image consistency issue with this image.
[ERROR] [1498794514.070996625]: PointGreyCamera::grabImage Failed to retrieve buffer | FlyCapture2::ErrorType 41 There is an image consistency issue with this image.
[ERROR] [1498794515.272532508]: PointGreyCamera::grabImage Failed to retrieve buffer | FlyCapture2::ErrorType 41 There is an image consistency issue with this image.
[left/camera/left_nodelet_manager-1] process has died [pid 2718, exit code -11, cmd /opt/ros/kinetic/lib/nodelet/nodelet manager __name:=left_nodelet_manager __log:=/home/benjamin/.ros/log/db45f1c4-5d46-11e7-bcbc-448a5b9c1a8e/left-camera-left_nodelet_manager-1.log].
log file: /home/benjamin/.ros/log/db45f1c4-5d46-11e7-bcbc-448a5b9c1a8e/left-camera-left_nodelet_manager-1*.log
[left/camera/left_nodelet-2] process has finished cleanly
log file: /home/benjamin/.ros/log/db45f1c4-5d46-11e7-bcbc-448a5b9c1a8e/left-camera-left_nodelet-2*.log

I have attached the launch file as well as configuration files that I have tried. Specifically, I hope a terminal, then change directory to my ros package, and run the cam_init.sh script. Then I open another terminal window, and launch mars_pgr.launch. At this point everything runs without issue, but then to change to the externally triggered mode of the cameras, I run the following two commands (in a third terminal window):

rosrun dynamic_reconfigure dynparam load /left/camera/left_nodelet $HOME/ros/src/hast/cam_info/pgr.yaml
rosrun dynamic_reconfigure dynparam load /right/camera/right_nodelet $HOME/ros/src/hast/cam_info/pgr.yaml

At this point, the terminal running the nodelets will throw the consistency error and then one of the two will crash.

I have tried tweaking my /etc/sysctrl.conf file as well, but to no avail.

just for FYI:

Linux mars 4.8.0-58-generic #63~16.04.1-Ubuntu SMP Mon Jun 26 18:08:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
 * /rosdistro: kinetic
 * /rosversion: 1.12.7

[config and launch files attached to this post: refs.zip]

davrsky commented 7 years ago

Having similar issues with multiple gige cameras. If I start the nodes one at a time with a long delay inbetween I can usually get it to work for a while, but they still produce intermittent crashes. Packet delay and frame sizes have been set that I am nowhere near hitting the 1 gigabit limit (it's around 450mbit/s right now when they are all working). And even if it were a bandwidth issue, a dropped frame should not cause the camera driver to crash. I've also set the sysctl as recommended by point grey & in other issues here, and I have made sure that the camera nodes are in different namespaces with different node names as well, as that was mentioned in another issue.

Have you had any luck solving this?

benjaminabruzzo commented 7 years ago

I have not. I am currently using two Chameleon cameras as a stop-gap.

paulashbourne commented 6 years ago

@davrsky @benjaminabruzzo Just wanted to follow up on this thread and see if either have you have found a resolution. Been experiencing this bug for a couple months on my GigEs.

davrsky commented 6 years ago

I ended up having to dedicate one ethernet port per camera, was the only way I could make the point greys operate reliably

On Sep 14, 2017 8:05 AM, "Paul Ashbourne" notifications@github.com wrote:

@davrsky https://github.com/davrsky @benjaminabruzzo https://github.com/benjaminabruzzo Just wanted to follow up on this thread and see if either have you have found a resolution. Been experiencing this bug for a couple months on my GigEs.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/ros-drivers/pointgrey_camera_driver/issues/123#issuecomment-329511542, or mute the thread https://github.com/notifications/unsubscribe-auth/Abl-LTRqftIRo-0yuBPXtdZilADhaS9Qks5siUCugaJpZM4OAh1N .

benjaminabruzzo commented 6 years ago

Negative. I am still using the chameleons.

I tried using a router between the PC and the cameras as well as plugging them in directly to the two ethernet ports.

@davrsky What kind of configuring did you need to do to set up the 2x ports?