• ROS
  • Fatal Error and No Data for Stereo Node OAK-D-S2-AF

I am encountering issues when running the `stereo_inertial_node` using ROS2 with my OAK-D-S2 AF camera. Initially, I encountered a fatal error, and upon reducing the resolution, I no longer receive data on the topics Below are the detailed outputs and steps taken:

Command:

`ros2 launch depthai_examples stereo_inertial_node.launch.py

`

Output:

\`[INFO] [launch]: All log files can be found below /home/joe/.ros/log/2024-06-26-14-21-07-929574-JOE-193765

[INFO] [launch]: Default logging verbosity is set to INFO

[INFO] [robot_state_publisher-1]: process started with pid [193778]

[INFO] [stereo_inertial_node-2]: process started with pid [193780]

[INFO] [component_container-3]: process started with pid [193782]

[INFO] [rviz2-4]: process started with pid [193784]

[rviz2-4] Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.

[robot_state_publisher-1] [INFO] [1719404468.120257951] [oak_state_publisher]: got segment oak-d-base-frame

[robot_state_publisher-1] ...

[component_container-3] [INFO] [1719404468.354162060] [container]: Load Library: /opt/ros/humble/lib/libdepth_image_proc.so

[rviz2-4] [INFO] [1719404468.373438346] [rviz2]: Stereo is NOT SUPPORTED

[rviz2-4] ...

[component_container-3] [INFO] [1719404468.390723690] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::ConvertMetricNode>

[component_container-3] [INFO] [1719404468.390763571] [container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::ConvertMetricNode>

[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/convert_metric_node' in container '/container'

[component_container-3] ...

[component_container-3] [WARN] [1719404468.444482545] [point_cloud_xyzrgb_node]: New subscription discovered on topic '/stereo/points', requesting incompatible QoS. No messages will be sent to it. Last incompatible policy: RELIABILITY_QOS_POLICY

[component_container-3] ...

[stereo_inertial_node-2] Listing available devices...

[stereo_inertial_node-2] Device Mx ID: 18443010B1E6631200

[stereo_inertial_node-2] [18443010B1E6631200] [3.2] [2.264] [SpatialDetectionNetwork(9)] [warning] Network compiled for 6 shaves, maximum available 10, compiling for 5 shaves likely will yield in better performance

[stereo_inertial_node-2] Device USB status: SUPER

[stereo_inertial_node-2] [18443010B1E6631200] [3.2] [3.227] [system] [critical] Fatal error. Please report to developers. Log: 'Fatal error on MSS CPU: trap: 00, address: 00000000' '0'

\`

After reducing the mono resolution to 400p from 720p, I ran the same command:

\`[INFO] [launch]: All log files can be found below /home/joe/.ros/log/2024-06-26-14-26-38-974239-JOE-197675

[INFO] [launch]: Default logging verbosity is set to INFO

[INFO] [robot_state_publisher-1]: process started with pid [197688]

[INFO] [stereo_inertial_node-2]: process started with pid [197690]

[INFO] [component_container-3]: process started with pid [197692]

[INFO] [rviz2-4]: process started with pid [197694]

[rviz2-4] Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.

[robot_state_publisher-1] ...

[stereo_inertial_node-2] [WARN] [1719404799.209315196] [DEPTHAI]: RGB Camera resolution is higher than the configured stereo resolution. Upscaling the stereo depth/disparity to match RGB camera resolution.

[component_container-3] ...

[rviz2-4] [INFO] [1719404799.431160091] [rviz2]: Stereo is NOT SUPPORTED

[rviz2-4] ...

[component_container-3] [WARN] [1719404799.502955753] [point_cloud_xyzrgb_node]: New subscription discovered on topic '/stereo/points', requesting incompatible QoS. No messages will be sent to it. Last incompatible policy: RELIABILITY_QOS_POLICY

[component_container-3] ...

[stereo_inertial_node-2] Listing available devices...

[stereo_inertial_node-2] Device Mx ID: 18443010B1E6631200

[stereo_inertial_node-2] [18443010B1E6631200] [3.2] [2.257] [SpatialDetectionNetwork(9)] [warning] Network compiled for 6 shaves, maximum available 10, compiling for 5 shaves likely will yield in better performance

[stereo_inertial_node-2] Device USB status: SUPER

\`

the launch file :

import os

from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription, launch_description_sources
from launch.actions import IncludeLaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch.conditions import IfCondition, LaunchConfigurationEquals, LaunchConfigurationNotEquals
import launch_ros.actions
import launch_ros.descriptions


def generate_launch_description():
    depthai_examples_path = get_package_share_directory('depthai_examples')
    urdf_launch_dir = os.path.join(get_package_share_directory('depthai_descriptions'), 'launch')

    aligned_rviz = os.path.join(depthai_examples_path,
                                'rviz', 'stereoInertialDepthAlignROS2.rviz')
    
    rectify_rviz = os.path.join(depthai_examples_path,
                                'rviz', 'stereoInertial.rviz')
    default_resources_path = os.path.join(depthai_examples_path,
                                'resources')

    mxId         = LaunchConfiguration('mxId',      default = 'x')
    usb2Mode     = LaunchConfiguration('usb2Mode',  default = False)
    poeMode      = LaunchConfiguration('poeMode',   default = False)

    camera_model = LaunchConfiguration('camera_model',  default = 'OAK-D')
    tf_prefix    = LaunchConfiguration('tf_prefix',     default = 'oak')
    mode         = LaunchConfiguration('mode', default = 'depth')
    base_frame   = LaunchConfiguration('base_frame',    default = 'oak-d_frame')
    parent_frame = LaunchConfiguration('parent_frame',  default = 'oak-d-base-frame')
    imuMode      = LaunchConfiguration('imuMode', default = '1')

    cam_pos_x    = LaunchConfiguration('cam_pos_x',     default = '0.0')
    cam_pos_y    = LaunchConfiguration('cam_pos_y',     default = '0.0')
    cam_pos_z    = LaunchConfiguration('cam_pos_z',     default = '0.0')
    cam_roll     = LaunchConfiguration('cam_roll',      default = '0.0')
    cam_pitch    = LaunchConfiguration('cam_pitch',     default = '0.0')
    cam_yaw      = LaunchConfiguration('cam_yaw',       default = '0.0')

    lrcheck        = LaunchConfiguration('lrcheck', default = True)
    extended       = LaunchConfiguration('extended', default = False)
    subpixel       = LaunchConfiguration('subpixel', default = True)
    rectify        = LaunchConfiguration('rectify', default = True)
    depth_aligned  = LaunchConfiguration('depth_aligned', default = True)
    manualExposure = LaunchConfiguration('manualExposure', default = False)
    expTime        = LaunchConfiguration('expTime', default = 20000)
    sensIso        = LaunchConfiguration('sensIso', default = 800)

    enableSpatialDetection  = LaunchConfiguration('enableSpatialDetection', default = True)
    syncNN                  = LaunchConfiguration('syncNN', default = True)
    detectionClassesCount   = LaunchConfiguration('detectionClassesCount', default = 80)
    nnName                  = LaunchConfiguration('nnName', default = 'x')
    resourceBaseFolder      = LaunchConfiguration('resourceBaseFolder', default = default_resources_path)


    stereo_fps            = LaunchConfiguration('stereo_fps', default = 30)
    confidence            = LaunchConfiguration('confidence', default = 200)
    LRchecktresh          = LaunchConfiguration('LRchecktresh', default = 5)
    monoResolution        = LaunchConfiguration('monoResolution', default = '720p')
    
    rgbResolution           = LaunchConfiguration('rgbResolution',  default = '1080p')
    rgbScaleNumerator       = LaunchConfiguration('rgbScaleNumerator',  default = 2)
    rgbScaleDinominator     = LaunchConfiguration('rgbScaleDinominator',    default = 3)
    previewWidth            = LaunchConfiguration('previewWidth',   default = 416)
    previewHeight           = LaunchConfiguration('previewHeight',  default = 416)
    
    
    angularVelCovariance  = LaunchConfiguration('angularVelCovariance', default = 0.0)
    linearAccelCovariance = LaunchConfiguration('linearAccelCovariance', default = 0.0)

    enableDotProjector = LaunchConfiguration('enableDotProjector', default = False)
    enableFloodLight   = LaunchConfiguration('enableFloodLight', default = False)
    dotProjectormA     = LaunchConfiguration('dotProjectormA', default = 200.0)
    floodLightmA       = LaunchConfiguration('floodLightmA', default = 200.0)
    enableRosBaseTimeUpdate       = LaunchConfiguration('enableRosBaseTimeUpdate', default = False)
    enableRviz         = LaunchConfiguration('enableRviz', default = True)


    declare_mxId_cmd = DeclareLaunchArgument(
        'mxId',
        default_value=mxId,
        description='select the device by passing the MxID of the device. It will connect to first available device if left empty.')

    declare_usb2Mode_cmd = DeclareLaunchArgument(
        'usb2Mode',
        default_value=usb2Mode,
        description='To revert and use usb2 Mode. Set this parameter to false')

    declare_poeMode_cmd = DeclareLaunchArgument(
        'poeMode',
        default_value=poeMode,
        description='When MxID is set and the device is a POE model then set the poeMode to \"true\" to connect properly.')

    declare_camera_model_cmd = DeclareLaunchArgument(
        'camera_model',
        default_value=camera_model,
        description='The model of the camera. Using a wrong camera model can disable camera features. Valid models: `OAK-D, OAK-D-LITE`.')

    declare_tf_prefix_cmd = DeclareLaunchArgument(
        'tf_prefix',
        default_value=tf_prefix,
        description='your custom name for the prefix of camera TF frames')
 
    declare_mode_cmd = DeclareLaunchArgument(
        'mode',
        default_value=mode,
        description='set to  \"depth\" or \"disparity\". Setting to depth will publish depth or else will publish disparity.')

    declare_base_frame_cmd = DeclareLaunchArgument(
        'base_frame',
        default_value=base_frame,
        description='Name of the base link in the TF Tree.')

    declare_parent_frame_cmd = DeclareLaunchArgument(
        'parent_frame',
        default_value=parent_frame,
        description='Name of the parent link from an another robot TF that can be connected to the base of the OAK device.')

    declare_imu_mode_cmd = DeclareLaunchArgument(
        'imuMode',
        default_value=imuMode,
        description=' set to 0 -> COPY, 1 -> LINEAR_INTERPOLATE_GYRO, 2 -> LINEAR_INTERPOLATE_ACCEL')


    declare_pos_x_cmd = DeclareLaunchArgument(
        'cam_pos_x',
        default_value=cam_pos_x,
        description='Position X of the camera with respect to the base frame.')

    declare_pos_y_cmd = DeclareLaunchArgument(
        'cam_pos_y',
        default_value=cam_pos_y,
        description='Position Y of the camera with respect to the base frame.')

    declare_pos_z_cmd = DeclareLaunchArgument(
        'cam_pos_z',
        default_value=cam_pos_z,
        description='Position Z of the camera with respect to the base frame.')

    declare_roll_cmd = DeclareLaunchArgument(
        'cam_roll',
        default_value=cam_roll,
        description='Roll orientation of the camera with respect to the base frame.')

    declare_pitch_cmd = DeclareLaunchArgument(
        'cam_pitch',
        default_value=cam_pitch,
        description='Pitch orientation of the camera with respect to the base frame.')

    declare_yaw_cmd = DeclareLaunchArgument(
        'cam_yaw',
        default_value=cam_yaw,
        description='Yaw orientation of the camera with respect to the base frame.')
    

    declare_lrcheck_cmd = DeclareLaunchArgument(
        'lrcheck',
        default_value=lrcheck,
        description='LR-Check is used to remove incorrectly calculated disparity pixels due to occlusions at object borders. Set to true to enable it')

    declare_extended_cmd = DeclareLaunchArgument(
        'extended',
        default_value=extended,
        description='Extended disparity mode allows detecting closer distance objects for the given baseline. Set this parameter to true to enable it')

    declare_subpixel_cmd = DeclareLaunchArgument(
        'subpixel',
        default_value=subpixel,
        description='Subpixel mode improves the precision and is especially useful for long range measurements. It also helps for better estimating surface normals. Set this parameter to true to enable it')

    declare_rectify_cmd = DeclareLaunchArgument(
        'rectify',
        default_value=rectify,
        description='enable this to publish rectified images used for depth estimation')

    declare_depth_aligned_cmd = DeclareLaunchArgument(
        'depth_aligned',
        default_value=depth_aligned,
        description='When depth_aligned is enabled depth map from stereo will be aligned to the RGB camera in the center.')

    declare_manualExposure_cmd = DeclareLaunchArgument(
        'manualExposure',
        default_value=manualExposure,
        description='When manualExposure is enabled, you can set the exposure time(expTime) and ISO(sensIso) of the stereo camera.')
    
    declare_expTime_cmd = DeclareLaunchArgument(
        'expTime',
        default_value=expTime,
        description='Set the exposure time of the stereo camera. Default value is 20000')

    declare_sensIso_cmd = DeclareLaunchArgument(
        'sensIso',
        default_value=sensIso,
        description='Set the ISO of the stereo camera. Default value is 800')

    declare_enableSpatialDetection_cmd = DeclareLaunchArgument(
        'enableSpatialDetection',
        default_value=enableSpatialDetection,
        description='When enableSpatialDetection is enabled NN Object detection with Spatial Positioning will be run.')

    declare_syncNN_cmd = DeclareLaunchArgument(
        'syncNN',
        default_value=syncNN,
        description='When syncNN is enabled Preview Image will be synced with the Detections.')

    declare_detectionClassesCount_cmd = DeclareLaunchArgument(
        'detectionClassesCount',
        default_value=detectionClassesCount,
        description='When detectionClassesCount is number of classes the NN contains. Default is set to 80.')

    declare_nnName_cmd = DeclareLaunchArgument(
        'nnName',
        default_value=nnName,
        description='Name of the NN blob being used to load. By default the one in resources folder will be used.')

    declare_resourceBaseFolder_cmd = DeclareLaunchArgument(
        'resourceBaseFolder',
        default_value=resourceBaseFolder,
        description='Path to the folder where NN Blob is stored.')

    declare_stereo_fps_cmd = DeclareLaunchArgument(
        'stereo_fps',
        default_value=stereo_fps,
        description='Sets the FPS of the cameras used in the stereo setup.')

    declare_confidence_cmd = DeclareLaunchArgument(
        'confidence',
        default_value=confidence,
        description='Set the confidence of the depth from 0-255. Max value means allow depth of all confidence. Default is set to 200')

    declare_LRchecktresh_cmd = DeclareLaunchArgument(
        'LRchecktresh',
        default_value=LRchecktresh,
        description='Set the LR threshold from 1-10 to get more accurate depth. Default value is 5.')

    declare_monoResolution_cmd = DeclareLaunchArgument(
        'monoResolution',
        default_value=monoResolution,
        description='Set the resolution of the mono/Stereo setup. Choose between 720p, 400p, 480p, 800p.')
 
    declare_rgbResolution_cmd = DeclareLaunchArgument(
        'rgbResolution',
        default_value=rgbResolution,
        description='Set the resolution of the RGB setup. Choose between 1080p, 4k, 12MP.')

    declare_rgbScaleNumerator_cmd = DeclareLaunchArgument(
        'rgbScaleNumerator',
        default_value=rgbScaleNumerator,
        description='Number of the scale Factor Numberator on top of RGB resolution selection.')

    declare_rgbScaleDinominator_cmd = DeclareLaunchArgument(
        'rgbScaleDinominator',
        default_value=rgbScaleDinominator,
        description='Number of the scale Factor Dinominator on top of RGB resolution selection.')

    declare_previewWidth_cmd = DeclareLaunchArgument(
        'previewWidth',
        default_value=previewWidth,
        description='Set the width of the preview window used for the NN detection.')

    declare_previewHeight_cmd = DeclareLaunchArgument(
        'previewHeight',
        default_value=previewHeight,
        description='Set the height of the preview window used for the NN detection.')

    declare_angularVelCovariance_cmd = DeclareLaunchArgument(
        'angularVelCovariance',
        default_value=angularVelCovariance,
        description='Set the angular velocity covariance of the IMU.')

    declare_linearAccelCovariance_cmd = DeclareLaunchArgument(
        'linearAccelCovariance',
        default_value=linearAccelCovariance,
        description='Set the Linear acceleration covariance of the IMU.')

    declare_enableDotProjector_cmd = DeclareLaunchArgument(
        'enableDotProjector',
        default_value=enableDotProjector,
        description='set this to true to enable the dot projector structure light (Available only on Pro models).')
    
    declare_enableFloodLight_cmd = DeclareLaunchArgument(
        'enableFloodLight',
        default_value=enableFloodLight,
        description='Set this to true to enable the flood light for night vision (Available only on Pro models).')
   
    declare_dotProjectormA_cmd = DeclareLaunchArgument(
        'dotProjectormA',
        default_value=dotProjectormA,
        description='Set the mA at which you intend to drive the dotProjector. Default is set to 200mA.')

    declare_floodLightmA_cmd = DeclareLaunchArgument(
        'floodLightmA',
        default_value=floodLightmA,
        description='Set the mA at which you intend to drive the FloodLight. Default is set to 200mA.')
    declare_enableRosBaseTimeUpdate_cmd = DeclareLaunchArgument(
        'enableRosBaseTimeUpdate',
        default_value=enableRosBaseTimeUpdate,
        description='Whether to update ROS time on each message.')


    declare_enableRviz_cmd = DeclareLaunchArgument(
        'enableRviz',
        default_value=enableRviz,
        description='When True create a RVIZ window.')
    


    urdf_launch = IncludeLaunchDescription(
                            launch_description_sources.PythonLaunchDescriptionSource(
                                    os.path.join(urdf_launch_dir, 'urdf_launch.py')),
                            launch_arguments={'tf_prefix'   : tf_prefix,
                                              'camera_model': camera_model,
                                              'base_frame'  : base_frame,
                                              'parent_frame': parent_frame,
                                              'cam_pos_x'   : cam_pos_x,
                                              'cam_pos_y'   : cam_pos_y,
                                              'cam_pos_z'   : cam_pos_z,
                                              'cam_roll'    : cam_roll,
                                              'cam_pitch'   : cam_pitch,
                                              'cam_yaw'     : cam_yaw}.items())


    stereo_node = launch_ros.actions.Node(
            package='depthai_examples', executable='stereo_inertial_node',
            output='screen',
            parameters=[{'mxId':                    mxId},
                        {'usb2Mode':                usb2Mode},
                        {'poeMode':                 poeMode},
                        {'resourceBaseFolder':      resourceBaseFolder},

                        {'tf_prefix':               tf_prefix},
                        {'mode':                    mode},
                        {'imuMode':                 imuMode},

                        {'lrcheck':                 lrcheck},
                        {'extended':                extended},
                        {'subpixel':                subpixel},
                        {'rectify':                 rectify},

                        {'depth_aligned':           depth_aligned},
                        {'manualExposure':          manualExposure},
                        {'expTime':                 expTime},
                        {'sensIso':                 sensIso},
                        {'stereo_fps':              stereo_fps},
                        {'confidence':              confidence},
                        {'LRchecktresh':            LRchecktresh},
                        {'monoResolution':          monoResolution},
                        {'rgbResolution':           rgbResolution},

                        {'rgbScaleNumerator':       rgbScaleNumerator},
                        {'rgbScaleDinominator':     rgbScaleDinominator},
                        {'previewWidth':            previewWidth},
                        {'previewHeight':           previewHeight},

                        {'angularVelCovariance':    angularVelCovariance},
                        {'linearAccelCovariance':   linearAccelCovariance},
                        {'enableSpatialDetection':  enableSpatialDetection},
                        {'detectionClassesCount':   detectionClassesCount},
                        {'syncNN':                  syncNN},
                        {'nnName':                  nnName},
                        
                        {'enableDotProjector':      enableDotProjector},
                        {'enableFloodLight':        enableFloodLight},
                        {'dotProjectormA':          dotProjectormA},
                        {'floodLightmA':            floodLightmA},
                        {'enableRosBaseTimeUpdate': enableRosBaseTimeUpdate}
                        ])
    
    depth_metric_converter = launch_ros.descriptions.ComposableNode(
                                package='depth_image_proc',
                                plugin='depth_image_proc::ConvertMetricNode',
                                name='convert_metric_node',
                                remappings=[('image_raw', 'stereo/depth'),
                                            ('camera_info', 'stereo/camera_info'),
                                            ('image', 'stereo/converted_depth')]
                                )
    pointcloud_topic = '/stereo/points'
    point_cloud_creator = None
    rviz_node = None
    if LaunchConfigurationEquals('depth_aligned', 'True'): 
        point_cloud_creator = launch_ros.descriptions.ComposableNode(
                    package='depth_image_proc',
                    plugin='depth_image_proc::PointCloudXyzrgbNode',
                    name='point_cloud_xyzrgb_node',
                    remappings=[('depth_registered/image_rect', 'stereo/converted_depth'),
                                ('rgb/image_rect_color', 'color/image'),
                                ('rgb/camera_info', 'color/camera_info'),
                                ('points', pointcloud_topic )]
                )

        rviz_node = launch_ros.actions.Node(
            package='rviz2', executable='rviz2', output='screen',
            arguments=['--display-config', aligned_rviz],
            condition=IfCondition(enableRviz))

    else:
        point_cloud_creator = launch_ros.descriptions.ComposableNode(
                    package='depth_image_proc',
                    plugin='depth_image_proc::PointCloudXyziNode',
                    name='point_cloud_xyzi',

                    remappings=[('depth/image_rect', 'stereo/converted_depth'),
                                ('intensity/image_rect', 'right/image_rect'),
                                ('intensity/camera_info', 'right/camera_info'),
                                ('points', pointcloud_topic)]
                )


        rviz_node = launch_ros.actions.Node(
            package='rviz2', executable='rviz2', output='screen',
            arguments=['--display-config', rectify_rviz],
            condition=IfCondition(enableRviz))



    if point_cloud_creator is not None:
        point_cloud_container = launch_ros.actions.ComposableNodeContainer(
                name='container',
                namespace='',
                package='rclcpp_components',
                executable='component_container',
                composable_node_descriptions=[
                    # Driver itself
                    depth_metric_converter,
                    point_cloud_creator
                ],
                output='screen',)
    marker_node = launch_ros.actions.Node(
            package='depthai_examples', executable='rviz2', output='screen',
            arguments=['--display-config', rectify_rviz],
            condition=IfCondition(enableRviz))

    ld = LaunchDescription()

    ld.add_action(declare_mxId_cmd)
    ld.add_action(declare_usb2Mode_cmd)
    ld.add_action(declare_poeMode_cmd)
    ld.add_action(declare_camera_model_cmd)

    ld.add_action(declare_tf_prefix_cmd)
    ld.add_action(declare_mode_cmd)
    ld.add_action(declare_base_frame_cmd)
    ld.add_action(declare_parent_frame_cmd)
    ld.add_action(declare_imu_mode_cmd)

    ld.add_action(declare_pos_x_cmd)
    ld.add_action(declare_pos_y_cmd)
    ld.add_action(declare_pos_z_cmd)
    ld.add_action(declare_roll_cmd)
    ld.add_action(declare_pitch_cmd)
    ld.add_action(declare_yaw_cmd)
    
    ld.add_action(declare_lrcheck_cmd)
    ld.add_action(declare_extended_cmd)
    ld.add_action(declare_subpixel_cmd)
    ld.add_action(declare_rectify_cmd)
    ld.add_action(declare_depth_aligned_cmd)
    ld.add_action(declare_manualExposure_cmd)
    ld.add_action(declare_expTime_cmd)
    ld.add_action(declare_sensIso_cmd)

    ld.add_action(declare_enableSpatialDetection_cmd)
    ld.add_action(declare_syncNN_cmd)
    ld.add_action(declare_detectionClassesCount_cmd)
    ld.add_action(declare_nnName_cmd)
    ld.add_action(declare_resourceBaseFolder_cmd)

    ld.add_action(declare_stereo_fps_cmd)
    ld.add_action(declare_confidence_cmd)
    ld.add_action(declare_LRchecktresh_cmd)
    ld.add_action(declare_monoResolution_cmd)

    ld.add_action(declare_rgbResolution_cmd)
    ld.add_action(declare_rgbScaleNumerator_cmd)
    ld.add_action(declare_rgbScaleDinominator_cmd)
    ld.add_action(declare_previewWidth_cmd)
    ld.add_action(declare_previewHeight_cmd)

    ld.add_action(declare_angularVelCovariance_cmd)
    ld.add_action(declare_linearAccelCovariance_cmd)

    ld.add_action(declare_enableDotProjector_cmd)
    ld.add_action(declare_enableFloodLight_cmd)
    ld.add_action(declare_dotProjectormA_cmd)
    ld.add_action(declare_floodLightmA_cmd)

    ld.add_action(declare_enableRviz_cmd)

    ld.add_action(urdf_launch)
    ld.add_action(stereo_node)

    if LaunchConfigurationEquals('depth_aligned', 'True') and LaunchConfigurationEquals('rectify', 'True'):
        ld.add_action(point_cloud_container)
    
    # ld.add_action(point_cloud_node)
    if LaunchConfigurationEquals('enableRviz', 'True') and rviz_node is not None:
        ld.add_action(rviz_node)
    return ld

**when i tried rgbd_pcl.launch.py i am got just the imu data and rgb/image_raw but i didn' get point cloud or depth image i got **

ros2 launch depthai_ros_driver rgbd_pcl.launch.py 
[INFO] [launch]: All log files can be found below /home/joe/.ros/log/2024-06-26-15-52-33-340608-JOE-246770
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [rviz2-1]: process started with pid [246785]
[INFO] [component_container-2]: process started with pid [246787]
[rviz2-1] Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[component_container-2] [INFO] [1719409953.737211636] [oak_container]: Load Library: /opt/ros/humble/lib/librobot_state_publisher_node.so
[component_container-2] [INFO] [1719409953.738794618] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<robot_state_publisher::RobotStatePublisher>
[component_container-2] [INFO] [1719409953.738807704] [oak_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<robot_state_publisher::RobotStatePublisher>
[component_container-2] [INFO] [1719409953.742326677] [oak_state_publisher]: got segment oak
[component_container-2] [INFO] [1719409953.742347618] [oak_state_publisher]: got segment oak-d-base-frame
[component_container-2] [INFO] [1719409953.742351233] [oak_state_publisher]: got segment oak_imu_frame
[component_container-2] [INFO] [1719409953.742353929] [oak_state_publisher]: got segment oak_left_camera_frame
[component_container-2] [INFO] [1719409953.742356649] [oak_state_publisher]: got segment oak_left_camera_optical_frame
[component_container-2] [INFO] [1719409953.742359420] [oak_state_publisher]: got segment oak_model_origin
[component_container-2] [INFO] [1719409953.742362289] [oak_state_publisher]: got segment oak_rgb_camera_frame
[component_container-2] [INFO] [1719409953.742364971] [oak_state_publisher]: got segment oak_rgb_camera_optical_frame
[component_container-2] [INFO] [1719409953.742367442] [oak_state_publisher]: got segment oak_right_camera_frame
[component_container-2] [INFO] [1719409953.742369960] [oak_state_publisher]: got segment oak_right_camera_optical_frame
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/oak_state_publisher' in container 'oak_container'
[component_container-2] [INFO] [1719409953.743324815] [oak_container]: Load Library: /home/joe/MESA_ws/install/depthai_ros_driver/lib/libdepthai_ros_driver.so
[rviz2-1] [INFO] [1719409953.782980429] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-1] [INFO] [1719409953.783098450] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[component_container-2] [INFO] [1719409953.786466112] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depthai_ros_driver::Camera>
[component_container-2] [INFO] [1719409953.786497522] [oak_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<depthai_ros_driver::Camera>
[component_container-2] [INFO] [1719409953.792203754] [oak]: No ip/mxid specified, connecting to the next available device.
[rviz2-1] [INFO] [1719409953.794360534] [rviz2]: Stereo is NOT SUPPORTED
[component_container-2] [INFO] [1719409956.545270385] [oak]: Camera with MXID: 18443010B1E6631200 and Name: 3.2 connected!
[component_container-2] [INFO] [1719409956.546608230] [oak]: USB SPEED: SUPER
[component_container-2] [INFO] [1719409956.599825731] [oak]: Device type: OAK-D-S2
[component_container-2] [INFO] [1719409956.603308541] [oak]: Pipeline type: RGBD
[component_container-2] [INFO] [1719409957.372621871] [oak]: Finished setting up pipeline.
[component_container-2] [INFO] [1719409958.279319474] [oak]: Camera ready!
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/oak' in container '/oak_container'
[component_container-2] [INFO] [1719409958.280005528] [oak_container]: Load Library: /opt/ros/humble/lib/libdepth_image_proc.so
[component_container-2] [INFO] [1719409958.285044618] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::ConvertMetricNode>
[component_container-2] [INFO] [1719409958.285089492] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::CropForemostNode>
[component_container-2] [INFO] [1719409958.285101509] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::DisparityNode>
[component_container-2] [INFO] [1719409958.285110054] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzNode>
[component_container-2] [INFO] [1719409958.285122170] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzRadialNode>
[component_container-2] [INFO] [1719409958.285130573] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyziNode>
[component_container-2] [INFO] [1719409958.285139064] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyziRadialNode>
[component_container-2] [INFO] [1719409958.285147093] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzrgbNode>
[component_container-2] [INFO] [1719409958.285155678] [oak_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzrgbNode>
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/point_cloud_xyzrgb_node' in container 'oak_container'

and here is the yaml file params:

/oak:
  ros__parameters:
    camera:
      i_enable_imu: true
      i_enable_ir: false
      i_nn_type: none
      i_pipeline_type: RGBD
      i_usb_speed: SUPER_PLUS
    left:
      i_fps: 10.0
      i_resolution: 400P
    right:
      i_fps: 10.0
      i_resolution: 400P      
    stereo:
      i_subpixel: true
      i_height: 400
      i_width: 640      
      i_align_depth: true

and in depthai-veiwer i just was able to visualize the color image and imu data but there is no depth image

what should be the problem for not getting point cloud and depth image?

    Hi YousefElgouhary

    YousefElgouhary [stereo_inertial_node-2] [WARN] [1719404799.209315196] [DEPTHAI]: RGB Camera resolution is higher than the configured stereo resolution. Upscaling the stereo depth/disparity to match RGB camera resolution.

    [component_container-3] ...

    [rviz2-4] [INFO] [1719404799.431160091] [rviz2]: Stereo is NOT SUPPORTED

    [rviz2-4] ...

    [component_container-3] [WARN] [1719404799.502955753] [point_cloud_xyzrgb_node]: New subscription discovered on topic '/stereo/points', requesting incompatible QoS. No messages will be sent to it. Last incompatible policy: RELIABILITY_QOS_POLICY

    Looks like the error stems from here. cc @Luxonis-Adam

    Thanks,
    Jaka

    5 days later

    Hi, stereo_inertial_node is just an example and might not support different camera configurations. Although you should be able to get the pointcloud with rgbd_pcl.launch.py, could you check setting different fps for the camera? Additionally, you can try running export DEPTHAI_DEBUG=1 for more logs.

      Hi, Luxonis-Adam

      ros2 launch depthai_ros_driver rgbd_pcl.launch.py
      [INFO] [launch]: All log files can be found below /home/joe/.ros/log/2024-07-04-11-04-36-188808-joe-61285
      [INFO] [launch]: Default logging verbosity is set to INFO
      [INFO] [component_container-1]: process started with pid [61300]
      [component_container-1] [INFO] [1720083876.571352962] [oak_container]: Load Library: /opt/ros/humble/lib/librobot_state_publisher_node.so
      [component_container-1] [INFO] [1720083876.575842623] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<robot_state_publisher::RobotStatePublisher>
      [component_container-1] [INFO] [1720083876.575855307] [oak_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<robot_state_publisher::RobotStatePublisher>
      [component_container-1] [INFO] [1720083876.578587056] [oak_state_publisher]: got segment oak
      [component_container-1] [INFO] [1720083876.578603197] [oak_state_publisher]: got segment oak-d-base-frame
      [component_container-1] [INFO] [1720083876.578606607] [oak_state_publisher]: got segment oak_imu_frame
      [component_container-1] [INFO] [1720083876.578608898] [oak_state_publisher]: got segment oak_left_camera_frame
      [component_container-1] [INFO] [1720083876.578625023] [oak_state_publisher]: got segment oak_left_camera_optical_frame
      [component_container-1] [INFO] [1720083876.578627327] [oak_state_publisher]: got segment oak_model_origin
      [component_container-1] [INFO] [1720083876.578629630] [oak_state_publisher]: got segment oak_rgb_camera_frame
      [component_container-1] [INFO] [1720083876.578632005] [oak_state_publisher]: got segment oak_rgb_camera_optical_frame
      [component_container-1] [INFO] [1720083876.578634368] [oak_state_publisher]: got segment oak_right_camera_frame
      [component_container-1] [INFO] [1720083876.578636630] [oak_state_publisher]: got segment oak_right_camera_optical_frame
      [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/oak_state_publisher' in container 'oak_container'
      [component_container-1] [INFO] [1720083876.579449243] [oak_container]: Load Library: /home/joe/MESA_ws/install/depthai_ros_driver/lib/libdepthai_ros_driver.so
      [component_container-1] [INFO] [1720083876.617991941] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depthai_ros_driver::Camera>
      [component_container-1] [INFO] [1720083876.618044410] [oak_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<depthai_ros_driver::Camera>
      [component_container-1] [INFO] [1720083876.625090392] [oak]: No ip/mxid specified, connecting to the next available device.
      [component_container-1] [INFO] [1720083879.291023752] [oak]: Camera with MXID: 18443010B1E6631200 and Name: 1.1.4.1.2 connected!
      [component_container-1] [INFO] [1720083879.291801424] [oak]: USB SPEED: SUPER
      [component_container-1] [INFO] [1720083879.338290550] [oak]: Device type: OAK-D-S2
      [component_container-1] [INFO] [1720083879.340598011] [oak]: Pipeline type: RGBD
      [component_container-1] [INFO] [1720083880.083935808] [oak]: Finished setting up pipeline.
      [component_container-1] [INFO] [1720083881.000111127] [oak]: Camera ready!
      [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/oak' in container '/oak_container'
      [component_container-1] [INFO] [1720083881.001130699] [oak_container]: Load Library: /opt/ros/humble/lib/libdepth_image_proc.so
      [component_container-1] [INFO] [1720083881.005031074] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::ConvertMetricNode>
      [component_container-1] [INFO] [1720083881.005117003] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::CropForemostNode>
      [component_container-1] [INFO] [1720083881.005127185] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::DisparityNode>
      [component_container-1] [INFO] [1720083881.005135333] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzNode>
      [component_container-1] [INFO] [1720083881.005143446] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzRadialNode>
      [component_container-1] [INFO] [1720083881.005151836] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyziNode>
      [component_container-1] [INFO] [1720083881.005159566] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyziRadialNode>
      [component_container-1] [INFO] [1720083881.005167458] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzrgbNode>
      [component_container-1] [INFO] [1720083881.005175537] [oak_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzrgbNode>
      [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/point_cloud_xyzrgb_node' in container 'oak_container'

      And these are the parameter that i used

      /oak:
      ros__parameters:
      camera:
      i_nn_type: none
      stereo:
      i_subpixel: true
      rgb:
      i_resolution: 1080P
      i_fps: 15.0
      left:
      i_resolution: 400P
      i_fps: 15.0
      right:
      i_resolution: 400P
      i_fps: 15.0

      i got just rgb image and imu data but no point clouds and i've tried every thing the camera doesn't stream any points or depth image

      and with the depthai-viewer also i wasn't able to srteam points or depth image, i thought that it's power ptoblem but i ordered the recommended adapter from the website and still the same results

      and here is some error using depthai_debug

      [component_container-1] == FSYNC enabled for cam mask 0x0
      [component_container-1] CAM ID: 2, width: 640, height: 400, orientation: 0
      [component_container-1] CAM ID: 1, width: 640, height: 400, orientation: 0
      [component_container-1] CAM ID: 0, width: 1920, height: 1080, orientation: 0
      [component_container-1] getDefaultDtp: camType:2, color:1, orientation:0
      [component_container-1] DTP: ext_dtp_database
      [component_container-1] Loaded DTP, handle 0x8485ce38
      [component_container-1] getDefaultDtp: camType:5, color:0, orientation:0
      [component_container-1] DTP: ext_dtp_database
      [component_container-1] Found DTP, handle 0x8485ce38
      [component_container-1] Broadcast9282: Successfully registered camera TG161B (ov9282) as /dev/Camera_bcast0
      [component_container-1] getDefaultDtp: camType:5, color:0, orientation:0
      [component_container-1] DTP: ext_dtp_database
      [component_container-1] Found DTP, handle 0x8485ce38
      [component_container-1] == SW-SYNC: 1, cam mask 0x7
      [component_container-1] !!! Master Slave config is: single_master_slave !!!
      [component_container-1] Starting camera 0, server 0x8485ce38
      [component_container-1] [E] app_guzzi_command_callback():173: command->id:1
      [component_container-1] [E] app_guzzi_command_callback():193: command "1 0" sent
      [component_container-1]
      [component_container-1] [18443010B1E6631200] [1.1.4.1.2] [2.339] [system] [warning] PRINT:LeonMss: LRT - build pipeline call
      [component_container-1] [18443010B1E6631200] [1.1.4.1.2] [2.350] [system] [warning] PRINT:LeonCss: [E] iq_debug_create():161: iq_debug address 0x88806bc0
      [component_container-1] [E] hai_cm_driver_load_dtp():852: Features for camera A12N02A (imx378) are received
      [component_container-1] [E] set_dtp_ids():396: //VIV HAL: Undefined VCM DTP ID 0
      [component_container-1] [E] set_dtp_ids():405: //VIV HAL: Undefined NVM DTP ID 0
      [component_container-1] [E] set_dtp_ids():414: //VIV HAL: Undefined lights DTP ID 0
      [component_container-1] [E] camera_control_start():360: Camera_id = 0 started.
      [component_container-1]
      [component_container-1] [DEBUG] [1720084472.398872899] [rcl]: Finalizing service
      [component_container-1] [DEBUG] [1720084472.398934150] [rcl]: Service finalized
      [component_container-1] [18443010B1E6631200] [1.1.4.1.2] [1720084472.400] [host] [debug] Device about to be closed...
      [component_container-1] [18443010B1E6631200] [1.1.4.1.2] [1720084472.403] [host] [debug] Shutdown OK
      [component_container-1] [18443010B1E6631200] [1.1.4.1.2] [1720084472.446] [host] [debug] Watchdog thread exception caught: Couldn't write data to stream: '__watchdog' (X_LINK_ERROR)
      [component_container-1] [2024-07-04 11:14:32.561] [depthai] [debug] DataOutputQueue (stereo_stereo) closed
      [component_container-1] [18443010B1E6631200] [1.1.4.1.2] [1720084472.562] [host] [debug] Log thread exception caught: Couldn't read data from stream: '__log' (X_LINK_ERROR)
      [component_container-1] [2024-07-04 11:14:32.561] [depthai] [debug] DataOutputQueue (imu_imu) closed
      [component_container-1] [18443010B1E6631200] [1.1.4.1.2] [1720084472.562] [host] [debug] Timesync thread exception caught: Couldn't read data from stream: '__timesync' (X_LINK_ERROR)
      [component_container-1] [2024-07-04 11:14:32.562] [depthai] [debug] DataOutputQueue (rgb_isp) closed
      [component_container-1] [2024-07-04 11:14:32.562] [depthai] [debug] DataOutputQueue (sys_logger_queue) closed

      6 days later

      Hi @YousefElgouhary by no points you mean nothing is showing on pointcloud topic or it isn't showing in Rviz? If the latter, you might change topic QOS parameters in Rviz display