Owl camera shows bad image in Jetpack 6.2 with Jetson AGX Orin 64GB developer kit

Hello,

I need to use a LI-AR0234CS-GMSL2-OWL camera with my Jetson AGX Orin 64GB developer kit.
Here is what I have done, I only have this camera, and I don’t have the full list of sensors of Nova Orin Kit.

However, the image I obtained from the last step looks like below:

Here is output of ros2 launch isaac_ros_argus_camera isaac_ros_argus_camera_mono.launch.py:

admin@tegra-ubuntu:/workspaces/isaac_ros-dev$ ros2 launch isaac_ros_argus_camera isaac_ros_argus_camera_mono.launch.py
[INFO] [launch]: All log files can be found below /home/admin/.ros/log/2025-01-26-06-47-19-342174-tegra-ubuntu-1042682
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [component_container_mt-1]: process started with pid [1042708]
[component_container_mt-1] [INFO] [1737874039.726399763] [argus_mono_container]: Load Library: /opt/ros/humble/lib/libmono_node.so
[component_container_mt-1] [INFO] [1737874039.774187089] [argus_mono_container]: Found class: rclcpp_components::NodeFactoryTemplatenvidia::isaac_ros::argus::ArgusMonoNode
[component_container_mt-1] [INFO] [1737874039.774283441] [argus_mono_container]: Instantiate class: rclcpp_components::NodeFactoryTemplatenvidia::isaac_ros::argus::ArgusMonoNode
[component_container_mt-1] [INFO] [1737874039.786852913] [argus_mono]: [NitrosNode] Initializing NitrosNode
[component_container_mt-1] [INFO] [1737874039.787209553] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/std/libgxf_std.so
[component_container_mt-1] [INFO] [1737874039.788543473] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_gxf_helpers.so
[component_container_mt-1] [INFO] [1737874039.792878225] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_sight.so
[component_container_mt-1] [INFO] [1737874039.797532433] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_atlas.so
[component_container_mt-1] 2025-01-26 06:47:19.808 WARN gxf/std/program.cpp@538: No GXF scheduler specified.
[component_container_mt-1] [INFO] [1737874039.811345553] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/cuda/libgxf_cuda.so
[component_container_mt-1] [INFO] [1737874039.814546545] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_argus.so
[component_container_mt-1] 2025-01-26 06:47:19.824 WARN gxf/std/program.cpp@538: No GXF scheduler specified.
[component_container_mt-1] [INFO] [1737874039.825095024] [argus_mono]: [NitrosNode] Starting NitrosNode
[component_container_mt-1] [INFO] [1737874039.829777424] [argus_mono]: [NitrosNode] Loading extensions
[component_container_mt-1] [INFO] [1737874039.829887248] [argus_mono]: [NitrosContext] Loading extension: gxf/lib/multimedia/libgxf_multimedia.so
[component_container_mt-1] [INFO] [1737874039.832858160] [argus_mono]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_message_compositor.so
[component_container_mt-1] [INFO] [1737874039.833379984] [argus_mono]: [NitrosContext] Loading extension: gxf/lib/serialization/libgxf_serialization.so
[component_container_mt-1] [INFO] [1737874039.833917008] [argus_mono]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_messages.so
[component_container_mt-1] [INFO] [1737874039.842503312] [argus_mono]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_tensorops.so
[component_container_mt-1] [INFO] [1737874039.847043792] [argus_mono]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_rectify.so
[component_container_mt-1] [INFO] [1737874039.851249232] [argus_mono]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_timestamp_correlator.so
[component_container_mt-1] [INFO] [1737874039.859560752] [argus_mono]: [NitrosNode] Loading graph to the optimizer
[component_container_mt-1] [INFO] [1737874039.862672400] [argus_mono]: [NitrosNode] Running optimization
[component_container_mt-1] [INFO] [1737874039.899934543] [argus_mono]: [NitrosNode] Obtaining graph IO group info from the optimizer
[component_container_mt-1] [INFO] [1737874039.907017839] [argus_mono]: [NitrosNode] Starting negotiation…
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node ‘/argus_mono’ in container ‘/argus_mono_container’
[component_container_mt-1] [INFO] [1737874040.908383368] [argus_mono]: [NitrosNode] Starting post negotiation setup
[component_container_mt-1] [INFO] [1737874040.908493032] [argus_mono]: [NitrosNode] Getting data format negotiation results
[component_container_mt-1] [INFO] [1737874040.908521576] [argus_mono]: [NitrosPublisher] Negotiation ended with no results
[component_container_mt-1] [INFO] [1737874040.908538920] [argus_mono]: [NitrosPublisher] Use only the compatible publisher: topic_name=“/left/image_raw”, data_format=“nitros_image_rgb8”
[component_container_mt-1] [INFO] [1737874040.908551240] [argus_mono]: [NitrosPublisher] Negotiation ended with no results
[component_container_mt-1] [INFO] [1737874040.908560040] [argus_mono]: [NitrosPublisher] Use only the compatible publisher: topic_name=“/left/camera_info”, data_format=“nitros_camera_info”
[component_container_mt-1] [INFO] [1737874040.908837032] [argus_mono]: [NitrosNode] Exporting the final graph based on the negotiation results
[component_container_mt-1] [INFO] [1737874040.915260521] [argus_mono]: [NitrosNode] Wrote the final top level YAML graph to “/tmp/isaac_ros_nitros/graphs/UTYAPCJCKX/UTYAPCJCKX.yaml”
[component_container_mt-1] [INFO] [1737874040.915327113] [argus_mono]: [NitrosNode] Loading application
[component_container_mt-1] [INFO] [1737874040.918173353] [argus_mono]: [ArgusCameraNode] postLoadGraphCallback().
[component_container_mt-1] [INFO] [1737874040.918276841] [argus_mono]: [NitrosNode] Initializing and running GXF graph
[component_container_mt-1] [INFO] [1737874041.010614380] [argus_mono]: [NitrosNode] Node was started
[component_container_mt-1] 2025-01-26 06:47:21.851 WARN extensions/hawk/components/argus_camera.cpp@1731: Frame drop in module_id 0 camera_id 0
[component_container_mt-1] 2025-01-26 06:47:22.116 WARN extensions/hawk/components/argus_camera.cpp@1731: Frame drop in module_id 0 camera_id 0
[component_container_mt-1] 2025-01-26 06:47:22.214 WARN extensions/hawk/components/argus_camera.cpp@1731: Frame drop in module_id 0 camera_id 0
[component_container_mt-1] 2025-01-26 06:47:22.681 WARN extensions/hawk/components/argus_camera.cpp@1731: Frame drop in module_id 0 camera_id 0
[component_container_mt-1] 2025-01-26 06:47:23.048 WARN extensions/hawk/components/argus_camera.cpp@1731: Frame drop in module_id 0 camera_id 0
[component_container_mt-1] 2025-01-26 06:47:23.181 WARN extensions/hawk/components/argus_camera.cpp@1731: Frame drop in module_id 0 camera_id 0
[component_container_mt-1] 2025-01-26 06:47:23.513 WARN extensions/hawk/components/argus_camera.cpp@1731: Frame drop in module_id 0 camera_id 0
[component_container_mt-1] 2025-01-26 06:47:23.617 WARN extensions/hawk/components/argus_camera.cpp@1731: Frame drop in module_id 0 camera_id 0

