OAK POE系列产品上手指南

目录
今天来给大家介绍一下OAK POE系列产品的使用及注意事项。
OAK-POE简介
PoE 允许使用单根 Cat5e(或更高)以太网电缆为设备供电并为其提供高达 100 米(328 英尺)1000 Mbps (1Gbps) 全双工连接。
使用前的准备工作
- 您需要一台千兆POE交换机来为POE设备供电。最好是支持DHCP服务器,这样当你需要动态分配IP时,就不需要额外使用一根网线连接路由器了。

- 如果您为挑选一款好的POE交换机而感到烦恼。我们推荐使用POE POWER Supply,48V的POE供电模块。
POE电源48VPOE供电模块,千兆网络,48V供电,大于10W功率,给OAK的POE相机供电,同时是OAK相机的POE网络接口转换成普通网络接口。
只需要将它的两个网口分别连接主机和我们的OAK-POE设备,然后插到电源上即可。

例如下面这款:

- 如果您需要在户外使用,推荐使用车载直流供电。

- 安装依赖:
运行OAK-POE设备需要depthai库大于等于2.7.0.0版本。直接安装最新版本即可。
python3 -m pip install depthai
设置主机静态IP
如果你的POE交换机不支持DHCP服务器。你需要设置主机的静态IP,以保证主机和OAK设备在同一个局域网内。
所有POE设备出厂默认设置静态IP为169.254.1.222,子网掩码为255.255.0.0。所以我们需要将主机IP设置到与设备同一网段,子网掩码设为相同的。
例如将静态IP设置为169.254.1.10,子网掩码设置为255.255.0.0。请一定要设置正确的子网掩码!!!
可以使用以下命令设置:
Windows

Linux
sudo ifconfig eth0 169.254.1.10 netmask 255.255.0.0 up
设置防火墙
Linux系统上有一种情况即使分配好了IP地址,主机与OAK设备同属于一个网段。还是出现找不到设备的错误。这有可能是防火墙阻止的连接。
我们可以使用iptabels工具查看防火墙规则表:
iptables -L -n --line-numbers
如果看到reject-with icmp-port-unreachable规则,则很有可能是它阻止了连接。
我们可以删除此条规则:
sudo iptables -D <规则链名> <规则序号>
也可以直接清空所有规则:
sudo iptables -F
PS: 不用担心破坏了防火墙规则,此命令为当时生效重启即恢复原样。
WIndows系统上没有防火墙问题。
设置OAK-POE静态IP
首先我们需要主机能够先找到POE设备。然后通过代码刷写新的IP。
为设备设置IP的示例代码可以在此处找到。
查看设备Bootloader版本
查看代码地址
如果Version低于0.0.14,则需要更新Bootloader版本。

更新Bootloader版本
查看代码地址

由于我手中的设备已经是最新版本,所以没有任何更新信息。
设置静态IP
查看代码地址


可以看到上图中,运行depthai-demo.py程序,设备IP已经显示为192.168.1.201。
PS: 设备和主机依然要保存在同一网段,子网掩码相同。
设备设置静态IP需要注意的问题
在设备被设置了静态IP后,在通过路由器或支持DHCP服务器的POE交换机自动分配IP将失效。设备不再接收分配的IP,会出现找不到设备的情况。

清除配置
可以通过清除刚才的配置,相当于恢复出厂设置。

默认IP情况:

自动分配IP的情况:

设置动态IP
也可以手动设置动态IP。


PS: 无法同时设置静态IP和动态IP!
演示
与USB-C设备同样的方法使用。当你的程序尝试创建设备时,depthai库将搜索通过USB端口或 LAN连接的可用设备。
python depthai-demo.py -gt cv

