FRC 最佳实践
赛事准备清单
- 将所有管道下载并备份到您的编程笔记本电脑上。
- 将最新的 Limelight 镜像下载到您的编程笔记本电脑上。
- 记录您的管道及其索引列表。
- 1 - 双目标低位
- 2 - 双目标高位货物
- 为连接到 LL 的所有电源和以太网线缆添加应力消除装置。
- 考虑对所有连接进行热熔胶固定。
- 确保在练习和比赛期间使用仪表盘(Smartdashboard、Shuffleboard)而不是网络浏览器来查看视频流。默认的网页控件在偶发断开连接后无法自动重新连接到视频流,但 SmartDashboard 和 Shuffleboard 默认都内置了自动重连功能。
- 在机器人上添加一个网络交换机,以便在赛事期间启用以太网连接,并避免使用第二个无线电端口。我们推荐使用 Brainboxes SW-005 5 端口交换机
- 使用带有绞线的 Cat6 线缆。不要使用扁平以太网线缆。
- 不要使用第二个无线电端口。如果可能,将所有设备通过网络交换机连接。
- 设置端口转发,以便在通过 USB 连接到机器人时启用 Limelight 通信。
- 转发端口 5800、5801、5802、5803、5804、5805、5806 和 5807
- Java
- C++
import edu.wpi.first.wpiutil.net.PortForwarder;
@Override
public void robotInit()
{
// 确保您只在机器人代码中配置一次端口转发。
// 不要将这些函数调用放在任何周期性函数中
for (int port = 5800; port <= 5809; port++) {
PortForwarder.add(port, "limelight.local", port);
}
}
现在 http://roborio-(teamnum)-FRC.local:5801 将转发到 limelight.local:5801
要添加第二个 limelight,请使用不同的本地端口集。注意第一个 PortForwarder.add() 参数中的 "+10":
for (int port = 5800; port <= 5809; port++) {
PortForwarder.add(port+10, "limelight-left.local", port);
}
现在 http://roborio-(teamnum)-FRC.local:5811 将转发到 limelight-left.local:5801
#include <wpi/PortForwarder.h>
void Robot::RobotInit
{
for (int port = 5800; port <= 5809; port++)
{
wpi::PortForwarder::GetInstance().Add(port, "limelight-left.local", port);
}
}
现在 http://roborio-(teamnum)-FRC.local:5801 将转发到 limelight.local:5801
要添加第二个 limelight,请使用不同的本地端口 集。注意第一个 PortForwarder::add() 参数中的 "+10":
for (int port = 5800; port <= 5809; port++)
{
wpi::PortForwarder::GetInstance().Add(port+10, "limelight.local", port);
}
现在 http://roborio-(teamnum)-FRC.local:5811 将转发到 limelight-left.local:5801
启用端口转发后,您可以在 http://roborio-(teamnum)-FRC.local:5801 访问 Limelight 的配置页面。例如,2928 队将使用 http://roborio-2928-FRC.local:5801
赛事期间校准
- 将机器人移动到场地上的每个目标处。
- 确保阈值处理正常工作。在此过程中切换到"阈值"视图(位于图像流下方)。
- 将机器人移动到靠近目标和远离目标的位置。确保十字准线校准正确。
- 在远离目标时,将机器人向左和向右旋转约 30 度,以确保不会错误地跟踪其他目标。
- 有关更多调整技巧,请参阅下面的调整部分。
- 确保没有其他场地/竞技场元素被意外跟踪。如果您捕捉到竞技场灯光,请检查面积和纵横比过滤器。
- 对所有目标和错误跟踪进行快照。您可以使用这些快照在维修区调整管道。
管道调整
- 使用尽可能低的曝光度,并增加黑电平偏移,直到从图像中去除场地灯光和 LED 反射。
- 在远离目标并与目标成一定角度时测试阈值处理。
- 使用 2019.7 版本的"智能斑点消除"功能来过滤掉不需要的 LED 反射。
连接到场地前
- 为您的笔记本电脑设置静态 IP 配置。
- IP:10.TE.AM.5
- 子网掩码:255.0.0.0
- 网关:10.TE.AM.1
- 为您的 RIO 设置静态 IP 配置。
- IP:"10.TE.AM.2"
- 子网掩码:255.255.255.0 ** - 注意此处的差异**
- 网关:10.TE.AM.1
- 为您的 Limelight 设置唯一的主机名(如果使用多个)。
- 为您的 Limelight 设置唯一的静态 IP 配置。
- 始终从".11"地址开始,然后向上增加。(10.9.87.11 等)
- 使用其他地址可能会导致您的设备在连接到 FMS 时出现故障。
- IP:"10.TE.AM.11"
- 子网掩码:255.255.255.0
- 网关:"10.TE.AM.1"
注意:队号中包含零的队伍需要特别注意:
- 916 队使用 10.9.16.xx,
- 9106 队使用 10.91.6.xx
- 9016 队使用 10.90.16.xx
更多信息:https://docs.wpilib.org/en/stable/docs/networking/networking-introduction/ip-configurations.html
比赛前检查清单
- 检查连接到 Limelight 的所有电源和以太网线缆。
- 检查所有电气连接是否松动和线缆是否磨损。
- 检查所有安装螺丝/扎带/胶带。
- 始终注意静电放电预防措施。
带宽
- 一些队伍在使用两个 Limelight 和两个 USB 摄像头的情况下,仍然远低于带宽限制。按照以下步骤减少带宽使用。
- 不要使用驾驶模式,而是创建一个"驾驶"管道。降低曝光度以减少流带宽。
- 使用 USB 摄像头?使用"stream" NT 键启用画中画模式。这将大大减少流带宽。
- 如果流不是驾驶的关键,请在设置页面将流速率设置为"低"。
- 使用 2019.7 版本引入的 160x120 流选项。
故障排除
- 尝试使用网络浏览器访问 IP:5800 的流。这应该能帮助您确定问题的根源。
- 重启仪表盘
- 重启计算机
- 如果场地已重置,请重启机器人
- 损坏的以太网线缆可能是间歇性网络问题的原因。
- 在场地上始终使用静态 IP 配置。