通知
本仓库包含用于SKYSTONE(2019-2020)赛季的公共FTC SDK。
此前该软件项目托管在此处。参加SKYSTONE挑战赛的队伍应使用这个新的SKYSTONE仓库,而不是旧的(且不再更新)ftc_app仓库。
欢迎!
此GitHub仓库包含用于构建Android应用以控制FIRST科技挑战赛竞赛机器人的源代码。要使用此SDK,请将整个项目下载/克隆到本地计算机。
开始使用
如果您是机器人技术新手或FIRST科技挑战赛新手,建议首先查看FTC Blocks教程,以熟悉如何使用控制系统:
FTC Blocks在线教程
即使您是高级Java程序员,从FTC Blocks教程开始也很有帮助,之后再迁移到OnBot Java工具或Android Studio。
下载项目
如果您是Android Studio程序员,有几种方法可以下载此仓库。请注意,如果您使用Blocks或OnBot Java工具编写机器人程序,则无需下载此仓库。
git clone https://github.com/FIRST-Tech-Challenge/SKYSTONE.git
下载并解压(如有必要)文件夹后,您可以使用Android Studio导入该文件夹(“Import project (Eclipse ADT, Gradle, etc.)”)。
获取帮助
用户文档和教程
FIRST维护着在线文档,包含关于如何使用FIRST科技挑战赛软件和机器人控制系统的信息及教程。您可以通过以下链接访问此文档:
SKYSTONE在线文档
请注意,在线文档是一份“常青”文档,会不断更新和编辑。它包含关于FIRST科技挑战赛软件和控制系统的最新信息。
Javadoc参考资料
FTC SDK的Javadoc参考文档现已在线提供。点击以下链接可查看作为实时网站的FTC SDK Javadoc文档:
FTC Javadoc文档
FTC SDK的文档也包含在此仓库中。有一个名为“doc”的子文件夹,其中包含几个子文件夹:
- 文件夹“apk”包含FTC驱动站和FTC机器人控制器应用的.apk文件。
- 文件夹“javadoc”包含FTC SDK的JavaDoc用户文档。
在线用户论坛
有关控制系统或FTC SDK的技术问题,请访问FTC技术论坛:
FTC技术论坛
版本信息
版本 5.2 (20190905-083227)
- 修复了设置活动中过宽的边距以及新配置按钮的位置问题
- 添加了Skystone Vuforia图像目标数据。
- 包含示例Skystone Vuforia导航操作模式(Java)。
- 包含示例Skystone Vuforia导航操作模式(Blocks)。
- 添加了用于Skystone游戏元素的TensorFlow推理模型(.tflite)。
- 包含示例Skystone TensorFlow操作模式(Java)。
- 包含示例Skystone TensorFlow操作模式(Blocks)。
- 移除了较旧的(特定赛季的)示例操作模式。
- 包含64位支持(以符合Google Play要求)。
- 在请求重启机器人时防止操作模式卡住。(感谢FROGbots-4634)(ftc_app issue #709)
- Blocks相关更改:
- 修复了当硬件设备名称为Java或JavaScript保留字时,blocks生成的代码中的错误。
- 即使活动配置中缺少硬件项目,也会显示blocks生成的Java代码。
- 当使用过时的Vuforia和TensorFlow blocks时,显示警告图标 (SkyStone issue #27)
版本信息
版本 5.1 (20190820-222104)
- 为以下电机定义了默认PIDF参数:
- REV Core Hex Motor
- REV 20:1 HD Hex Motor
- REV 40:1 HD Hex Motor
- 在无系统返回键的设备(如Control Hub)上运行时添加返回按钮
- 允许REV Control Hub通过USB更新REV Expansion Hub的固件
- 修复了SkyStone issue #9
- 修复了ftc_app issue #715
- 通过基于当前状态过滤,防止额外的DS用户点击。
- 防止在从RC接收新OpMode列表时出现错误的DS UI状态更改。
- 添加了对REV Color Sensor V3的支持
- 添加了用于远程查看RC摄像头帧的手动刷新DS摄像头流。
- 要在DS上显示流,初始化但不要运行支持流的操作模式,在DS菜单中选择摄像头流选项,然后点击图像刷新。使用Vuforia或TFOD时此功能自动启用——典型用例无需额外RC配置。要隐藏流,再次选择同一菜单项。
- 请注意,作为安全预防措施,当流打开时,游戏手柄被禁用,且无法启动所选操作模式。
- 要使用自定义流,请查阅
CameraStreamServer#setSource和CameraStreamSource的API文档。
- 向RobotController资源添加了许多星球大战音效。
- 添加了SKYSTONE音效选择器示例程序。
- 将启动、连接提示音以及错误/警告音切换为星球大战音效
- 更新OnBot Java以使用WebSocket与机器人通信
- 当用户从编辑一个文件切换到另一个文件时,OnBot Java页面不再需要完全刷新
已知问题:
- 摄像头流
- Vuforia摄像头流继承了手机预览中存在的问题(即ftc_app issue #574)。此问题不影响TFOD摄像头流,尽管它从Vuforia接收帧。
- 流帧的方向可能不总是与手机预览匹配。目前,如果需要,可以通过自定义
CameraStreamSource手动旋转这些帧。
- OnBotJava
- 浏览器返回按钮可能不总是正常工作
- 有可能构建已排队但未开始。如果发生这种情况,OnBot Java构建控制台将显示警告。
- 如果用户无意中从一个文件无缝切换到另一个文件,可能不会意识到正在编辑另一个文件。当前打开的文件名显示在浏览器标签中。
版本信息
版本 5.0 (构建于 19.06.14)
- 支持REV Robotics Control Hub。
- 在Blocks编辑器中添加了Java预览窗格。
- 在Blocks编辑器中添加了新的离线导出功能。
- 在驱动站的网络圈中显示Wi-Fi频道。
- 添加了对Logitech C270的校准
- 更新了构建工具和目标SDK。
- 符合Google的权限基础设施(构建工具更新后必需)。
- 保持活动以缓解摩托罗拉Wi-Fi扫描问题。不再需要遥测替代。
- 改进了Vuforia错误报告。
- 修复了ftctechnh/ftc_app问题621、713。
- 杂项错误修复和改进。
版本信息
版本 4.3 (构建于 18.10.31)
版本信息
版本 4.2 (构建于 18.10.30)
- 包含修复,避免WatchdogMonitor的死锁情况,该情况可能导致USB通信错误。
- 通信错误似乎要求用户断开USB电缆并重新启动Robot Controller应用才能恢复。
- robotControllerLog.txt中可能会出现包含“E RobotCore: lynx xmit lock: #### abandoning lock:”字样的错误消息。
- 包含修复,以正确列出配置(.xml)文件中REV Robotics Expansion Hub的父模块地址。
- 版本4.0和4.1中的错误会将父REV Robotics设备的地址模块错误地列为“1”。
- 如果父模块的地址值高于菊花链模块,则此错误会阻止Robot Controller与下游Expansion Hub通信。
- 添加了对ACCESS_COARSE_LOCATION的要求,以允许运行Android Oreo的驱动站扫描Wi-Fi Direct设备。
- 在build.gradle中添加了google()仓库,因为从Android Gradle Plugin 3.2版本开始,必须从google()仓库下载aapt2。
- 重要说明:Android Studio用户在首次构建ftc_app项目时需要连接到互联网。
- 首次构建时需要互联网连接,以便从Google仓库下载相应文件。
- 后续构建通常不需要用户连接互联网。
- 这还应修复构建问题,即Android Studio会抱怨“Could not find com.android.tools.lint:lint-gradle:26.1.4”(或类似)。
- 在REV Expansion Hub的伺服/PWM端口配置菜单中添加了对REV Spark Mini电机控制器的支持。
- 提供了在操作模式中播放音频文件的示例。
- Block开发工具更改
- 包含对Velocity blocks问题的修复,该问题在FTC技术论坛(Blocks编程子论坛)中被报告。
- 将“保存成功完成。”消息颜色改为白色,以便与绿色背景形成对比。
- 修复了“Download image”功能,使其在有文本块的op mode中也能正常工作。
- 引入对Google TensorFlow Lite技术的支持,用于2018-2019赛季的对象检测。
- TensorFlow Lite可以识别2018-2019赛季的金矿物和银矿物。
- 包含Java和Block操作模式示例,展示如何确定金块的相对位置(左、中、右)。
版本信息
版本 4.1 (发布于 18.09.24)
更改包括:
- 修复以防止使用已弃用的配置注释时崩溃。
- 更改以允许FTC Robot Controller APK使用FIRST Global Control Hub更新脚本自动更新。
- 移除了不再支持/非法的硬件示例。
- 改进了带有“text”插槽的Telemetry.addData block。
- 更新了Blocks示例操作模式列表,包含Rover Ruckus Vuforia示例。
- 更新了SDK库版本号。
版本信息
版本 4.0 (发布于 18.09.12)
更改包括:
-
初步支持UVC兼容摄像头
- 如果UVC摄像头具有唯一序列号,RC将按序列号检测并枚举。
- 如果UVC摄像头缺少唯一序列号,RC仅支持连接一个该类型的摄像头。
- 包含一些摄像头的校准设置(详情见TeamCode/src/main/res/xml/teamwebcamcalibrations.xml)。
- 用户可以通过Program and Manage网页界面上传校准文件。
- UVC摄像头似乎从USB总线消耗相当多的电流。
- 对于REV Robotics Control Hub似乎没有问题。
- 对于某些使用Android手机作为机器人控制器的摄像头,似乎会产生稳定性问题。
- FTC技术团队正在调查缓解基于手机的机器人控制器此问题的方案。
- 更新了示例Vuforia导航和VuMark操作模式,以演示如何使用内部手机摄像头和外部UVC网络摄像头。
-
改进了电机控制。
- REV Robotics Expansion Hub固件1.8及以上版本将支持闭环电机控制的前馈机制。
- FTC SDK已修改以支持PIDF系数(比例、积分、微分和前馈)。
- FTC Blocks开发工具已修改以包含PIDF编程块。
- 弃用了较旧的PID相关方法和变量。
- REV的1.8.x PIDF相关更改提供了更线性、更精确的电机控制方式。