OAK-PoE设备故障排查详解
在进行任何类型的故障排除之前,我们建议尝试使用最新版本depthai。
▌No DepthAI devices found!无可用设备
如果你遇到这个错误,意味着depthai在同一个网络上没有找到任何OAK PoE相机。请确定相机已打开并与电脑连接在同一个网络上。几个可能:
- 如果你正在使用DHCP服务器,可以在DHCP服务器仪表盘上查看logs/connected devices,查看相机是否已连接及其IP地址。
- 如果没有DHCP,相机将退回到静态IP(参见DHCP和静态IP)。
- 当你知道相机的IP并能ping通它时,参见我可以ping通OAK PoE相机,但无法连接到它。
▌我可以ping通OAK PoE相机,但无法连接到它
DepthAI库仅在同一局域网内搜索可用的OAK PoE相机,如果相机不在同一个局域网中,你需要手动指定设备IP。确保相机BootLoader版本0.0.18或更新(我们建议使用OAK设备管理器来检查一下)。
▌DHCP和静态IP
默认情况下,PoE设备会尝试从DHCP获取IP地址。如果网络上没有DHCP服务器,设备将退回到静态IP169.254.1.222。在这种静态后退的情况下,你的计算机需要在相同的范围内。这可以通过在你的计算机上设置静态IP来实现(例如,静态IP:169.254.1.10和子网掩码:255.255.0.0)。
▌端口和防火墙
UDP设备发现在端口上处理11491,TCP XLink连接在端口上处理11490。
在Ubuntu上,默认情况下防火墙是禁用的,所以你应该不会有任何问题。你可以通过执行以下命令来检查这一点:
> sudo ufw status
Status: inactive
如果你启用了防火墙,你可能需要允许这两个端口:
sudo ufw allow 11490/tcp
sudo ufw allow 11491/udp
我们已经注意到,上述规则并不总是像预期的那样工作,有时有必要运行下面的命令。对于生产环境,你可能希望设置静态IP否则它可能会改变,你需要重新设置防火墙规则。
ufw allow from [OAK_POE_IP]
▌VPN连接
VPN连接也可能会中断与PoE设备的连接(因为你的电脑可能只在远程网络中搜索该设备,所以无法在本地网络中发现它),因此我们建议在使用PoE设备时关闭VPN,或者确保你的本地路由设置为在VPN连接时本地设备可用。
▌通过2个接口(WiFi/以太网)连接到同一个局域网
我们已经看到,在一些罕见的情况下,当你的主机连接到同一个LAN时,设备会两次发现同一个PoE设备,因此它会打印该设备的IP地址两次。在一些罕见的情况下,这可能会导致初始化错误(我们在使用多个设备时见过这种情况);RuntimeError: Failed to find device after booting, error message: X_LINK_DEVICE_NOT_FOUND
。我们会尽快修复这个错误。变通解决方案,从其中一个接口断开连接,所以断开WiFi应该可以解决这个问题。
▌供电不足
如果你的PoE设备不工作,或者在极少数情况下,它工作一段时间后突然停止工作,则你的PoE交换机可能有问题。例如,当每个端口的功率预算似乎足够时,但是由于其它端口上的设备的需求,交换机的整体功率预算被超过。有必要检查你的PoE交换机的总体功率预算规格。
▌“特殊”网络设备
我们注意到,对于某些网络设备,我们的15秒连接超时到POE设备是不够的,并且需要增加。你可以通过使用环境变量(以毫秒为单位的值)来增加这些值。
- Linux/MacOS
DEPTHAI_WATCHDOG_INITIAL_DELAY=60000 DEPTHAI_BOOTUP_TIMEOUT=60000 python3 script.py
- Windows PowerShell
$env:DEPTHAI_WATCHDOG_INITIAL_DELAY=60000
$env:DEPTHAI_BOOTUP_TIMEOUT=60000
python3 script.py
- Windows CMD
set DEPTHAI_WATCHDOG_INITIAL_DELAY=60000
set DEPTHAI_BOOTUP_TIMEOUT=60000
python3 script.py
▌网络接口控制器设置
对于与OAK POE相机的通信,Linux上的一些默认NIC设置可能并不理想,这可能会导致FPS慢、高延迟或高OAK CPU占用率。你可以用ethtool配置这些设置。

在一种情况下配置sudo ethtool -C NAME rx-usecs 1022
(名字是enp 59s 0 f 1),FPS从12提高到20。