librealsense: Unable to read IMU data on the D435i

Required Info
Camera Model D435i
Firmware Version 05.12.07.150
Operating System & Version Ubuntu 18.04
Kernel Version (Linux Only) 4.9.253-tegra
Platform NVIDIA Jetson Xavier NX
SDK Version 2.50.0
Language python
Segment Robot

Issue Description

Hello 👋! I’m trying to get a D435i working on my NVIDIA Jetson Xavier NX, but I am unable to stream data from my IMU.

Inside the realsense-viewer, I see all three camera modules (RGB, Stereo, and Motion). When I activate the Motion Module, nothing appears in my Window other than a set of axes.

image

Similarly, when I try to read IMU data inside ros melodic using ros-melodic-realsense2-camera@2.3.2, I get the following error:

$ roslaunch realsense2_camera rs_camera.launch initial_reset:=true enable_gyro:=true enable_accel:=true
SUMMARY
========

PARAMETERS
 * /camera/realsense2_camera/accel_fps: -1
 * /camera/realsense2_camera/accel_frame_id: camera_accel_frame
 * /camera/realsense2_camera/accel_optical_frame_id: camera_accel_opti...
 * /camera/realsense2_camera/align_depth: False
 * /camera/realsense2_camera/aligned_depth_to_color_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/aligned_depth_to_fisheye1_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/aligned_depth_to_fisheye2_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/aligned_depth_to_fisheye_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/aligned_depth_to_infra1_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/aligned_depth_to_infra2_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/allow_no_texture_points: False
 * /camera/realsense2_camera/base_frame_id: camera_link
 * /camera/realsense2_camera/calib_odom_file: 
 * /camera/realsense2_camera/clip_distance: -2.0
 * /camera/realsense2_camera/color_fps: -1
 * /camera/realsense2_camera/color_frame_id: camera_color_frame
 * /camera/realsense2_camera/color_height: -1
 * /camera/realsense2_camera/color_optical_frame_id: camera_color_opti...
 * /camera/realsense2_camera/color_width: -1
 * /camera/realsense2_camera/confidence_fps: -1
 * /camera/realsense2_camera/confidence_height: -1
 * /camera/realsense2_camera/confidence_width: -1
 * /camera/realsense2_camera/depth_fps: -1
 * /camera/realsense2_camera/depth_frame_id: camera_depth_frame
 * /camera/realsense2_camera/depth_height: -1
 * /camera/realsense2_camera/depth_optical_frame_id: camera_depth_opti...
 * /camera/realsense2_camera/depth_width: -1
 * /camera/realsense2_camera/device_type: 
 * /camera/realsense2_camera/enable_accel: True
 * /camera/realsense2_camera/enable_color: True
 * /camera/realsense2_camera/enable_confidence: True
 * /camera/realsense2_camera/enable_depth: True
 * /camera/realsense2_camera/enable_fisheye1: False
 * /camera/realsense2_camera/enable_fisheye2: False
 * /camera/realsense2_camera/enable_fisheye: False
 * /camera/realsense2_camera/enable_gyro: True
 * /camera/realsense2_camera/enable_infra1: False
 * /camera/realsense2_camera/enable_infra2: False
 * /camera/realsense2_camera/enable_infra: False
 * /camera/realsense2_camera/enable_pointcloud: False
 * /camera/realsense2_camera/enable_pose: False
 * /camera/realsense2_camera/enable_sync: False
 * /camera/realsense2_camera/filters: 
 * /camera/realsense2_camera/fisheye1_frame_id: camera_fisheye1_f...
 * /camera/realsense2_camera/fisheye1_optical_frame_id: camera_fisheye1_o...
 * /camera/realsense2_camera/fisheye2_frame_id: camera_fisheye2_f...
 * /camera/realsense2_camera/fisheye2_optical_frame_id: camera_fisheye2_o...
 * /camera/realsense2_camera/fisheye_fps: -1
 * /camera/realsense2_camera/fisheye_frame_id: camera_fisheye_frame
 * /camera/realsense2_camera/fisheye_height: -1
 * /camera/realsense2_camera/fisheye_optical_frame_id: camera_fisheye_op...
 * /camera/realsense2_camera/fisheye_width: -1
 * /camera/realsense2_camera/gyro_fps: -1
 * /camera/realsense2_camera/gyro_frame_id: camera_gyro_frame
 * /camera/realsense2_camera/gyro_optical_frame_id: camera_gyro_optic...
 * /camera/realsense2_camera/imu_optical_frame_id: camera_imu_optica...
 * /camera/realsense2_camera/infra1_frame_id: camera_infra1_frame
 * /camera/realsense2_camera/infra1_optical_frame_id: camera_infra1_opt...
 * /camera/realsense2_camera/infra2_frame_id: camera_infra2_frame
 * /camera/realsense2_camera/infra2_optical_frame_id: camera_infra2_opt...
 * /camera/realsense2_camera/infra_fps: 30
 * /camera/realsense2_camera/infra_height: 480
 * /camera/realsense2_camera/infra_rgb: False
 * /camera/realsense2_camera/infra_width: 848
 * /camera/realsense2_camera/initial_reset: True
 * /camera/realsense2_camera/json_file_path: 
 * /camera/realsense2_camera/linear_accel_cov: 0.01
 * /camera/realsense2_camera/odom_frame_id: camera_odom_frame
 * /camera/realsense2_camera/ordered_pc: False
 * /camera/realsense2_camera/pointcloud_texture_index: 0
 * /camera/realsense2_camera/pointcloud_texture_stream: RS2_STREAM_COLOR
 * /camera/realsense2_camera/pose_frame_id: camera_pose_frame
 * /camera/realsense2_camera/pose_optical_frame_id: camera_pose_optic...
 * /camera/realsense2_camera/publish_odom_tf: True
 * /camera/realsense2_camera/publish_tf: True
 * /camera/realsense2_camera/reconnect_timeout: 6.0
 * /camera/realsense2_camera/rosbag_filename: 
 * /camera/realsense2_camera/serial_no: 
 * /camera/realsense2_camera/stereo_module/exposure/1: 7500
 * /camera/realsense2_camera/stereo_module/exposure/2: 1
 * /camera/realsense2_camera/stereo_module/gain/1: 16
 * /camera/realsense2_camera/stereo_module/gain/2: 16
 * /camera/realsense2_camera/tf_publish_rate: 0.0
 * /camera/realsense2_camera/topic_odom_in: odom_in
 * /camera/realsense2_camera/unite_imu_method: 
 * /camera/realsense2_camera/usb_port_id: 
 * /camera/realsense2_camera/wait_for_device_timeout: -1.0
 * /rosdistro: melodic
 * /rosversion: 1.14.12

