FTC SDK 4.2/4.3更新:内置AI矿石识别功能

android studio 教程 | 2018-11-05 06:30

FIRST官方于2018年10月30日和31日发布 SDK v4.2和v4.3版本。我们就 README 文本中的内容进行了翻译。为了加深读者的理解,促进队伍之间的交流,我们为部分内容加上了注释,同时也附上了我们的一些测试。

修复:避免看门狗在USB通讯故障时出现死锁状态。

(注:死锁指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。)

以往出现通讯故障需要用户断开USB线,并重启Robot Controller应用。

robotControllerLog.txt中会出现包含

“E RobotCore: lynx xmit lock: #### abandoning lock:”的错误信息。

修复:在配置文件中,能正确地在配置文件(.xml)中列出REV的主模块地址

在4.0和4.1版本中的漏洞,会将REV的主模块地址错误的显示为“1”。

如果主模块地址的地址值比子模块的更高,这个漏洞会导致Robot Controller和下属的REV断连。

添加了ACCESS_COARSE_LOCATION的权限请求以允许运行在安卓Oreo系统上的Driver Station扫描Wi-Fi直连设备并与另一台手机进行连接。

(注:以前在打开ftc_app项目首次build的时候可能会出现

“Error:java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details”的报错。这是没有下载aapt2导致的。以后如果你的Android Studio上没有aapt2,gradle就会自动下载。)

重要提示:Android Studio用户在第一次构建ftc_app项目时,必须连接网络。

在第一次构建时需要网络连接,这样能够在Google repository下载到可用的文件。

用户以后构建项目时不再需要连接网络。

同时也修复了Android Studio的构建故障,出现该问题时会显示 “Could not find com.android.tools.lint:lint-gradle:26.1.4” 或其他类似内容。

增加了支持REV Spark Mini motor controller作为REV上舵机和PWM端口的配置菜单的一部分。

提供了播放音频文件的示例程序。

Block开发工具中的更改

修复了在FTC官方论坛中提到的Velocity Blocks问题。

将“Save completed successfully”的信息更改为白色以便于在绿色背景下能够被清晰看到。

修复“下载图片”功能,使其在text block存在的情况下也可以在op mode中正常使用。

用全新的Google TenserFlow Lite来支持2018-2019赛季视觉识别任务。

(注:根据官方说明,TenserFlow Lite需要安卓6.0及以上版本的系统。实际测试中,安卓5.0的坚果手机和安卓4.4的华为G7在启动视觉识别时均提示“Sorry!This device is not compatible with TFOD ”。运行安卓8的小米6则成功运行。)

TensorFlow Lite能够识别2018-2019赛季的金矿石和银矿石。

已添加Java和Blocks的示例程序,包括演示如何确定金矿石的相对位置(在银矿石的左、中、右)

Includes fix to avoid deadlock situation with WatchdogMonitor which could result in USB communication errors.

·      Comm error appeared to require that user disconnect USB cable and restart the Robot Controller app to recover.

·      robotControllerLog.txt would have error messages that included the words "E RobotCore: lynx xmit lock: #### abandoning lock:"

Includes fix to correctly list the parent module address for a REV Robotics Expansion Hub in a configuration (.xml) file.

·      Bug in versions 4.0 and 4.1 would incorrect list the address module for a parent REV Robotics device as "1".

·      If the parent module had a higher address value than the daisy-chained module, then this bug would prevent the Robot Controller from communicating with the downstream Expansion Hub.

Added requirement for ACCESS_COARSE_LOCATION to allow a Driver Station running Android Oreo to scan for Wi-Fi Direct devices.

Added google() repo to build.gradle because aapt2 must be downloaded from the google() repository beginning with version 3.2 of the Android Gradle Plugin.

·      Important Note: Android Studio users will need to be connected to the Internet the first time build the ftc_app project.

·      Internet connectivity is required for the first build so the appropriate files can be downloaded from the Google repository.

·      Users should not need to be connected to the Internet for subsequent builds.

·      This should also fix build issue where Android Studio would complain that it "Could not find com.android.tools.lint:lint-gradle:26.1.4" (or similar).

Added support for REV Spark Mini motor controller as part of the configuration menu for a servo/PWM port on the REV Expansion Hub.

Provide examples for playing audio files in an Op Mode.

Block Development Tool Changes

·      Includes a fix for a problem with the Velocity blocks that were reported in the FTC Technology forum (Blocks Programming subforum).

·      Change the "Save completed successfully." message to a white color so it will contrast with a green background.

·      Fixed the "Download image" feature so it will work if there are text blocks in the op mode.

Introduce support for Google's TensorFlow Lite technology for object detetion for 2018-2019 game.

·      TensorFlow lite can recognize Gold Mineral and Silver Mineral from 2018-2019 game.

·      Example Java and Block op modes are included to show how to determine the relative position of the gold block (left, center, right).

特别提示

看到新的视觉识别功能,相信很多队伍已经迫不及待的要用示例 op mode(ConceptTensorFlowObjectDetection.java)开始测试了。但为了保证顺利运行,还要请大家注意两个问题。

1、机器人端手机的系统版本不能低于安卓6.0。

2、要在程序的VUFORIA_KEY变量中赋值你的Vuforia开发密钥。开发密钥可以从Vuforia官网免费申请。

3、要在手机的权限管理中赋予FTC的APP摄像头权限。以华为手机为例方法如下图。

此外,FTC SDK 4.3仅补充了4.2版中遗落的TensorFlow相关文件,没有实质性的功能更新。