I am unsure if the problem is due to some mistake or missing of my setup, or the camera itself is broken.

Best,

Same problem found by others here:

@jolin Hi, do you have any idea about this? or anyone else has any idea about this? Sorry to bother, but a lot of money has been spent on this camera kit, I hope it can work as soon as possible.

Hello,
have you tried to display the frames of the camera with libargus/gstreamer? e.g. by running

gst-launch-1.0 nvarguscamerasrc ! \
     'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, \
     format=(string)NV12, framerate=(fraction)30/1' ! nv3dsink

or

nvgstcapture-1.0

This would help to determine whether the camera driver or isaac_ros_argus_camera is the problem.

@patrick2 Thank you for your reply, I tried the first command both inside and outside of the container, but I go the same error as below:

~$ gst-launch-1.0 nvarguscamerasrc !
‘video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080,
format=(string)NV12, framerate=(fraction)30/1’ ! nv3dsink
Setting pipeline to PAUSED …
ERROR: from element /GstPipeline:pipeline0/GstNv3dSink:nv3dsink0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
…/libs/gst/base/gstbasesink.c(5878): gst_base_sink_change_state (): /GstPipeline:pipeline0/GstNv3dSink:nv3dsink0:
Failed to start
ERROR: pipeline doesn’t want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL …
Freeing pipeline …

