标签 frc 下的文章


一条已经走了两年的路


2016 年 8 月,我作为一个新人入了 FRC(FIRST Robotics Competition)的坑。参加的第一个比赛是当年在上海举办的 CRC(China Robotics Challenge,FRC 季后赛)。入队的经历十分戏剧,真的是差点就和 FRC 擦肩而过了。不过幸好,我还是在这儿了。

在前些日子的 CRC 比赛时突然发现,FRC 这条路我已经走到了第三年了。从两年前连比赛规则都读不明白的菜鸡,到现在开始误人子弟传授经验的导师,时间过得好快啊。

我最早的一支队伍是金华的 6385,是浙江第一支 FRC 队伍。2016 年在上海 CRC 的时候,我们的临时队号是 9046。那时从奉贤到嘉定,看着我们的车从一个底盘变得小有功能(虽然本质上还是个底盘车),还是挺自豪的。就像大部分新队一样,我们那时候还不知道自动阶段得分这么有用。直到后来大佬来提醒我们,我才给机器做了个过线,顺便挑了个软柿子捏——有一个防御是直接往前冲就能过的。刚刚专门去找出了当年的 robot code 读,再对比现在的,当然已经不是一个级别的了。不过遗憾的是,因为一直都比较恐惧现实社会中的社交,所以这趟 CRC 并没有认识其他人。唯一值得庆幸的一点是,我记住了“FRC 可好玩儿了”,从此走上了 FRC 的不归路。

// 点开我,里面还有许多内容!


FRC 2018 @ Shanghai


虽然之前已经获得了去Houston Championship的门票,但毕竟交了钱,上海赛区还是得参加,顺便训练一下新的司机,因为深圳赛区的司机半年内都不能来给我们开车了。我们打了二十场左右的练习赛,看到我们的新司机能够从开得十分生疏开始慢慢上道还是十分开心的。

个人觉得上海的水队要比深圳多,因为我们10场资格赛中两三场是一打三(真可怕啊)。可能是我们脸太黑了。还有一场主裁判死都不去场地上确认我们的爬升过线了,非常难过。

因为有了深圳的基础,所以我在上海主要是以和小伙伴们玩儿、进一步调试机器人程序和逃课为目的的。队里在上海居然又水了一个奖小。

// 点开我,里面还有许多内容!


FRC 2018 @ Shenzhen


这是进入FRC系列赛事的第三年,时间过得真快啊,我对这个比赛的了解越来越深了,也越来越热爱这个比赛了。5453是我入坑后认识的第一个队伍,在2016年CRC上。我加入5453的时间并不长,2017年CRC的时候为自己浙江的6385没人比赛而流亡的时候,被5453收留。5453的队员们都超好的,人长得好看,说话也好听,做事情也很厉害。我也在5453获得了发展。

应该没有比5453更蛇皮的队伍了。因为当时lhr和我说我之前预计到达时间2月11日左右机器已经封箱了(然而其实并没有),我就没有买票去深圳。最后的结果就是5453的程序是八号早上练习赛前开箱后才刷进去的。

其实比赛前我们都是很虚的,我甚至还有种“白来了”的感觉。出的意外实在是太多,比如naiveX navX莫名变成XRS450,被拖车压坏的编码器,自动程序总是靠谱不起来。所以刚开始并不是装弱,而是真的弱。还好我们队各路神仙去女仆妈妈那里说话,至少获得了一个靠谱的司机,毕竟队里面没有人可以把车开得那么飘又那么稳了。

资格赛中有三场比赛对干1884,而且还是连着的,同联盟的队友也不算强。我们当时都以为凉凉了,最后居然只输了一场,当时激动的啊简直要上天了,我们叫“诛仙二比一成功”。加上一直在第一名到第三名之间徘徊的名次,我才慢慢觉得,我们其实也不能说没有实力啊。从我们第一次刷出全场最高开始,就占领着最高分,并且刷新了4次。

决赛那天的下午,一整个下午都非常慌,因为我们的联盟可能不算好,并且1797和1884在一个联盟里(后来他们在四强因为停机被打爆了)。作为技术员,在等候区观赛,我的手心都是汗,最后显示我们胜利的时候,我简直开心爆炸。去年看到4613带着1884抱走深圳赛区冠军的时候是十分不服的,这回总算是吐了一口气。

5453有我天天想怼的垃圾咸鱼,超喜欢的糙汉03,可爱的女仆,危险的lhr,以及一众超级棒的队员。和女仆边吵架(吵的都是自动策略)边写自动,爆炸的心态也表现在了代码和commit中。但是最后看到代码们works的心情还是超棒的。

Snipaste_2018-03-14_19-01-59.png

Snipaste_2018-03-14_19-03-53.png

5453是一个四年老队,我看有说“从5453也可以看出中国FRC的发展”的。可以说一直在努力,努力比赛,努力帮助新队伍,可是每年都距离冠军差了一点点(队史:那坑爹的SemiFinals)。今年终于有了冠军,可谓是付出的努力终于获得了回报,我们接下来是沉淀和发展了,所以我说“新的时代从3月10日开始。”

我也在决赛那天0点正式满了18周岁,也就是说我以后不能以队员的身份参赛了,以后就只能和咸鱼一起当mentor了。不过最后一年FRC获得了一面蓝旗子,去了世锦赛,简直棒。

对了,高考是啥,这个词有点儿耳熟啊……


刷写FRC的无线网桥


只要跟着本文走,刷写网桥不用愁。本教程可以在 Windows 7 及以上的任意语言的系统中使用。

0x01 下载最新的工具

每个赛季的 kickoff 之前或之后都会在官方文档中释出最新赛季的 FRC Radio Configuration Utility。运行这个软件需要 Java 环境,没装过 JRE(Java Runtime Environment) 的请自行下载。

官方刷写教程:http://wpilib.screenstepslive.com/s/currentCS/m/getting_started/l/144986-programming-your-radio

2019 年最新的 FRC Radio Configuration Utility: https://firstfrc.blob.core.windows.net/frc2019/Radio/FRC_Radio_Configuration_19_1_1.zip

2018 年的 FRC Radio Configuration Utility:https://firstfrc.blob.core.windows.net/frc2018/Radio/FRC_Radio_Configuration_18_1_0.zip

访问速度比较慢,你可能需要一个能流畅访问国际互联网的环境。国内也有人会搬运这些软件到百度云等地方。

0x02 安装

双击安装,一路回车,这个就不需要详细讲了吧。

0x03 调整参数

如果系统是 Windows 7 可以跳过这一步

右键点击桌面上的 FRC Radio Configuration Utility,属性,并调整兼容性设置为“Windows 7”。

compatibility setting

0x04 在非英语环境使用

2019 年开始,Radio Configuration Utility 修复了语言的 bug,所以这一步可以直接跳过了。

因为可以直接跳过了所以这里就折叠掉了。

如果系统本身就是英语,可以跳过

下载这个 FRC Radio Configuration Utility Language Fixer.zip,然后解压。

接着右键桌面图标,然后选择“打开文件位置”。将解压出来的 ipconfig.exe 复制进去就可以了。

copy patch.png

官方并不支持非英文系统的刷写,本只 Soha 在这方面花了很大力气。想对这个了解更多,请看另一篇博客:《在非英文Windows上使用FRC Radio Configuration Utility》

0x05 准备工作

先打开控制面板的“更改适配器设置”。怎么打开不赘述了,如有疑问可以找搜索引擎。

然后禁用所有除了通过网线连接无线网桥的网卡(比如 Wi-Fi 的网卡什么的)。

disable_useless_interfaces.png

0x06 RCU,启动!

双击桌面图标启动 FRC Radio Configuration Utility,并选择合适的网卡。

select_interface.png

0x07 刷写固件

点击那个大大的“Load Firmware”来刷写固件。

Radio successfully flashed

看到这个提示说明成功。

0x08 配置基本信息

填入队号(Team Number)和无线接入点密码(WPA Key),这是到时候通过 Wi-Fi 调试 Robot 的时候的必要连接信息。

input_basic_info.png

然后点击那个大大的“Configure”。

Bridge for Team 6385 successfully programmed

看到类似这个的提示,说明成功。

0x09 测试

打开电脑的 Wi-Fi 设置,如果可以成功通过之前设置的信息(本例中是 SSID=6385,Password=Hello,FRC!)连接到路由器,那么恭喜你,成功了。

0x0a 结束

本文赶制仓促,可能有不够清楚或者错误的地方,可以联系 [email protected] 提问。

0x0b 常见问题

Error finding NPF device name for adapter: * Try disabling all other adapters (using the Control Panel)

在步骤 0x07 中出现。很多队伍使用了 KOP 中的 USB 有线网卡来刷写,或者没有禁用别的网卡,会遇到这个问题。

建议使用板载有线网卡,并确认完成了上面的步骤 0x05

Timeout waiting for radio. Make sure you have launched the .exe not the .jar. Try using a switch.

在步骤 0x07 中出现。一般应该都是通过桌面快捷方式启动的,更大的可能原因是因为这台计算机的网卡不靠谱儿。

  1. 确认使用了桌面上的快捷方式启动 FRC Radio Configuration Utility。
  2. 在电脑和无线网桥使用一个一个交换机。(提示: 一个常见的无线路由器的四个LAN口可以作为一个交换机,注意这需要提前关闭无线路由器的 DHCP 服务。)
  3. 换台电脑。

Firmware too old.

在步骤 0x08 中出现。一般是因为没有进行步骤 0x07,现有的固件太老了。

参考步骤 0x07 进行一次“Load Firmware”。

Bridge sequence failed: Could not reconnect to bridge for validation

在步骤 0x08 中出现。如果确定你的所有操作都没毛病的话,那么请检查你的 Utility 的版本。

2018 年 07 月 30 日下午某队伍就因为是版本太老而无法配置。


在非英文Windows上使用FRC Radio Configuration Utility


刷写和配置路由器的固件一直是非英语为母语国家的FRC队伍心中的痛,因为非英语的Windows不能正常运行FRC Radio Configuration Utility。而且以前可以用ap51-flash刷写,今年却!不!行!又因为坑爹的Microsoft,只有一些比较高端的版本(比如专业版)才能随意更换Windows语言。为此大部分队伍还得专门重装一台英文的Windows的机子来刷路由。

而今天,终于不需要专门准备英文的Windows了。机智的soha倒腾出了一个在非英文Windows系统下使用FRC Radio Configuration Utility的方法。


下面的内容是最新操作。Version 2018-02-09 22:41

之前的方法比较繁琐,而且可能会引起很多不必要的麻烦(比如我已经解决了好几个因为下面那个方法刷完路由后没有还原设置导致的问题了)。加上在WPILib的官方Repo里我之前提的issue下面,有个墨西哥的dalao说这个方法在西班牙语的系统上不能起作用。经过我在法语Windows上的确认,的确在西欧语系下即使修改了非Unicode程序的设置,在命令行下照样会显示本身的系统语言。

wont_change_in_western_languages.png

作为一个强迫症,我又倒腾出了一个全新的、更简单的方法。

awesome.png

只需要下载这个FRC Radio Configuration Utility Language Fixer.zip,然后将其解压后的 ipconfig.exe 复制到FRC Radio Configuration Utility的安装文件夹(默认路径是 C:\Program Files\FRC Radio Configuration Utility 32位系统 或者 C:\Program Files (x86)\FRC Radio Configuration Utility 64位系统

然后就按照最正常的方式双击桌面上的图标,然后刷写路由就好了。不需要任何其他的操作。

下面简单提一下原理。

FRC Radio Configuration Utility 使用了 ipconfig /all 来获得所有可用于刷写固件和配置的网卡。然而如果你在非英语的Windows上执行这个命令,你会发现它出的结果往往是使用系统语言的。那么问题就出在这里:FRC Radio Configuration Utility 没法识别英语之外的内容啊!

所以我写的这段程序相当于复刻了一个英文版 ipconfig /all。 当然这个复刻版功能更简化了,因为只需要有名称和物理地址就可以了,所以我只输出了物理地址和名称,这样FRC Radio Configuration Utility就可以识别出所有网卡了。

而且更好的是,因为不像之前一样改locale,没有修改系统的默认代码页,所以不需要专门把网卡名称重命名为英文的了。中文的照样可以正常刷写。

compare_fixer_ipconfig.png

compare_fixer_ipconfig-fr.png

附上这个程序的GitHub repo地址:moesoha/frc-rcu-language-fixer

感谢6971的朋友帮忙对该程序进行了测试。


下面的方法因为比较繁琐已不再建议使用。Version 2017-08-19 12:52

(以Windows 10简体中文专业版为例)

首先保证你已经在网络设置里将接Radio的有线网卡的名称改成英文(为了后面选择网卡方便,图片只是举个例子)。

interfaces.png

然后打开设置-时间和语言-日期和时间-其他日期、时间和区域设置(Windows 10,较低的版本是控制面板-时钟、语言和区域),接着依次点开区域-管理-更改系统区域设置,在下拉框中选择英语(美国),随后重启系统。

find_non-unicode.png

重启完后,右击桌面上的FRC Radio Configuration Utility快捷方式更改属性,在兼容性选项卡下面选择兼容模式为Windows 7(如果本来就是Windows 7可以忽略)。

properties_for_RCU.png

应用保存后以管理员身份运行FRC Radio Configuration Utility就可以正常地选择网卡并且刷写啦!

RCU_result.png

刷完后别忘了把第一步中改的英语(美国)换回原来的中华人民共和国的设置,不然很多国产软件会出乱码!