• ROS
  • How to solve Arrived frame type is not either NV12 or YUV400p (8-bit Gray) error

Hi I'm using OAK-D Pro PoE with ROS2 Humble

When I ran the code “ros2 launch depthai_ros_driver camera.launch.py”, I saw that the hz of the topic was 2-5, so I modified the camera.yaml as below.

/**: ros__parameters: camera: i_enable_imu: true i_enable_ir: true i_nn_type: spatial i_pipeline_type: RGB nn: i_nn_config_path: depthai_ros_driver/yolo rgb: i_low_bandwidth: true left: i_low_bandwidth: true right: i_low_bandwidth: true stereo: i_low_bandwidth: true

And it worked

But, when i change i_pipeline_type to RGBD
Arrived frame type (14) is not either NV12 or YUV400p (8-bit Gray) error occured.

So, I tried to fix this error by add stereo: i_subpixel = false.
(Here is the reference luxonis/depthai-rosissues/529)

But it didn't work

Please Help me

    Hi shAhn
    Can you also add the pipeline graph to show the pipeline you are using?
    Is the error thrown by the VideoEncoder node?

    not sure what low_bandwidth option does to the stream cc @Luxonis-Adam

    Thanks,
    Jaka

    Hi, indeed there might be a bug on current humble branch, thanks for reporting. low_bandwidth_mode enables VideoEncoder node for a given output.

    Hi @Luxonis-Adam
    I found a topic on github related to this issue.
    luxonis/depthai-ros624
    So I update my repo but, I think VideoEncoder Error is not yet fixed.

    Is this issue fixed? Or should I wait a little longer?

    Hi, with these changes low bandwidth mode should work properly, just in case, did you source the workspace after rebuilding? Could you share logs, by running export DEPTHAI_DEBUG=1?

    1. Yes, I source the workspace after rebuilding

    2. Here is my Debug logs(camera_launch_log.txt)
      SeokHyunAhn/Hello-Worldblob/main/camera_launch_log.txt

    3. Here is my camera.yaml
      /**:

      ros__parameters:

      camera:

      i_enable_imu: true

      i_enable_ir: true

      i_mx_id: "1844301021D1C31200"

      i_nn_type: spatial

      i_pipeline_type: RGBD

      nn:

      i_nn_config_path: depthai_ros_driver/yolo

      rgb:

      i_low_bandwidth: true

      left:

      i_low_bandwidth: true

      right:

      i_low_bandwidth: true

      stereo:

      i_low_bandwidth: true

    Could you try setting stereo.i_subpixel: false? By default subpixel mode is enabled which doesn't work with low_bandwidth mode.

      Luxonis-Adam
      I changed it to stereo.i_subpixel: false, but the VideoEncoder error is still not resolved.
      Can I ignore this error and use the camera?

      8 days later

      Hi,

      For me the humble_low_bandwidth_stereo_fix branch is also not working, even with stereo.i_subpixel: false.
      Still getting Videoencoder warning and no stereo image is published.
      Is there any other way of getting to 30 fps with both rgb and stereo activated? Reducing resolution gets me only up like 12-15 fps.

      Camera: OAK-D-S2-POE
      Logs:

        Hi, according to those logs subpixel mode is still enabled, please verify you parameter file:
        [component_container-1] [DEBUG] [1732201773.550677784] [main]: Setting param stereo.i_subpixel with value 1

        Hi, retried it with the correct config but still same result.

        New log:

        My config:

        Hi, could you install DepthAI pipeline graph tool
        and run it with the driver (for example pipeline_graph run "ros2 launch depthai_ros_driver camera.launch.py") and provide the graph that you get?