I have been trying to get multi camera setup working in ROS2(Humble) and I have been having a lot of issues.
The first problem is that everytime I launch the cameras for the first time after starting the computer the node dies almost immediately. I don’t understand what is causing this failure, but there is a lot of errors/warnings saying that they failed to load different image_transport plugins. I have tried installing the various plugins both as system packages and building from source (after removing them system wide) neither has proven to help at all. Attached is a log over everything that is dumped to terminal when launching for the first time.
Now when I try to launch a second time the cameras do appear to open, but I still a lot of these image_transport plugin warnings/errors. I don’t know if the following behavior is a result of that or I have multiple issues going on. The topics which get published appear to be pretty random. Sometimes I will get everything, sometimes only one or two cameras appear to work, sometimes I will get a mix of topics from each, but not everything.
To launch the cameras I have used the multi-camera example from ros2-examples and modified it to open them from network streams rather than serial numbers. I have attached the launch file as well.
For what it is worth both the streaming and receiving computers have just been updated to SDK5.1, though this issue was present before that. Streamer is Jetson Orin AGX on JP6.0 and receiver is x64 Ubuntu 22.
Also running ros2 run image_transports list_transports shows:
ros2 run image_transport list_transportsts
Declared transports:
image_transport/compressed
image_transport/compressedDepth
image_transport/ffmpeg
image_transport/foxglove
image_transport/raw
image_transport/theoraDetails:
“image_transport/compressed”
Provided by package: compressed_image_transport
Publisher:
This plugin publishes a CompressedImage using either JPEG or PNG compression.Subscriber:
This plugin decompresses a CompressedImage topic.
“image_transport/compressedDepth”
Provided by package: compressed_depth_image_transport
Publisher:
This plugin publishes a compressed depth images using PNG compression.Subscriber:
This plugin decodes a compressed depth images.
“image_transport/ffmpeg”
Provided by package: ffmpeg_image_transport
Publisher:
This plugin encodes frames into ffmpeg compressed packetsSubscriber:
This plugin decodes frames from ffmpeg compressed packets
“image_transport/foxglove”
Provided by package: foxglove_compressed_video_transport
Publisher:
This plugin encodes frames into foxglove compressed video packetsSubscriber:
This plugin decodes frames from foxglove compressed video packets
“image_transport/raw”
Provided by package: image_transport
Publisher:
This is the default publisher. It publishes the Image as-is on the base topic.Subscriber:
This is the default pass-through subscriber for topics of type sensor_msgs/Image.
“image_transport/theora”
Provided by package: theora_image_transport
Publisher:
This plugin publishes a video packet stream encoded using Theora.Subscriber:
This plugin decodes a video packet stream encoded using Theora.
So it does seem they are recognized. Is there something I am doing wrong? Are these issues related or are the other things I should be looking at?
Thank You!
zed_multi_camera.launch.py (9.0 KB)
first_launch.txt (150.8 KB)