-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Multi-Camera multi pipeline IMU + Depth, Color setup fails with "Couldn't resolve request" #11639
Comments
Hi @brunovollmer RuntimeError: Couldn't resolve requests indicates that the custom cfg configuration that was requested was not able to be provided by the camera. There are a few possible causes for this.
Acceptable IMU pairings on a D43x IMU-equipped camera are as follows: Camera manuactured before early 2022 Camera manufactured after early 2022 So if 200 was requested for Accel, that could cause 'Couldn't resolve requests'. You can check which speed is supported for Accel on your particular camera unit by launching the RealSense Viewer tool, looking in the Motion Module section of the Viewer's options side-panel and looking in the drop-down menu beside the Accel stream option.
|
Hey @MartyG-RealSense, thanks for the quick reply I will reply for each point individually:
Any other ideas what to check? |
As the cameras are all detected as USB 3.2 and the program works fine on a laptop, it does seem to suggest an issue other than the camera or the USB connection. I note that the Khadas Edge 2 has a Rockchip chipset. For Rockchip (RK) based devices, building the librealsense from source code with the RSUSB backend is recommended, and you have already done so. Having said that, RSUSB is not ideal for multiple camera applications, and DFORCE_RSUSB_BACKEND=false (a 'native' SDK build) that has been kernel patched is best suited to multicam. Does the librealsense build on the laptop use RSUSB or is it kernel-patched, please? |
I installed it via pip. I assume it's kernel-patched then? What would I need to do to kernel-patch the 5.10 kernel? Are there any hints what to look for or where to go? |
Do you mean that you installed the Python wrapper with pip install pyrealsense2, please? If so then doing so does not apply a kernel patch to the librealsense SDK. Kernel 5.10 is not supported by the SDK. It supports 5.11, 5.13 and 5.15. If you are unable to change the kernel on your computer then |
I mean that is what we did but there must be a way to use it with the 5.10 kernel or? |
How do these kernel patches work? Is it theoretically possible to write them for the 5.10 kernel and then compile it without RSUSB? |
The D430 and D430i camera configurations do not have an RGB sensor and do not support streaming RGB from the left infrared sensor like the D405, D415 and D455 models do. As your issue title references trying to get a color stream but the D430 and D430i do not have RGB color, I was wondering how your script works on the laptop. A RealSense user submitted user-created support for the 5.11 kernel in SDK 2.51.1 with a Pull Release (PR) at #9727 so self-creating support for patching of a particular kernel seems to be achievable. 8e7fd21 lists the code changes made (highlighted in green). It should be noted that the SDK can work with unsupported kernels but there may be unpredictable consequences in regards to stability, which is why RSUSB = true to bypass the kernel is the better option if possible to use it (despite RSUSB not being ideal for multicam applications). |
Hi @brunovollmer Do you require further assistance with this case, please? Thanks! |
I do unfortunately it is not fully solved yet. I've went through the available documentation of the provider of our board and was able to compile the kernel with the following two patches manually applied:
I had to manually apply them as the automatic patching would not work (I assume due to slight changes in the kernel or something). I have to admit as this is all rather new to me it might also be some mistakes from my side. After installing the new kernel and checking the compilation time it, the errors unfortunately still continue. I still receive this error:
And when printing the kernel logs I see this:
I'm unsure if either my changes were wrong, not enough or not applied. Do you have any suggestions or ideas on how to check that? |
Someone with a Rockchip system that had the same set of errors as you did found that the solution in their particular case was to use Rockchip's U-Boot tool instead of booting the kernel manually. |
After some more investigation it seems the problem is somewhere else. One weird thing I discovered is that when running
The error message on running
Any idea what I could have misconfigured or how to fix that? |
My own understanding is that /video addresses are assigned based on which devices are detected and the more devices that are detected, the more /video addresses there will be. The /video address numbers of a specific device may also change if it is unplugged from the USB port and re-inserted, making it difficult to access the device by always using the same /video number. In a recent case at #11553 (comment) the subject of setting fixed addresses for devices with symbolic links via udev device-handling rules was discussed. |
Hi @brunovollmer Do you require further assistance with this case, please? Thanks! |
After some back and forth with the intel support, we concluded that it might be a nonsolvable hardware issue for now. Thanks for the support |
You are very welcome. Thanks very much for the update. |
@brunovollmer, Tell me, did you somehow get around this problem? |
Issue Description
We are currently trying to get our multi-camera setup to work on our new board. The setup consists of two D430 and one D430I. We would like to pull 848x480 greyscale and depth images at 30 FPS and the IMU data at 200 FPS. We have a script in python that works on our development laptop running Ubuntu 22.04 with a 5.15 kernel.
The script has three pipelines for each camera and one additional one for the IMU data of the middle camera.
On the edge 2 board from khadas we have compiled librealsense with the following command:
When running the script we receive the following error:
We are suspecting it could be caused by the RSUSB backend but are unsure. We are currently unable to update the kernel of our board and are wondering if there is any other way to debug/fix this?
The text was updated successfully, but these errors were encountered: