Argus Camera Segfault on Jetpack 6.2

Running multiple isaac_ros_argus_camera mono nodes with the IMX219 worked fine with Jetpack 6.0/6.1. On Jetpack 6.2, the segfault presents as below:

[ERROR] [component_container_mt-1]: process has died [pid 2310, exit code -11, cmd ‘/opt/ros/humble/lib/rclcpp_components/component_container_mt --ros-args --log-level info --ros-args -r __node:=argus_mono_container -r __ns:=/’]

Can run multiple gst pipelines from multiple IMX219s using the nvarguscamera plugin, however.

Any insight greatly appreciated.

2 Likes

Hi @Calvin-InDro

I forwarded your issue internally for a double check.

I keep you posted.

Raffaello

1 Like

I am also experiencing this exact issue. I added gdb to the launch file which provided the following log:


I am still working on trying to figure out the root cause but this might help.

Hi @Calvin-InDro

The new Jetpack 6.2 doesn’t introduce any changes on the camera stack and should also work on your Jetson.

Can you check if using the native argus app works fine?

Hi @infiniteechorobotics

Your crash occurs within nvidia::isaac::ArgusCamera::ArgusImpl::fillImuCalibrationData.

It is likely that this failure is related to the IMU calibration data being handled incorrectly. The driver for IMX219 returns this data when the Argus API requests it.

My IMX219 doesn’t have an IMU. I searched through the source code to find the fillImuCalibrationData but could not find it.

I am able to run the camera with this command:

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

As far as I can tell the issue has something to do with the ISAAC ROS nodes.

1 Like

@Raffaello Is there anyway to get the binaries of the ISAAC ROS 3.1 packages? I tried building it from source but kept receiving errors. I need to get this working for my capstone project so I am on a bit of a tight schedule.

I tried JP6.0 & JP6.1 but since I can only install the 3.2.4 binaries from apt, the issue with the camera is still present.

I figured out how to get the binaries. Run these commands after entering the isaac ros docker:

wget -qO - https://isaac.download.nvidia.com/isaac-ros/repos.key | sudo apt-key add -
grep -qxF "deb https://isaac.download.nvidia.com/isaac-ros/release-3 $(lsb_release -cs) legacy-release-3.1" /etc/apt/sources.list || \
echo "deb https://isaac.download.nvidia.com/isaac-ros/release-3 $(lsb_release -cs) legacy-release-3.1" | sudo tee -a /etc/apt/sources.list
sudo apt-get update

sudo apt install ros-humble-isaac-ros-argus-camera=3.1.0-0jammy \
ros-humble-gxf-isaac-argus=3.1.0-0jammy \
ros-humble-gxf-isaac-atlas=3.1.0-0jammy \
ros-humble-gxf-isaac-camera-utils=3.1.0-0jammy \
ros-humble-gxf-isaac-gxf-helpers=3.1.0-0jammy \
ros-humble-gxf-isaac-message-compositor=3.1.0-0jammy \
ros-humble-gxf-isaac-messages=3.1.0-0jammy \
ros-humble-gxf-isaac-rectify=3.1.0-0jammy \
ros-humble-gxf-isaac-sight=3.1.0-0jammy \
ros-humble-gxf-isaac-tensorops=3.1.0-0jammy \
ros-humble-gxf-isaac-timestamp-correlator=3.1.0-0jammy \
ros-humble-isaac-ros-gxf=3.1.0-0jammy \
ros-humble-isaac-ros-image-proc=3.1.0-0jammy \
ros-humble-isaac-ros-nitros=3.1.0-0jammy \
ros-humble-isaac-ros-nitros-camera-info-type=3.1.0-0jammy \
ros-humble-isaac-ros-nitros-image-type=3.1.0-0jammy \
ros-humble-isaac-ros-stereo-image-proc=3.1.0-0jammy \
ros-humble-gxf-isaac-gems=3.1.0-0jammy \
ros-humble-gxf-isaac-image-flip=3.1.0-0jammy \
ros-humble-gxf-isaac-optimizer=3.1.0-0jammy \
ros-humble-gxf-isaac-point-cloud=3.1.0-0jammy \
ros-humble-gxf-isaac-ros-messages=3.1.0-0jammy \
ros-humble-gxf-isaac-sgm=3.1.0-0jammy \
ros-humble-gxf-isaac-utils=3.1.0-0jammy \
ros-humble-isaac-ros-common=3.1.0-0jammy \
ros-humble-isaac-ros-managed-nitros=3.1.0-0jammy \
ros-humble-isaac-ros-nitros-disparity-image-type=3.1.0-0jammy \
ros-humble-isaac-ros-nitros-interfaces=3.1.0-0jammy \
ros-humble-isaac-ros-nitros-point-cloud-type=3.1.0-0jammy \
ros-humble-isaac-ros-nitros-tensor-list-type=3.1.0-0jammy \
ros-humble-isaac-ros-tensor-list-interfaces=3.1.0-0jammy \
libc6 libconsole-bridge1.0 libgcc-s1 libstdc++6 libweston-9-0

sudo ln -s /usr/lib/aarch64-linux-gnu/libweston-desktop-9.so.0 /usr/lib/aarch64-linux-gnu/libweston-desktop-6.so.0
sudo ln -s /usr/lib/aarch64-linux-gnu/libweston-9.so.0 /usr/lib/aarch64-linux-gnu/libweston-6.so.0
sudo ldconfig

You should then be able to do

ros2 launch isaac_ros_argus_camera isaac_ros_argus_camera_mono.launch.py

You might get warnings about frame drops but the camera works and can be viewed in rviz2 if opened from a separate terminal in the docker.

@Calvin-InDro Let me know if this works for your issue

Hi @infiniteechorobotics I forward your tests to the engineering and I will be be back when I’ve updates.

All documentation and sources are available on github.

Thanks for the suggestion. I omitted some important information. This behavior occurs with Isaac release-3.2 BUT I am using Isaac 3.1 currently and without issue. The reason for this thread is that I must upgrade to release-3.2 to gain newly released features. The system is very I/O limited, so it is imperative that release-3.2 of isaac_ros_argus_camera is able to interface with argus-compatible CSI cameras in order to upgrade in my case.

Hi @Calvin-InDro

I forwarded your issue internally to figure out if something is changed between the releases. I noticed also other user are facing the same or similar issues.

I will keep you posted,
Raffaello

1 Like

I am also experiencing the same issue running Argus Camera 3.2 with an IMX296 camera, which does not have an IMU. Reverting to ISAAC ROS 3.1 using the fix from @infiniteechorobotics works, but I would like to upgrade to ISAAC ROS 3.2 to use the new hardware timestamping feature.

1 Like