Sending/Receiving SDK with ZED 2i

Hi everyone,

I’m working with a ZED 2i Stereo Camera that needs to be installed at location X, while the processing server(VVVV) will be located at location Y. The two locations are connected via network but it’s not possible to extend the USB.

My idea is to place a small Jetson device near the camera, connect the ZED 2i via USB, and then use the ZED SDK streaming (sender/receiver) functionality to transmit the data over the network to the remote server.

I’ll be doing some custom development, but most of the documentation I’m finding references ZED X, which makes me wonder whether the streaming workflow also supports USB cameras like the ZED 2i as a source.

Has anyone already implemented a similar setup or can confirm that ZED SDK streaming works with a ZED 2i over USB?

Thanks!

Hi @jdesmarais

This is indeed a working solution.
You can read more in the online documentation:

This is not correct. The ZED Local Streaming module works with all the camera models.

Hi, I am also working in a similar scenario. But issue is two devices can’t physically connect to a same network and has to go through some router. In that case i noticed that pose tracking is sometimes get broken (I am using 4.2.5- jetson nano can only be updted to that version). I tried to have my workstation on newer versions and use gen 3 tracking but i am getting
[Streaming] Metadata timeout. the size is equal to 16100 instead of 21960. Skipping. this error.

i want to knw whther streaming api is backword compatible nd will it be broken if i send the strem through a router?

Hi @piumalnipun9

No, the sender and the receiver must run the same ZED SDK major version. The streamed metadata format changed between ZED SDK v4 and v5, and that is exactly what the Metadata timeout. the size is equal to 16100 instead of 21960 error reports: the receiver expects the v5 metadata packet but gets the v4 one.

With a Jetson Nano limited to ZED SDK v4.2.5, you must also install ZED SDK v4.2.5 on the workstation. The GEN 3 positional tracking needs ZED SDK v5 on both sides.

A router is not a problem, as long as the UDP ports used by the RTP stream (30000 and 30001 by default) are routed and not blocked by a firewall or NAT: Streaming Protocol.

The broken tracking you notice is most likely caused by packet loss corrupting the frames. You can make the stream more robust with the StreamingParameters on the sender:

  • reduce chunk_size to about 1400 to keep each UDP datagram below the MTU and avoid IP fragmentation, which some routers and firewalls drop;
  • enable adaptative_bitrate and use a wired Gigabit connection when possible.