Seems like nv3dsink can not display the camera stream. Do you have a Display connected to your jetson and the DISPLAY environment variable exported/passed to the container properly?

You should try to get the camera working on the host first and if this works fine, you can try docker.
If there is no display connected, you can try encoding, e.g.

gst-launch-1.0 nvarguscamerasrc ! \
     'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, \
     format=(string)NV12, framerate=(fraction)30/1' ! nvv4l2h264enc ! \
     bitrate=8000000 ! h264parse ! qtmux ! filesink \
     location=test.mp4 -e

@patrick2 Thank you for your suggestion, I tried the command on the host, and connected Jetson with a display, and the video looks the same as the image I posted above. So I think the problem is with the camera driver.

Hi @absorbraver

Could you test the argus_camera application after installing the Jetson Multimedia API? I also want to point out that the resolution for the ar0234 sensor is 1920x1200, whereas the nvgstcapture pipeline suggests a resolution of 1920x1080.

The reason for your issue may be located there.

Let me know.

Best,
Raffaello

@Raffaello Thank you for your suggestion, I think I already have Jetson Multimedia API installed, I don’t know how to check on Jetson, But both commands provided by @patrick2 worked on my Jetson, and the image output is the same, I also changed the resolution to 1920 by 1200, but the result is the same.

gst-launch-1.0 nvarguscamerasrc ! \
     'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1200, \
     format=(string)NV12, framerate=(fraction)30/1' ! nv3dsink

I also confirmed the installation of Jetson Multimedia API from the PC where I have SDKManager installed. The contents of Jetson Multimedia API exist there.

@Raffaello For your information, due to some reason, I reinstalled the whole system, but the video output is still the same as before.

Thanks for your tests, I forward your tests to the engineering.

Best,
Raffaello

hello absorbraver,

let’s narrow down the issue,
we may check with Applications Using V4L2 IOCTL Directly to fetch the camera frame without ISP,
for instance,
$ v4l2-ctl --set-fmt-video=width=1920,height=1200,pixelformat=RG10 --stream-mmap --stream-count=1 -d /dev/video0 --stream-to=test.raw
you may using 3rdparty utility, such as 7yuv to examine the capture raw file.

@JerryChang Thank you for your suggestion, but after i ran the command, it shows The pixelformat 'RG10' is invalid, therefore, the test.raw is also empty.

hello absorbraver,

you may running with $ v4l2-ctl -d /dev/video0 --list-formats-ext to check sensor supported format, and update the pipeline accordingly.

Thank you for your quick reply.
The output is like this:

ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'BA10' (10-bit Bayer GRGR/BGBG)
                Size: Discrete 1920x1200
                        Interval: Discrete 0.033s (30.000 fps)

Therefore, I changed RG10 to BA10 in the command as: v4l2-ctl --set-fmt-video=width=1920,height=1200,pixelformat=BA10 --stream-mmap --stream-count=1 -d /dev/video0 --stream-to=test.raw, but the recorded test.raw is still empty.

hello absorbraver,

is there an issue to access the camera stream?
please test with this v4l pipeline, it should report < for each capture frame, and report frame-rate for every second.
$ v4l2-ctl --set-fmt-video=width=1920,height=1200,pixelformat=BA10 --stream-mmap --stream-count=100 -d /dev/video0

Hi, JerryChang,

I tried your command, but nothing is printed in the terminal. No error, no frame rate.

Hi absorbraver,

It seems that camera can’t work properly somehow. Could you check the physical connection again? especially the power adaptor (12V@5A) is properly connected to the P3762_A03.

Best,
Ahung

I guess it is connected correctly.
with power adaptor connected, it shows half black and half flashing pixels, without power adaptor, it only shows black image.
But I can try to reconnect the whole board again.

I reconnected the P3762_A03 board, and rebooted Jetson, but all results are the same as before.

However, when I plugged in P3762_A03 to Jetsoan Orin, I did feel the connection was not stable. the red part cannot be inserted deeply, however, with the screw support (blue part), it helped stabilize the board.