FTC-Skystone-Dark-Angels-Romania-2020
FTC SKYSTONE 赛季官方 SDK,集成 Vuforia 视觉导航与 TensorFlow
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
FTC SKYSTONE 赛季官方 SDK,集成 Vuforia 视觉导航与 TensorFlow
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:每年秋季,全球数万名中学生都会迎来一场特殊的挑战——他们在有限的时间里,用工程思维和编程技能,亲手造出一台能够完成特定任务的机器人。这不是科幻电影,而是 FIRST Tech Challenge(FTC) 竞赛的真实写照。而今天要介绍的这个项目,正是 FTC SKYSTONE(2019-2020)赛季中,一支罗马尼亚团队使用的官方软件开发工具包。
FTC Skystone Dark Angels Romania 2020 仓库,是罗马尼亚 Dark Angels 团队为参加 2019-2020 赛季 FTC SKYSTONE 挑战而整理的 FTC 官方 SDK 完整源码包。该 SDK 由 FIRST 组织官方维护,包含了驱动竞赛机器人所需的一切软件基础设施——从电机控制到传感器数据采集,从视觉导航到 TensorFlow 物体识别,全部包含在内。
FIRST Tech Challenge 是面向 7-12 年级中学生的机器人竞赛平台,与 FIRST LEGO League(FLL)和 FIRST Robotics Competition(FRC)共同构成 FIRST 体系的三驾马车。FTC 以其独特的 联盟对抗制 赛制著称:两支队伍组成联盟,在赛场上协作完成任务,同时还要对抗对方的联盟。这种赛制非常考验参赛者的工程设计能力、编程水平,以及临场应变和团队协作的综合素养。
每一年的 FTC 赛季都有一个独特的主题。2019-2020 赛季的主题叫 SKYSTONE——机器人需要在场地上识别、拾取并堆叠带有特殊标记的石块(Skystone)。这不仅考验机械结构的精准度,更需要计算机视觉的介入。
这个仓库本质上是一个完整的 Android Studio 项目,遵循标准 Gradle 多模块结构:
SDK 集成了 Vuforia 视觉定位系统,这是本项目的核心技术亮点之一。Vuforia 允许机器人在场地中通过识别特定的视觉目标(VuMark)来精确确定自身位置。在 SKYSTONE 赛季中,场地上散布的 Skystone 石块和目标位置都内置了 VuMark 标记,机器人可以借助摄像头实时获取相对于这些标记的精确位姿(位置+姿态)。
更令人惊喜的是,SDK 在 v5.2 版本中引入了 TensorFlow Lite 物体识别 支持。参赛队伍可以上传自定义的 .tflite 模型,让机器人自主识别石块的颜色、形状等特征。Blocks 可视化编程和 OnBot Java 在线编程环境都支持 TensorFlow 模型的调用,这意味着即便是没有深厚编程功底的初中生,也能通过拖拽积木的方式调用 AI 识别能力。
SDK 封装了一套完整的硬件抽象接口,开发者无需关心底层通信协议(USB/RS485),只需调用统一 API 即可操控:
此外,SDK 还提供了 Bulk Data Read(批量数据读取) 优化机制,可以显著减少 USB 通信次数,将 I2C 读取延迟降低 50% 以上,这对需要高频采集传感器数据的自动导航算法至关重要。
FTC SDK 提供了三条并行的编程路径,满足不同技术水平参赛者的需求:
| 组件 | 技术选型 | 说明 |
|---|---|---|
| 开发语言 | Java | 主力语言,也支持 Kotlin 插件 |
| 构建工具 | Gradle 3.5.3 | Android 标准构建系统 |
| 视觉定位 | Vuforia SDK | 集成在 libs/Vuforia.jar 中 |
| 物体识别 | TensorFlow Lite | 自定义 .tflite 模型支持 |
| 目标平台 | Android(minSdk=23) | 支持 Android 6.0 及以上设备 |
| 通信协议 | USB/FTDI、RS485 | REV Control Hub / Expansion Hub 通信 |
| 编程界面 | Blockly + OnBotJava + Android Studio | 三条并行路径 |
依赖库方面,libs 目录中的 .aar 文件均来自 FIRST 官方,其中 RobotCore-release.aar 体积最大(17.9 MB),是整个 SDK 的核心运行时。值得注意的是,Blocks-release-sources.jar 体积达 310 MB,包含了整个 Blockly 可视化编程界面的前端资源。
从仓库内容来看,Dark Angels Romania 团队使用了 FTC SDK 中提供的标准模块,并在 TeamCode 目录下编写了他们的竞赛策略代码。虽然仓库仅包含标准 SDK 而非团队自定义代码(这是 FTC 的常见做法:团队代码通常私有),但这个仓库本身提供了极好的 FTC SDK 学习参考资料。
从 GitHub 数据显示,该仓库目前拥有 289 颗星、87 个 Fork,说明有大量 FTC 参赛队伍和教练在参考这个仓库作为学习 FTC 编程的起点。它的 Star 数量在 FTC 相关仓库中相当可观,反映了 FTC 社区对 SKYSTONE 赛季 SDK 资料的持续需求。
实事求是地说,这个项目不适合追求「一键部署」的开发者。它本质上是一个 Android 应用项目,部署过程涉及:
整个配置过程通常需要 1-2 小时,对于没有 FTC 硬件环境的人来说,实际意义有限。但如果你或你的孩子正在参加 FTC 竞赛,这个 SDK 是必须掌握的核心工具。
FTC SKYSTONE 赛季(2019-2020)在 FTC 历史上具有里程碑意义。正是在这个赛季,FTC 官方正式引入了 TensorFlow 物体识别 支持,标志着 AI/ML 技术正式进入中学生机器人竞赛领域。这是一个标志性的转折点——从传统的规则驱动型任务,向数据驱动的感知决策型任务过渡。
同时,SDK 中的 Bulk Data Read 优化 和 REV Hub 固件更新机制 也为后来的 FTC SDK 奠定了架构基础。理解 SKYSTONE 赛季的代码,对理解此后所有 FTC 赛季的技术演进都有重要参考价值。
从数据来看,仓库规模高达 80 MB,其中超过 90% 来自 libs 目录下的预编译 .aar 库文件。仓库源码本身(不含二进制库)相对精简,体现了 FTC SDK 良好的模块化设计思路。
总结:这不是一个传统意义上的「AI 应用项目」,而是一个面向机器人竞赛的专业软件开发工具包。如果你在参与 FTC 竞赛,它是你绕不开的起点;如果你对中学生机器人教育感兴趣,它也是了解 FTC 技术体系的最佳入口之一。

图1:Dark Angels Romania 团队 GitHub 头像