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

An error has occurred during frame callback: Error occured during execution of the processing block! #652

Closed
FENGZHANG123 opened this issue Mar 5, 2019 · 20 comments

Comments

@FENGZHANG123
Copy link

An error has occurred during frame callback: Error occured during execution of the processing block!

I used one D415 and one D435 at same time, PC: UP2 board, Ubuntu 16.04. ROS kinetic.

@FENGZHANG123
Copy link
Author

Librealsense 2.18.1, intel-ros/realsense 2.2.0

@freemanlo
Copy link

Suggest you can also report this issue to below.
https://github.com/IntelRealSense/librealsense/issues/

@RealSenseCustomerSupport
Copy link
Collaborator

[Please Ignore - RealSense system comment]

@arunabh1904
Copy link

+1 Im using 2.17.1 with ros 2.1.2. Trying to stream 3 cameras together.

@jdwolk
Copy link

jdwolk commented Mar 12, 2019

+1, here are my specs:

Device: Raspberry Pi 3 Model B
OS version: Ubuntu MATE 16.04
Camera: D435i (over USB2)
Firmware: 5.11.1.100
librealsense version: 2.18.1 (unpatched, for USB2 support)
ROS realsense version: 2.2.0
ROS version: kinetic

Notably, this does NOT occur when I use a D435 instead of a D435i, though w/ the D435 I still get the issue from #669

@jdwolk
Copy link

jdwolk commented Mar 22, 2019

Scratch that, I'm now also getting these errors w/ D435

@jdwolk
Copy link

jdwolk commented Mar 26, 2019

Bump

Any status on this? I'm still getting these very regularly on D435. Seems like only 1 out of every 10 messages from running this node are successful; the rest give me this error message

@doronhi
Copy link
Contributor

doronhi commented Mar 28, 2019

Sorry, no updates. Still working on it..

@arunabh1904
Copy link

The error persists even after updating to v2.19.1 Librealsense and the latest ros wrapper release v2.2.1
Camera model - d435, ROS Melodic.

@jdwolk
Copy link

jdwolk commented Apr 2, 2019

@doronhi any clue what might be the cause of this? In which codebase (ros-realsense, librealsense) + where in the code might the issue be? I can dig a bit if I know where to start looking

@doronhi
Copy link
Contributor

doronhi commented Apr 3, 2019

So far, what I came up with is this:
The source of the error is in librealsense, rs_processing.hpp, line 334.
From what I understand, the problem is that the filters don't keep up with the frames, due to computer load. A new image cannot be pushed to the still full queue and therefor it is missing when the filter is called to process it. Then the exception is issued.

@lucasjinreal
Copy link

@doronhi I am using librealsense 2.18 which not the newest librealsense also got this error, only when I toggled aligned_depth to true maybe also caused by toggled point cloud to true. But the ros realsense wrapper are master branch.

So how do I solve the issue for now???we are in a production enviroment and stable is the most important thing

@jdwolk
Copy link

jdwolk commented Apr 9, 2019

@jinfagang not a solve but a workaround I found:

If your project isn't married to an SBC yet you can switch to an Odroid XU4 (it says sold out but you can purchase them on Amazon). librealsense has semi-official support for building on the Odroid XU4 via a patch. Despite the 4.14 kernel not being in the list of supported kernels, it works with this ubuntu mate 16.04 image

I just switched from Raspberry PI 3 B -> Odroid XU4 and the issue went away entirely. Odroid XU4 has an 8 core 2GHz CPU compared to the PI's 4 core 1.2 GHz CPU. I'm guessing I no longer see the errors since the beefier SBC can keep up w/ the frames per @doronhi's comment above

Anecdotally, w/ 1 PI + 2 cams over USB2 I got about a pointcloud every 5-10 seconds in between errors. With Odroid XU4 + 2 cams over USB3 I get about 3-5 pointclouds per second and no errors.

@lucasjinreal
Copy link

@jdwolk I am afraid this can work longly. I am test it on my PC which has a i7-8th processor and 16G memory, so I think compute capacity is not the issue.

@filipematosinov
Copy link

@jinfagang not a solve but a workaround I found:

If your project isn't married to an SBC yet you can switch to an Odroid XU4 (it says sold out but you can purchase them on Amazon). librealsense has semi-official support for building on the Odroid XU4 via a patch. Despite the 4.14 kernel not being in the list of supported kernels, it works with this ubuntu mate 16.04 image

I just switched from Raspberry PI 3 B -> Odroid XU4 and the issue went away entirely. Odroid XU4 has an 8 core 2GHz CPU compared to the PI's 4 core 1.2 GHz CPU. I'm guessing I no longer see the errors since the beefier SBC can keep up w/ the frames per @doronhi's comment above

Anecdotally, w/ 1 PI + 2 cams over USB2 I got about a pointcloud every 5-10 seconds in between errors. With Odroid XU4 + 2 cams over USB3 I get about 3-5 pointclouds per second and no errors.

I am using a RPi with 2 cameras but I am just getting segmenation faults randomly(using one or 2 cameras). I am looking for alternatives for a RPi with USB3 support that provide no problems with realsense. When you say Ordroid XU4 has no errors it performs perfectly with 2 cameras? Have you tried with 3/4 cameras?

@OrHirshfeldFFR
Copy link

OrHirshfeldFFR commented Jul 29, 2019

I got a similar error with d435 and librealsense2 2.16.1 on ubuntu 16.04 64bit on a very strong PC machine.
I'm taking photos from a few cameras in parallel.
After it returned this error, I needed to restart the computer for it works again

@RealSenseCustomerSupport
Copy link
Collaborator


Hi @FENGZHANG123

Do you still have the trouble with the latest ros wrapper and librealsense? I don't observe this issue with below command on ros 2.2.7 with the setup on NUC + Ubuntu 16.04 + Kinetic.
$ roslaunch realsense2_camera rs_rgbd.launch camera:=cam_1 serial_no:= filters:=pointcloud
$ roslaunch realsense2_camera rs_rgbd.launch camera:=cam_2 serial_no:= filters:=pointcloud

@RealSenseCustomerSupport
Copy link
Collaborator


Hi @FENGZHANG123 , @OrHirshfeldFFR,

Is the issue clarified on your platform? Do you try the latest librealsense?
Do you further observe the CPU loading and usb throught impact with multiple cameras using "top" and "usbtop" command?

@OrHirshfeldFFR
Copy link

Hi @FENGZHANG123

Do you still have the trouble with the latest ros wrapper and librealsense? I don't observe this issue with below command on ros 2.2.7 with the setup on NUC + Ubuntu 16.04 + Kinetic.
$ roslaunch realsense2_camera rs_rgbd.launch camera:=cam_1 serial_no:= filters:=pointcloud
$ roslaunch realsense2_camera rs_rgbd.launch camera:=cam_2 serial_no:= filters:=pointcloud

Sorry for the delay I was on vacation
I actually don't use the Realsense ROS wrapper, I use librealsense by itself alongside ROS.
As far as I observe there was no issue with CPU or USB overloading, I checked it using "top" and "usbtop" as you suggested
Which librealsense version should solve this problem?

Thank you

@CliffSpy74
Copy link

@jdwolk I apologize for responding to a closed thread, but in all of my scouring I have been unable to find anyone else who mentions implementing ROS-kinetic-realsense2-camera on an ODROID XU-4. Would you mind sending an outline of how you went about doing this build? I am getting some interesting errors that you seemed to be able to avoid; thanks!

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

10 participants