Holoscan 传感器桥 v2.0.0

重要提示

接收器操作器,包括 RoceReceiverOp 和 LinuxReceiverOperator 规范包括

  • 始终返回最近接收的视频帧。此操作器永远不会返回比 1 帧时间更旧的视频帧。如果管道繁忙且无法接受传入的视频帧,则旧的帧数据将被新的帧数据替换。如果在接收另一个帧时发生帧请求,则此操作器将返回上次完成的视频帧。

  • 永远不会两次返回相同的视频帧。如果管道速度快于视频接收时间,则管道将阻塞,直到下一个传入帧完成。

  • PTP 时间戳由 HSB 在帧开始和帧结束条件时发送,可以通过查看接收到的元数据获得。当 PTP 配置正确时,这为确定处理或显示此数据的实际延迟提供了一种可靠的机制。请注意,PTP 仅支持 IGX 配置。

RoceReceiverOp 使用 RDMA,但存在特殊注意事项,这些注意事项可能会在未来版本中更改

  • 在管道使用视频缓冲区时,没有针对重写视频缓冲区的保护措施。当前的实现分配了足够的 GPU 内存来接收两个视频帧,并且发射器配置为在这两个缓冲区之间交替。视频管道通常首先将数据从接收器缓冲区复制到内存的另一个区域(通过 CsiToBayerOp)——这最大限度地减少了可能发生覆盖危险的时间——但调度这些操作取决于 CPU 的可用性。CudaCRCOp 可用于验证接收到的数据是否已损坏;只要它计算的值与接收器元数据中找到的值相同,那么您就证明了内存内容没有被更新。

对于 192.168.0.0/24 网络不可用的系统,您可以使用 hololink set-ip 命令来重新配置传感器桥 IP 地址。传感器桥设备根据 BOOTP 协议传输枚举消息;主机可以使用请求回复,将 IP 地址设置为特定值。Holoscan 传感器桥主机软件中的程序都接受 --hololink=<IP-address> 命令行参数,以查找具有给定 IP 地址而不是默认 192.168.0.2 的设备。

首先,使用 hololink enumerate 命令找到传感器桥端口连接到的 MAC ID 和本地接口。在演示容器内

复制
已复制!
            

$ hololink enumerate INFO:root:mac_id=48:B0:2D:EE:03:8E cpnx_version=0X2402 clnx_version=0XFFFF ip_address=192.168.0.2 serial_number=10040032828115 interface=eth0 INFO:root:mac_id=48:B0:2D:EE:03:8F cpnx_version=0X2402 clnx_version=0XFFFF ip_address=192.168.0.3 serial_number=10040032828115 interface=eth1 INFO:root:mac_id=48:B0:2D:EE:03:8E cpnx_version=0X2402 clnx_version=0XFFFF ip_address=192.168.0.2 serial_number=10040032828115 interface=eth0 INFO:root:mac_id=48:B0:2D:EE:03:8F cpnx_version=0X2402 clnx_version=0XFFFF ip_address=192.168.0.3 serial_number=10040032828115 interface=eth1

此配置有两个网络端口,MAC ID 48:B0:2D:EE:03:8E 连接到本地 eth0 设备;48:B0:2D:EE:03:8F 连接到 eth1。这些连接到同一个传感器桥设备,如通用序列号所示。请注意,本地系统将观察到这些消息,而与本地网络设备的 IP 地址无关。

对于我们的示例,我们将设置此配置

  • 主机 eth0 将配置为 192.168.200.101/24

  • 主机 eth1 将配置为 192.168.200.102/24

  • 传感器桥端口 48:B0:2D:EE:03:8E 将使用 IP 地址 192.168.200.2

  • 传感器桥端口 48:B0:2D:EE:03:8F 将使用 IP 地址 192.168.200.3

  • 显式路由添加到 eth0 到 192.168.200.2 和 eth1 到 192.168.200.3

首先,按照 设置说明 配置主机 IP 地址和路由以用于您期望的配置——将对 192.168.0.x 的引用替换为您期望使用的地址。然后,使用 hololink set-ip 命令重新配置传感器桥设备端口。要配置上面的目标 IP 地址示例,在演示容器中,

复制
已复制!
            

$ hololink set-ip 48:B0:2D:EE:03:8E 192.168.200.2 48:B0:2D:EE:03:8F 192.168.200.3 INFO:root:Running in daemon mode; run with '--one-time' to exit after configuration. INFO:root:Updating mac_id='48:B0:2D:EE:03:8E' from peer_ip='192.168.0.2' to new_peer_ip='192.168.200.2' INFO:root:Updating mac_id='48:B0:2D:EE:03:8F' from peer_ip='192.168.0.3' to new_peer_ip='192.168.200.3' INFO:root:Found mac_id='48:B0:2D:EE:03:8E' found using peer_ip='192.168.200.2' INFO:root:Found mac_id='48:B0:2D:EE:03:8F' found using peer_ip='192.168.200.3'

hololink set-ip 接受 MAC ID 和 IP 地址对的列表。由于传感器桥 IP 地址配置未存储在非易失性存储器中,hololink set-ip 作为守护程序运行,并且在需要此配置时必须运行。当 hololink set-ip 看到来自具有列出的 MAC ID 但 IP 地址不同的设备的枚举消息时,它将回复一个请求以设置所需的 IP 地址——这适应了电源循环或重置时 IP 地址的恢复。在此之后,ping 目标 IP 地址现在可以工作

复制
已复制!
            

$ ping 192.168.200.2 PING 192.168.200.2 (192.168.200.2) 56(84) bytes of data. 64 bytes from 192.168.200.2: icmp_seq=1 ttl=64 time=0.215 ms 64 bytes from 192.168.200.2: icmp_seq=2 ttl=64 time=0.352 ms 64 bytes from 192.168.200.2: icmp_seq=3 ttl=64 time=0.365 ms ^C ... $ ping 192.168.200.3 PING 192.168.200.3 (192.168.200.3) 56(84) bytes of data. 64 bytes from 192.168.200.3: icmp_seq=1 ttl=64 time=0.218 ms 64 bytes from 192.168.200.3: icmp_seq=2 ttl=64 time=0.323 ms 64 bytes from 192.168.200.3: icmp_seq=3 ttl=64 time=0.281 ms ^C

请注意,路由必须正确设置,ping 命令才能按预期工作。此处提供了有关传感器桥 IP 地址重新配置的更多具体信息

请使用以下电缆之一将传感器桥 SPF+ 连接到 IGX 开发套件 QSFP 端口

  1. 光纤电缆,带有 optick 到 SFP+SFP+ 到 QSFP 适配器

  2. 铜缆 SFP+ 到 SFP+,带有额外的 SFP+ 到 QSFP 适配器

请使用以下电缆将传感器桥 SFP+ 连接到 Jetson AGX Orin 开发套件 10G 以太网端口

  1. RJ45 以太网电缆,带有 RJ45 到 SFP+ 适配器

所有电缆和适配器均可在线购买 - 请注意,以上链接仅用于演示目的,不应被视为购买建议。

上一篇 故障排除
下一篇 发行说明
© 版权所有 2022-2024,NVIDIA。 上次更新于 2025 年 2 月 4 日。