Skip to content

d400 series frequency depth and infra issues #3490

Description

@andrycapod

Description

I am experiencing an unexpected frame rate mismatch between infra1 and depth streams when using an Intel RealSense D435i with realsense-ros2.

I would like to run both Infra1 and Depth at 848x480 @ 60 FPS, but even when explicitly setting both profiles to 60 FPS, the Infra1 stream is published at 120 Hz while the Depth stream remains at 60 Hz.

This behavior is confusing from a ROS user perspective and makes synchronization and downstream processing more difficult.


Hardware / Software

  • Camera: Intel RealSense D435i
  • Firmware version: 5.17.0.9
  • ROS 2 distribution: Humble
  • librealsense2: 2.56.4
  • realsense2-camera: 4.56.4

Launch / Parameters

Color stream is disabled, only Infra1 and Depth are enabled.

enable_color: false
enable_infra1: true
enable_infra2: false

depth_module.infra_profile: 848,480,60
depth_module.depth_profile: 848,480,60

Observed behavior

When running the node with the configuration described above:

  • The topic /camera/infra1/image_rect_raw is published at approximately 120 Hz
  • The topic /camera/depth/image_rect_raw is published at 60 Hz

This occurs even though both depth_module.infra_profile and depth_module.depth_profile are explicitly set to 848,480,60.

The Infra1 stream appears to run at double the requested frame rate, while the Depth stream respects the configured FPS.

Camera logs show that both streams are opened at 60 FPS:

[component_container-1] [INFO] [1770715012.108994267] [roof_rgbd_camera]: Open profile: stream_type: Infra(1), Format: Y8, Width: 848, Height: 480, FPS: 60
[component_container-1] [INFO] [1770715012.109063389] [roof_rgbd_camera]: Open profile: stream_type: Depth(0), Format: Z16, Width: 848, Height: 480, FPS: 60

Conclusion / Question

Given the behavior described above, I would like to ask what is the correct or recommended way to use both Infra1 and Depth at 60 Hz on the D435i.

Specifically:

  • Is it possible to force Infra1 to be published at 60 Hz, matching the Depth stream, when both profiles are set to 848x480@60?
  • If this behavior is expected due to internal stereo/depth pipeline constraints, is there a supported configuration or parameter to keep the two streams synchronized at the same frame rate?
  • If not, what is the recommended workaround to reliably use both streams at 60 Hz in ROS 2 (e.g., filtering, throttling, or alternative profiles)?

Any clarification or guidance on how to correctly achieve this setup would be greatly appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions