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
赛事期间校准
- 将机器人移动到场地上的每个目标前。
- 确保阈值处理正常工作。在此过程中切换到"threshold"视图(位于图像流下方)。
- 将机器人移动到靠近目标和远离目标的位置。确保准星校准正确。
- 在远离目标时,将机器人向左右旋转约30度,以确保不会错误跟踪其他目标。
- 参见下面的调优部分获取更多调优技巧。
- 确保没有其他场地/竞技场元素被意外跟踪。如果你捕捉到竞技场灯光,检查你的面积和长宽比过滤器。
- 对所有目标和错误跟踪进行快照。你可以使用这些在维修区调整管道。
管道调优
- 使用尽可能低的曝光度,并增加黑电平偏移直到去除场地灯光和LED反射。
- 在远离目标并成一定角度时测试阈值处理。
- 使用2019.7版本的"智能斑点消除"来过滤不需要的LED反射。