NODES
  /camera/
    realsense2_camera (nodelet/nodelet)
    realsense2_camera_manager (nodelet/nodelet)

ROS_MASTER_URI=http://localhost:11311

process[camera/realsense2_camera_manager-1]: started with pid [28221]
process[camera/realsense2_camera-2]: started with pid [28222]
[ INFO] [1646869055.630537822]: Initializing nodelet with 6 worker threads.
[ INFO] [1646869055.970920685]: RealSense ROS v2.3.2
[ INFO] [1646869055.971054351]: Built with LibRealSense v2.50.0
[ INFO] [1646869055.971170737]: Running with LibRealSense v2.50.0
[ INFO] [1646869056.075239642]:  
[ INFO] [1646869056.511142245]: Device with serial number 112222071473 was found.

[ INFO] [1646869056.511985939]: Device with physical ID 2-3.1-3 was found.
[ INFO] [1646869056.513606542]: Device with name Intel RealSense D435I was found.
[ INFO] [1646869056.516727298]: Device with port number 2-3.1 was found.
[ INFO] [1646869056.516865445]: Device USB type: 3.2
[ INFO] [1646869056.517486863]: Resetting device...
[ INFO] [1646869062.631294200]:  
[ INFO] [1646869063.076463054]: Device with serial number 112222071473 was found.

[ INFO] [1646869063.077511136]: Device with physical ID 2-3.1-3 was found.
[ INFO] [1646869063.077804997]: Device with name Intel RealSense D435I was found.
[ INFO] [1646869063.079578339]: Device with port number 2-3.1 was found.
[ INFO] [1646869063.079707237]: Device USB type: 3.2
[ INFO] [1646869063.089283653]: getParameters...
[ INFO] [1646869063.484071283]: setupDevice...
[ INFO] [1646869063.484878720]: JSON file is not provided
[ INFO] [1646869063.484982978]: ROS Node Namespace: camera
[ INFO] [1646869063.485066819]: Device Name: Intel RealSense D435I
[ INFO] [1646869063.485137316]: Device Serial No: 112222071473
[ INFO] [1646869063.485209446]: Device physical port: 2-3.1-3
[ INFO] [1646869063.485282087]: Device FW version: 05.12.07.150
[ INFO] [1646869063.485523179]: Device Product ID: 0x0B3A
[ INFO] [1646869063.485638701]: Enable PointCloud: Off
[ INFO] [1646869063.485762511]: Align Depth: Off
[ INFO] [1646869063.485835728]: Sync Mode: Off
[ INFO] [1646869063.485997299]: Device Sensors: 
[ INFO] [1646869063.592392967]: Stereo Module was found.
[ INFO] [1646869063.640798257]: RGB Camera was found.
[ INFO] [1646869063.641592318]: Motion Module was found.
[ INFO] [1646869063.641788738]: (Confidence, 0) sensor isn't supported by current device! -- Skipping...
[ INFO] [1646869063.641948324]: num_filters: 0
[ INFO] [1646869063.642035366]: Setting Dynamic reconfig parameters.
[ INFO] [1646869067.623209358]: Done Setting Dynamic reconfig parameters.
[ INFO] [1646869067.625123822]: depth stream is enabled - width: 848, height: 480, fps: 30, Format: Z16
[ INFO] [1646869067.629327348]: color stream is enabled - width: 1280, height: 720, fps: 30, Format: RGB8
[ INFO] [1646869067.629639001]: gyro stream is enabled - fps: 200
[ INFO] [1646869067.629758875]: accel stream is enabled - fps: 63
[ INFO] [1646869067.629854781]: setupPublishers...
[ INFO] [1646869067.644638005]: Expected frequency for depth = 30.00000
[ INFO] [1646869067.660615520]: Expected frequency for color = 30.00000
[ INFO] [1646869067.691540614]: setupStreams...
 09/03 18:37:47,853 WARNING [547138564480] (ds5-motion.cpp:473) IMU Calibration is not available, default intrinsic and extrinsic will be used.
[ INFO] [1646869068.401903976]: SELECTED BASE:Depth, 0
[ INFO] [1646869068.480539406]: RealSense Node Is Up!
[ WARN] [1646869068.522014917]: 
 09/03 18:37:48,526 WARNING [546836558208] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
 09/03 18:37:48,577 WARNING [546836558208] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
 09/03 18:37:48,730 WARNING [546836558208] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
 09/03 18:37:48,782 WARNING [546836558208] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
 09/03 18:37:48,832 WARNING [546836558208] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
 09/03 18:37:48,883 WARNING [546836558208] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
 09/03 18:37:48,934 WARNING [546836558208] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
 09/03 18:37:48,985 WARNING [546836558208] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11

Here is some info on what rostopics are being published:

$ rostopic list
/camera/accel/imu_info
/camera/accel/metadata
/camera/accel/sample
/camera/color/camera_info
/camera/color/image_raw
/camera/color/metadata
/camera/depth/camera_info
/camera/depth/image_rect_raw
/camera/depth/metadata
/camera/extrinsics/depth_to_color
/camera/gyro/imu_info
/camera/gyro/metadata
/camera/gyro/sample
/camera/motion_module/parameter_descriptions
/camera/motion_module/parameter_updates
/camera/realsense2_camera_manager/bond
/camera/rgb_camera/auto_exposure_roi/parameter_descriptions
/camera/rgb_camera/auto_exposure_roi/parameter_updates
/camera/rgb_camera/parameter_descriptions
/camera/rgb_camera/parameter_updates
/camera/stereo_module/auto_exposure_roi/parameter_descriptions
/camera/stereo_module/auto_exposure_roi/parameter_updates
/camera/stereo_module/parameter_descriptions
/camera/stereo_module/parameter_updates
/diagnostics
/rosout
/rosout_agg
/tf
/tf_static

$ rostopic echo /camera/accel/sample # Blank

$ rostopic echo /camera/gyro/sample # Blank

$ rostopic echo /camera/accel/imu_info
frame_id: "camera_accel_optical_frame"
data: [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0]
noise_variances: [0.0, 0.0, 0.0]
bias_variances: [0.0, 0.0, 0.0]
---

$ rostopic echo /camera/gyro/imu_info
frame_id: "camera_gyro_optical_frame"
data: [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0]
noise_variances: [0.0, 0.0, 0.0]
bias_variances: [0.0, 0.0, 0.0]
---

I’m not sure exactly what’s wrong with my setup, but I have a suspicion that it’s an issue with my realsense SDK installation. I installed the realsense SDK using the “Install with Debian Packages” instructions in the Jetson installation instructions. I saw that some realsense features may require applying the kernel patches described in the “Building from Source Using the Native backend” section, but I wasn’t sure if that applied to the D435i IMU.

Any guidance will be greatly appreciated!

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 19

Commits related to this issue

Most upvoted comments

Thanks very much @zbreit for the update! If you are satisfied with the outcome of this case then please do feel free to close it. Thanks again!