-
Notifications
You must be signed in to change notification settings - Fork 1.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
set_xu(...). xioctl(UVCIOC_CTRL_QUERY) failed Last Error: Device or resource busy #1363
Comments
At the same time I want to adjust the“ Mean Intensity Set Point ” value, is there any reference code,thank you. |
Hi @dingbaiyin It looks as though this is a librealsense case and not a ROS one (this site is the RealSense ROS GitHub). When capturing the image, you could use wait_for_frames() if you are not doing so already. This tells the SDK to wait until a complete frame is received. If you are saving a single frame as an image file such as a PNG, the rs-save-to-disk SDK C++ example program may be a useful reference if you have not seen it already. It captures 30 frames to ensure the stability of the image, and then it saves the final frame of the set. https://github.com/IntelRealSense/librealsense/tree/master/examples/save-to-disk The part of the program highlighted in the link below shows how it makes use of wait_for_frames(). Alternatively, if you are willing to save the frames in a bag file instead of a png, a solution suggested by Dorodnic the RealSense SDK Manager in the link below sounds like what you are trying to achieve with stop-start timing. Others also offer their own solutions in that discussion. IntelRealSense/librealsense#3671 Regarding the mean intensity set point, you could set it using a json configuration file: |
Thank you for your respond. |
I read the link you recommended, but I still don't understand how the json file is called with the api function. When calling the json file, all the parameters are automatically updated, |
Here is an example of loading a json with the roslaunch instruction: roslaunch realsense2_camera rs_camera.launch json_file_path:=/path/to/config/DefaultPreset_viewer.json You can also call it from inside the launch file instead. Include the absolute path to the file. |
I am Glad to receive your reply so soon.I added the absolute path of the json file, my code is as follows: |
I found my librealsense version is 2.16.1,Maybe the version is too low. and the CameraConfig.json file content is as follows: |
The structure of your json file path in the roslaunch instruction looks reasonable to me, based on others that I have seen. The meaning of the link that I provided was just to illustrate that the json path can be edited into the launch file as an arg instruction instead of loading it from the roslaunch statement:
If you are satisfied to load the file from a path in your roslaunch statement then you do not need to use the launch file arg method. If your librealsense version is 2.16.1 then that would be really old, dating back to September 2018. The matching ROS wrapper version for that SDK is 2.1.0 which also dates back to September 2018. https://github.com/IntelRealSense/realsense-ros/releases/tag/2.1.0 |
Thank you. I will update the librealsense version to 2.38.1 and try it. |
There is a problem with librealsense2.38.1, and Intel camera cannot be called normally. It is fine to replace it with librealsense2.36.0. I created a new issue about librealsense-ros and closed the issue. The link |
Okay, thanks for the link to the RealSense ROS case. |
Hi @dingbaiyin Do you require further assistance on this case, please? Thanks! |
Thank you for your attention. |
Thanks very much - good luck! |
After installing ros, the memory of the 16G Raspberry Pi system was full, and the current problem of reading json files has been solved by the Intel team. There is no need to continue configuring ROS into the system for now. Thank you very much. |
Great news that a solution was reached - thanks for the update! |
As shown in the figure, I added the Controlling the Laser function to the program
The image is acquired when the laster power is set to Max, and the laster power is set to Min after the acquisition is completed. However, in the program, the delay time must be increased after the intelCamera.ControlLasterPowerTo_Max() function and before the intelCamera.ControlLasterPowerTo_Min(), otherwise the former will cause the camera to be not ready to fully capture the image too dark, and the latter will cause the program to report an error "set_xu(. ..). xioctl(UVCIOC_CTRL_QUERY) failed Last Error: Device or resource busy". But if I want to increase the image acquisition frequency, due to the increased delay, I cannot collect several images per second. Is there a way to avoid increasing the delay time?
Linux 4.19.97-v7l+
Intel D430
The text was updated successfully, but these errors were encountered: