Network Setup

The multisense sends a large amount of data over the network to its host. It is highly recommended that the multisense be on its own network with as few devices as possible between the multisense and the host. When possible, use a cable directly from the camera to a PCIe network device on the host. It is possible to use a USB3.0 to Ethernet adapter for connection, but not all devices support gigabit or large (greater than 1500) MTU values.

The multisense is a static IP device. This means the camera is assigned an IP address once, and it will always be available at that address regardless of which network it is connected to. The host system also needs to have a compatible static IP configuration to properly communicate with the sensor.

This contrasts other devices that have dynamic addresses. These dynamic address devices are automatically assigned an address from a DHCP server when connected to a compatible network.

Host Network Configuration

IP Address

To connect to a multisense camera, the host must have a compatible static IP address configuration. The default multisense IP address is 10.66.171.21. To connect to the multisense, the host system must have a netmask of /24 and an IP address of 10.66.171.XXX, where XXX is any number between 1 and 255 that is not 21.

For information about configuring your specific OS, please see the OS-Specific Network Configuration Section

Changing Camera IP address

To change the IP address of the camera, the LibMultiSense ChangeIpUtility may be used. Please see LibMultiSense for instructions on building and using the utilities. To change the IP address from default to a new address (192.168.37.21), run the following command

$ ChangeIpUtility -a 10.66.171.21 -A 192.168.37.21 -G 192.168.37.1

Note

These utilities are also available if multisense_ros has been installed. Please see the Running LibMultiSense Utils section for more information about running the utilities via ROS.

Unknown Camera IP address

To reset the IP address of a camera when the current IP address is unknown, the LibMultiSense ChangeIpUtility may be used. Please see LibMultiSense for instructions on building and using the utilities. The IP address recovery mechanism works by resetting the IP address of all MultiSenses on the current network. To reset the IP addresses of all cameras on a specific network device to default, run the following command, where <interface_name> is replaced with the desired interface name:

$ ChangeIpUtility -b <interface_name>

Once the command has been sent, power cycle all cameras on the network. All cameras will now have the IP address 10.66.171.21

Note

These utilities are also available if multisense_ros has been installed. Please see the Running LibMultiSense Utils section for more information about running the utilities via ROS.

MTU

When large pieces of data are sent from the camera to the host, they need to be broken into smaller pieces of information called packets. The size of these packets is controlled by the MTU setting (Maximum Transmission Unit). Both the camera and the host have independent MTU settings that need to be compatible with each other. The MTU setting on the camera determines the maximum packet size that data will be broken into when sending to the host. The host MTU is the maximum packet size that will be allowed to be received from devices on the network. It is critical that the host MTU is equal to or larger than the camera’s configured MTU.

A common symptom of an incompatible MTU setting is when it is possible to ping the camera, create a channel to the camera, and reconfigure the camera successfully, but the host never receives images from the camera. This is because connection and configuration messages are smaller than the MTU and do not need to be broken up, but image messages are larger than the configured MTU and get blocked by the host.

Small MTU values result in camera data being broken into more packets. The downside is that every packet contains a fixed length header, which results in more network overhead for an equivalent amount of sent data. For this reason, it is recommended that the MTU be set as large as possible for the network.

Usually, a value of 7200 MTU is recommended and will ensure you can utilize the full 1Gbps network bandwidth for image transmission, but the MultiSense will still work properly with a smaller 1500 MTU supported by nearly all network interfaces. A MTU of 1500 will limit your network bandwidth between the camera and the host machine to 700Mbps.

For information about configuring your specific OS, please see the OS-Specific Network Configuration Section

Note

If your application requires images to be streamed at the max frame rate for the configured resolution, it’s recommended you use a built-in PCIe network interface with a MTU between 7200 and 9000.

Note

Many USB-Ethernet adapters and embedded computers dont support MTU’s larger than 1500

Setting Camera MTU

To set the camera MTU in LibMultiSense, the setMtu() function of the channel object must be used. Please see the LibMultiSense Channel section for more information about using the channel object.

To set the camera MTU when using multisense_ros, the MTU parameter must be set when launching the camera. Please see the ROS1 Launching section for more information about setting the MTU

Network Details

Image Stream Network Bandwidth

  • A standard left, right, left rectified, right rectified, or cost image stream will consume consume width * height bytes of network bandwidth per image.

  • Disparity images consume width * height * 1.5 bytes of network bandwidth per image.

  • Chroma images consume width * height * 0.5 bytes of network bandwidth image. As a result, color images streamed from applications like the ROS1 or ROS2 drivers will consume width * height * 1.5 bytes of network bandwidth per image.

  • Compressed image streams vary in the network bandwidth they consume, but generally consume between 5% and 20% of their uncompressed counterparts.

Image Stream Network Transmission Time

  • Using a MTU of 1500 bytes, a single 8-bit 960x600 image takes about 5ms to be transmitted from the MultiSense to the host machine.

  • Using a MTU of 1500 bytes, a single 12-bit 960x600 disparity image takes about 8ms to be transmitted from the MultiSense to the host machine.

  • Using a MTU of 9000 bytes, a single 8-bit 960x600 image takes about 4ms to be transmitted from the MultiSense to the host machine.

  • Using a MTU of 9000 bytes, a single 12-bit 960x600 disparity image takes about 7ms to be transmitted from the MultiSense to the host machine.

These transmission times can be scaled based on the operating resolution, and linearly interpolated based on the configured MTU.

Note

Color images streamed from applications like the ROS1 or ROS2 drivers will have the same total network transmission time as a disparity image

Gigabit Networking Requirements

MultiSense cameras leverage a Gigabit network interface to transmit data between the camera and the host machine. As a result, all networking hardware between the MultiSense camera and the host machine must support networking speeds up to 1 gigabit per second (Gbps).

Multiple MultiSense Cameras on the Same Interface

To minimize latency the MultiSense transmits UDP frames as quickly as possible from the camera to the host machine. Standard Gigabit networking hardware is able to successfully buffer and process the large number of UDP packets transmitted from a single camera, but when multiple cameras are connected to the same network interface UDP packet drops may occur.

The recommended way to connect multiple cameras to a single network interface is to use a 10 Gbps network switch, and a 10 Gbps network interface adapter on the host machine. This will allow for up to 10 simultaneous full-bandwidth camera connections, and will minimize UDP packets drops between the cameras, switch, and host machine.

For applications where 10 Gbps networking hardware is unavailable, it is recommended you minimize the number of active streams from each MultiSense to consume no more than their ratio of the available airtime for the available frame rate, maximize the camera’s MTU, and minimize the streaming framerate. For example, if you had 3 MultiSense cameras connected to a 1 Gbps network switch each running at 10 FPS, you would have a 33ms network airtime budget for each MultiSense camera (see image stream transmission time for details on what topics can be streamed).

Even after minimizing the number of active image streams from each MultiSense, there may be buffering issues resulting from the network switch being unable to handle simultaneous reception of UDP packets from multiple cameras. This can mitigated by synchronizing each MultiSense’s image capture time using PTP, and configuring a network transmit delay for each MultiSense such that each MultiSense consumes their appropriate fraction of the network bandwidth. In the example where 3 MultiSense’s are connected to the same 1 Gbps switch and are all running at 10FPS, this would amount to transmit delays of 0ms, 33ms, and 66ms.

Note

The PTP + network transmit delay approach requires all cameras run with the same frames-per-second (FPS) setting. Additionally, the total network transmission time must not exceed the transmission time window configured by the network transmit delay

Debugging Network Issues