D435 on ROS1 noetic with frame not arriving and soft/hard LOCKUPs
- RealSense ROS v2.3.2
-
Hi Kangjmo91 The most recent librealsense version that should ideally be used with the 2.3.2 ROS1 wrapper is 2.51.1. This is because development of the ROS1 wrapper has ceased and only the ROS2 wrapper continues to receive updates, so a ROS1 wrapper version for 2.53.1 was not developed. Using a librealsense version that is one version newer than recommended (i.e the 2.53.1 version) can work but may be unstable.
Firmware 5.14.0.0 is also recommended for use with 2.53.1, whilst the 5.13.0.50 firmware that you currently have installed in your camera was designed for 2.50.0 and 2.51.1. Using the older 5.13.0.50 firmware with 2.53.1 can cause errors.
The first step that I would recommend trying is to update the camera firmware to 5.14.0.0 to see whether this resolves the lock-up problem.
If that does not work then you could return to 5.13.0.50 and then remove your 2.53.1 / 2.3.2 librealsense and wrapper installation, and use the ROS1 wrapper's Method 1 installation process. This will install librealsense 2.50.0 and wrapper 2.3.2 together at the same time from packages. The Method 1 installation is based upon RSUSB, meaning that it bypasses the kernel.
It should therefore work even though librealsense 2.50.0 did not have support for the 5.15 kernel, as RSUSB is not dependent on Linux versions or kernel versions and does not require a kernel patch to be applied. Whilst an RSUSB build of librealsense is not ideally suited for multiple cameras compared to a kernel-patched librealsense build, it can still work with multicam.
-
Hello MartyG
I have followed your first step and for a couple of days it seemed to work.
Although on our system logs,
kernel: [ 8496.847686] usb 2-1: Failed to query (GET_CUR) UVC control 1 on unit 3: -32 (exp. 1024).
the above message keeped printed. This didn't harm our program nor affect any system related errors.
But Segmentation fault happened on day 4, with the same kernel system log above and from debugger, the stack trace shows these ros::serialization::Serializer-deserialize-IStream-Serializer<sensor_msgs::CompressedImage_>-SubscriptionCallbackHelper.
Would this mean that we should follow the second suggestion of yours : downgrading F/W, matching the SDK and the wrapper?
I hope our errors have given some clues for our problem -
As your kernel logs show, there is an apparent conflict with the 5.15 kernel version that you are using. Whilst kernel 5.15 in general is supported, sometimes a specific version of that kernel class will not work as well as others (for example, 5.15.0-61 might work correctly but 5.15.0-71 might not).
As a general rule, if the camera is able to function for up to 4 days before a problem occurs then the issue will be with the computer, its operating system or USB port / cable and not a problem with the camera hardware or its firmware driver,
Whilst with a RealSense ROS wrapper it is ideal for SDK, firmware and wrapper versions to be correctly matched, since it is able to run relatively normally for 4 days there are strong indications that it is a kernel conflict rather than an issue with the librealsense / ROS wrapper configuration.
Please sign in to leave a comment.
Comments
3 comments