Realsense D455: Motion Module Failure
Hi,
I use the Intel Realsense D455 camera module with the Jetson Xavier NX running Ubuntu 18.04. In the realsense viewer, I enable all the 3 streams - Stereo, RGB and motion module.Stereo and RGB is working fine, but the Motion Module isn't work at all.And it says '22:00:21 [Error] /home/xavier/Downloads/librealsense/common/notifications.cpp:511 - Motion Module failure'. The D455 itself is in good condition, as it's 3 streams are working fine with my Windows PC. My firmware version is 05.13.00.50 and the SDK version is 2.50.0.
How can I solve this problem? Thank you.
-
It is a known issue that problems can occur for some RealSense users when enabling all three streams in the RealSense Viewer. The trigger is always the enabling of the Motion Module, so changing the order in which the streams are enabled does not make a difference. It is not known why it occurs on some computers but not others.
The most common symptom that occurs is 'No Frames Received!' on the RGB stream, though the depth or IMU stream can be affected instead on rarer occasions. On computers that are affected by this issue, there is no fix available in the RealSense Viewer other than to avoid enabling Depth, RGB and Motion Module simultaneously. The RealSense SDK's rs-capture example program can though display Depth, RGB and IMU simultaneously.
When creating your own programs that enable these three stream types, a workaround is to use callbacks (C++) or to create two separate pipelines, with IMU alone on one pipeline and Depth + RGB on the other pipeline (Python).
-
Thank you MartyG.
I noticed another post (https://support.intelrealsense.com/hc/en-us/community/posts/360050995094-Realsense-D435i-Motion-data-freezes-after-sometime ) in community, so I tried to enable them separately. Sadly, even enable Motion Module itself could occur the same 'ERROR' ,so it seems that this is another problem.
I created my own program on my Jetson, one pipeline with IMU alone to test if this would work, and it failed. The error is 'No Frames Received!'. As my whole project is expected to be finished on Jetson, I'm a little depressed。
And also, thank you for your guidance in teaching me how to enable all these streams simultaneously. Follow your guidance, I succeed in enabling all these streams simultaneously with my PC (Python).
What should I do next? Thank you.
-
Thank you MartyG.
- I remembered I use this method.
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
cd ~/librealsense
sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
sudo apt-get install libglfw3-dev
cd ~/librealsense
chmod -x ./scripts/patch-realsense-ubuntu-L4T.sh
./scripts/patch-realsense-ubuntu-L4T.sh
chmod -x ./scripts/setup_udev_rules.sh
./scripts/setup_udev_rules.sh
cd ~/librealsense
mkdir build && cd build
cmake .. -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=release -DFORCE_RSUSB_BACKEND=false -DBUILD_WITH_CUDA=true && make-j$(($(nproc)-1)) && sudo make install- JetPack Version 4.5.1 [L4T 32.5.2]
-
At the time of writing this, the most recent JetPack version that the RealSense SDK officially supports is L4T version 32.5.1. It does not have L4T 32.5.2 support (32.5.2 was an identical version to 32.5.1 that added security fixes, according to the JetPack release notes).
SDK 2.50.0 added support for the later 32.6.1 thanks to an update submitted by a RealSense user.
It appears that you build the SDK from source code using the Jetson instructions at the link below.
I note that in your version of the instructions, two of the steps are reversed. In the official instructions, the patch script /scripts/patch-realsense-ubuntu-L4T.sh is run before this line:
sudo apt-get install git libssl-dev libusb-1.0-0-dev libudev-dev pkg-config libgtk-3-dev -y
./scripts/setup_udev_rules.shIn your instructions though, you run /scripts/patch-realsense-ubuntu-L4T.sh after the sudo apt-get instruction.
-
Thank you MartyG.
So I'd better uninstall realsense-viewer first and then install it again by following the correct steps to check if it works on L4T 32.5.2. And if it doesn't work, I should consider to flash L4T 32.5.1 or 32.6.1 on my Jetson and install realsense-viewer again, right?
I find it strange that I don't know why my L4T version is 32.5.2, I think it should be 32.5.1 if I flash JetPack 4.5.1.
-
I am uncertain on this point. As JetPack provides the Jetson kernel, it may be worth flashing L4T 32.5.1 and then running the /scripts/patch-realsense-ubuntu-L4T.sh patch script again due to the possibility that flashing the new JetPack overwrites the previously patched kernel with an unpatched one.
I would recommend trying that first and not removing your RealSense SDK build, and see whether the Motion Module is now able to receive frames after the update when only the Motion Module is enabled.
If you continue to have problems then there is the option to build the SDK with the RSUSB installation method, which is not dependent on Linux versions or kernel versions and does not require patching. To enable RSUSB, you set -DFORCE_RSUSB_BACKEND=true in the CMake build instruction.
-
A RealSense user at the link below with IMU problems on a Jetson Xavier NX, including the Motion Module Failure error, reported that using JetPack 4.5.1 resolved their problem.
https://github.com/IntelRealSense/realsense-ros/issues/2213#issuecomment-1008126279
-
Thank you MartyG!!!
In the end I choose to flash my Jetson.
Now my JetPack version is 4.6 and L4T is 32.6.1. Everything seems to be smooth now. Every single stream works good. But another sad thing comes... I need to make pyrealsense2 available again, I remembered I paid a lot time in installing this package. Do you know easier method to install pyrealsense2?
-
That's excellent news that you were successful after flashing the JetPack!
In the link below, a RealSense user shared an instruction guide that they wrote for installing pyrealsense2 on a Jetson NX.
Please sign in to leave a comment.
Comments
13 comments