注意
该存储库包含 INTO THE DEEP (2024-2025) 赛季的公共 FTC SDK。
欢迎!
此 GitHub 存储库包含用于构建 Android 应用程序以控制FIRST Tech Challenge 竞赛机器人的源代码。要使用此 SDK,请将整个项目下载/克隆到本地计算机。
要求
要使用此 Android Studio 项目,您需要 Android Studio 2021.2(代号 Chipmunk)或更高版本。
要使用 Blocks 或 OnBot Java 对机器人进行编程,您不需要 Android Studio。
入门
如果您是机器人技术新手或FIRST技术挑战赛新手,那么您应该考虑查看 FTC Blocks 教程以熟悉如何使用控制系统:
FTC 区块在线教程
即使您是高级 Java 程序员,从 FTC Blocks 教程开始,然后迁移到 OnBot Java Tool 或 Android Studio 也会很有帮助。
下载项目
如果您是 Android Studio 程序员,可以通过多种方式下载此存储库。请注意,如果您使用 Blocks 或 OnBot Java Tool 来对机器人进行编程,则无需下载此存储库。
- 如果您是 git 用户,您可以克隆存储库的最新版本:
git 克隆 https://github.com/FIRST-Tech-Challenge/FtcRobotController.git
下载并解压缩(如果需要)文件夹后,您可以使用 Android Studio 导入该文件夹(“导入项目(Eclipse ADT、Gradle 等)”)。
寻求帮助
用户文档和教程
FIRST维护在线文档,其中包含有关如何使用FIRST Tech Challenge 软件和机器人控制系统的信息和教程。您可以使用以下链接访问此文档:
FIRST 技术挑战赛文档
请注意,在线文档是一个“常青”文档,会不断更新和编辑。它包含有关FIRST Tech Challenge 软件和控制系统的最新信息。
Javadoc 参考资料
FTC SDK 的 Javadoc 参考文档现已在线提供。单击以下链接以实时网站形式查看 FTC SDK Javadoc 文档:
FTC Javadoc 文档
在线用户论坛
有关控制系统或 FTC SDK 的技术问题,请访问 FIRST 技术挑战社区网站:
FIRST 技术挑战社区
操作模式示例
该项目包含大量可供选择的示例 OpMode(机器人代码示例),可以将其剪切并粘贴到您的 /teamcode 文件夹中以按原样使用,或进行修改以满足您团队的需求。
示例文件夹:/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples
位于 /TeamCode/src/main/java/org/firstinspires/ftc/teamcode 文件夹中的 readme.md 文件包含示例命名约定的说明,以及如何将它们复制到您自己的项目空间的说明。
发布信息
版本10.1(20240919-122750)
增强功能
- 添加新的基于 OpenCV 的
VisionProcessor
(可以附加到 Java 或 Blocks 中的 VisionPortal),以帮助团队在 INTO THE DEEP 游戏中通过计算机视觉实现颜色处理ColorBlobLocatorProcessor
实现 OpenCV 颜色“斑点”检测。新的示例程序ConceptVisionColorLocator
演示了其用途。- 可以在预定义的颜色范围之间进行选择,也可以在 RGB、HSV 或 YCrCb 颜色空间中创建自定义颜色范围
- 能够将检测限制在屏幕上指定的感兴趣区域
- 提供了将侵蚀/膨胀变形应用于阈值掩模的功能
- 提供对返回数据进行排序和过滤的功能
PredominantColorProcessor
允许使用相机的某个区域作为“长距离颜色传感器”来确定该区域的主要颜色。新的示例程序ConceptVisionColorSensor
演示了其用途。- 确定的主色是从一组离散的颜色“样本”中选择的,类似于 MINDSTORMS NXT 颜色传感器
- 有关此颜色处理功能的文档可以在此处找到:https://ftc-docs.firstinspires.org/color-processing
- 添加了颜色传感器的块示例程序:RobotAutoDriveToLine 和 SensorColor。
- 更新了自检,将不匹配的 RC/DS 软件版本识别为“警告”而不是“故障”。
错误修复
版本10.0 (20240828-111152)
重大变化
- 用于 TensorFlow 对象检测的 Java 类和块已被删除。
-
AngleUnit
类型的AngularVelocity.unit
已重命名为UnnormalizedAngleUnit
类型的AngularVelocity.angleUnit
增强功能
- 添加了 REV 数字指示器示例 - ConceptRevLED
- 添加了对 Sparkfun QWIIC LED 棒的支持
- 添加 ConceptLEDStick OpMode
- 添加黑色、蓝色、青色、dkgray、灰色、绿色、ltgray、洋红色、红色、白色和黄色块。
- 添加一个“评估但忽略结果”块,该块执行连接的块并忽略结果。允许您调用函数并忽略返回值。
- 为 Maxbotix Maxsonar I2CXL 声纳测距仪添加 I2C 驱动程序
- 为伺服系统和 CR 伺服系统添加 setPwmEnable、setPwmDisable 和 isPwmEnabled 块。
- 在块编辑器中:ExportToBlocks 注释注释字段中的 n 显示为换行符。
- 遥测有新方法 setNumDecimalPlaces
- 遥测现在格式化双精度和浮点数(不是在对象内部,只是它们本身)
- 添加对 Limelight 3A 的支持。
- 添加对 REV 伺服中心的初始支持
- 机器人控制器和驱动站都需要更新到版本 10.0,以便将伺服集线器配置为伺服集线器。如果任一设备上的应用程序已过时,伺服集线器将显示为扩展集线器,并且某些功能将无法按预期工作。您应该等到驱动站和机器人控制器应用程序都更新到版本 10.0 后才能创建包含伺服集线器的配置。
- 目前只能使用 REV 硬件客户端来更新 Servo Hub 的固件并更改其地址
- 添加对 REV 9 轴 IMU (REV-31-3332) 的支持
- REV 9 轴 IMU 仅受通用 IMU 接口支持
- 添加
Rev9AxisImuOrientationOnRobot
Java 类。 - 如果您有意将此 IMU 的 I2C 端口替换为 Control Hub 的 USB 端口,则
RevHubOrientationOnRobot
也与该传感器兼容 - 为 Rev9AxisImuOrientationOnRobot 添加块,包括 RevHubImuOrientationOnRobot.xyzOrientation 和 RevHubImuOrientationOnRobot.zyxOrientation。
- 添加块示例 SensorRev9AxisIMUOrthogonal 和 SensorRev9AxisIMUNonOrthogonal。
- 改进了对 RevHubImuOrientationOnRobot 的块支持。
- 添加 RevHubImuOrientationOnRobot.xyzOrientation 和 RevHubImuOrientationOnRobot.zyxOrientation 的块。
- 添加块示例 SensorHubIMUOrthogonal(替换 SensorIMU)和 SensorHubIMUonOrthogonal。
- 更新 EasyOpenCV、AprilTag、OpenCV 和
libjpeg-turbo
版本 - 添加带有两个数字的最大值和最小值的块。
- 添加块 OpModes ConceptRevSPARKMini、RobotAutoDriveByEncoder、RobotAutoDriveByGyro、RobotAutoDriveByTime、RobotAutoDriveToAprilTagOmni 和 RobotAutoDriveToAprilTagTank。
- 现在,两个具有相同名称的 OpMode 会自动重命名,名称后跟“-”和类名称,允许它们都位于设备上。
- 在机器人控制器控制台的管理页面上显示活动配置的名称
- 更新了 INTO THE DEEP 的 AprilTag 库。值得注意的是,
getCurrentGameTagLibrary()
现在返回 INTO THE DEEP 标签。 - 添加 Telemetry.setMsTransmissionInterval 和 Telemetry.getMsTransmissionInterval 的块。
- 添加块示例 SensorOctoQuad。
错误修复
- 修复了 RevBlinkinLedDriver 块位于块编辑器工具箱中的执行器下方的错误。它们现在是其他设备。
- 修复了驾驶员站请求停止后在用户代码中抛出的
Exception
将被默默地吃掉的错误 - 修复了一个错误:如果您请求的
AngularVelocity
单位与设备报告的单位不同,它会在 -PI 和 PI(弧度)以及 -180 和 180(度数)之间标准化。
版本9.2(20240701-085519)
重要提示
- 用于 TensorFlow 对象检测的 Java 类和块已被弃用,并将在版本 10.0 中删除。
- 使用 TensorFlow 对象检测的示例已被删除。
增强功能
- 为检查活动中的失败项目添加解释性文本。要查看说明文本,请点击失败项目的红色警告图标。
- 在块编辑器中:添加了一种新的变量设置块,用于设置变量并返回新值。
- 更改 SwitchableCamera 的相机控制行为方式。现在,每个方法(例如 ExposureControl 的 getExposure、getMinExposure、getMaxExposure、setExposure)都会作用于当前活动的相机。
- 添加了对 REV USB PS4 兼容游戏手柄的支持 (REV-31-2983)
- 添加 ConceptAprilTagMultiPortal OpMode
- 添加了对 OctoQuad 正交编码器和脉冲宽度接口模块的支持
- 添加 ExportAprilTagLibraryToBlocks 注释,指示将返回 AprilTagLibrary 的静态方法导出到 Blocks 编程环境。相应的块将与内置标签库一起出现在块工具箱中。
- 添加块 OpMode ConceptAprilTagOptimizeExposure。
- 添加了对 SparkFun 光学跟踪里程计传感器的支持。
错误修复
- 修复了 #942,其中 VisionPortal.close() 可能导致 IndexOutOfBoundsError。
- 修复了块编辑器中折叠的功能块显示警告“折叠的块包含警告”的错误。当 Blocks OpMode 重新打开时。
- 修复了当您尝试离开时块编辑器不会警告您有未保存的更改的错误。此错误是由于 Chrome 119 中的行为更改而引入的。
- 问题 #764 - 获取增益控制返回可切换相机的空指针
- 修复了启用高级游戏手柄功能时未应用某些游戏手柄的正确死区的错误
版本9.1(20240215-115542)
增强功能
- 修复了块的问题:如果用户关闭块的警告气球,下次在块编辑器中打开项目时它仍然会关闭。
- 在块编辑器中,如果禁用所有使用缺失硬件设备的块,则不会显示有关缺失硬件设备的警报。
- 添加块以支持将属性值 CRServo.Direction、DCMotor.Direction、DCMotor.Mode、DCMotor.ZeroPowerBehavior、DigitalChannel.Mode、GyroSensor.HeadingMode、IrSeekerSensor.Mode 和 Servo.Direction 与相应的枚举块进行比较。
- 改进了 OnBotJava 自动导入,以便在某些情况下使用时正确导入类。
- 改进了 OnBotJava 自动完成功能,以在大多数情况下提供更好的完成选项。
- 这解决了如果定义了具有两个或多个形式参数的方法,自动完成将失败的问题。
- 在 OnBotJava 中,添加了代码折叠支持以展开和折叠代码部分
- 在 OnBotJava 中,版权标头现在会在加载新文件时自动折叠
- 对于所有 Blocks OpMode 示例,介绍性注释已移至 RunOpMode 注释气球中。
- 块编辑器中的清理块命令现在可以定位功能块,以便它们的注释气球不会与其他功能块重叠。
- 添加了块 OpMode 示例 SensorTouch。
- 添加了 Java OpMode 示例 SensorDigitalTouch。
- VisionPortal 的多项改进
- 添加选项以控制在 VisionPortal Builder 上调用
.build()
后是否自动启动流 - 添加选项来控制是否渲染视觉处理统计数据叠加
- VisionPortals 现在实现了
CameraStreamSource
接口,允许多门户用户通过调用 CameraStreamServer.getInstance().setSource(visionPortal) 选择将哪个门户路由到 INIT 中的 DS。可以通过游戏手柄在 Camera Stream 会话之间进行选择。 - 向
AprilTagProcessor
添加选项以抑制校准警告 - 改进相机校准警告
- 如果校准已缩放,则会列出缩放的分辨率
- 如果校准存在错误的宽高比,将列出校准的分辨率
- 修复了在 VisionPortal 上调用
stopStreaming()
后立即调用close()
时导致应用程序崩溃的竞争条件 - 修复了构建 VisionPortal 后立即调用
stopStreaming()
时出现的 IllegalStateException - 在新的 Java 方法中添加了 FTC 块对应项:
- VisionPortal.Builder.setAutoStartStreamOnBuild
- VisionPortal.Builder.setShowStatsOverlay
- AprilTagProcessor.Builder.setSuppressCalibrationWarnings
- CameraStreamServer.setSource
错误修复
- 修复了 OnBotJava 不将字体大小设置应用于编辑器的问题。
- 将 EasyOpenCV 依赖项更新至 v1.7.1
- 修复了 OnBotJava 中无法使用 EasyOpenCV CameraFactory 的问题
- 修复了用户管道抛出异常时整个 RC 应用程序崩溃的问题
- 修复了当用户画布注释器抛出异常时整个 RC 应用程序崩溃的问题
- 处理用户异常时使用现代堆栈跟踪显示,而不是传统的 ESTOP 遥测消息
版本9.0.1 (20230929-083754)
增强功能
- 更新 AprilTag 示例以包括抽取和其他注释。还纠正了误导性标签 ID 警告
- 将块内嵌注释的最大大小增加到 140 个字符
- 添加块示例 BasicOmniOpMode。
- 更新了 CENTERSTAGE 库 AprilTag 方向四元数
- 更新了 Java 示例 ConceptTensorFlowObjectDetection.java 以包含自定义模型支持所需的缺失元素。
错误修复
- 修复了 10 月 1 日之后 Driver Station 在 v9.0 上报告为过时并提示用户更新的问题。
版本9.0(20230830-154348)
重大变化
- 删除 Vuforia
-
AprilTagDetection
和AprilTagPose(ftc/raw)
对象中的字段现已final
- VisionPortal 构建器方法
setCameraMonitorViewId()
已重命名为setLiveViewContainerId()
, enableCameraMonitoring()
已重命名为enableLiveView()
增强功能
- 添加对 DFRobot HuskyLens 视觉传感器的支持。
- Blocks 团队现在可以执行网络摄像头校准。
- 添加了 System.currentTimeMillis 块(在实用程序/时间下)
- 添加了 VisionPortal.saveNextFrameRaw 块(在 Vision/VisionPortal 下)
- 添加了名为 UtilityCameraFrameCapture 的新示例块 OpMode。
- RobotDriveByGyro 示例已更新为使用新的通用 IMU 接口。它现在支持两种 IMU 类型。
- 从块编辑器的工具箱中删除了一些容易出错的 ElapsedTime 块。这不是重大更改:使用这些块的旧块 OpMode 仍然可以在块编辑器中和运行时运行。
- 对术语 OpMode 的“OpMode”形式进行标准化。
- 引用专门扩展
LinearOpMode
(包括块 OpMode)的 OpMode 的首选方式是“线性 OpMode”。 - 引用专门直接扩展
OpMode
OpMode 的首选方式是“迭代 OpMode”。
- 彻底修改
OpMode
和LinearOpMode
Javadoc 注释,使其更易于阅读并包含更多详细信息。 - 对 Java 示例进行了小幅增强
- 示例中可能在 Android Studio 中渲染不佳的 Javadoc 注释已转换为标准多行注释
- 提高了样本之间的一致性
- SensorDigitalTouch 示例已替换为新的 SensorTouch 示例,该示例使用
TouchSensor
接口而不是DigitalChannel
。 - ConceptCompassCalibration、SensorMRCompass 和 SensorMRIRSeeker 示例已被删除,因为它们对现代 FTC 比赛没有用处。
错误修复
- 修复了导致 PlayStation 游戏手柄无法在蓝牙模式下使用的错误。蓝牙对于比赛来说是不合法的,但可能有助于在充电时或在外展活动中使用 DS 设备。
- 修复了以下错误:如果在编辑 Blocks OpMode 时重新启动 Control Hub,则 Blocks OpMode 的修改日期值可能会更改为 1969 年 12 月 31 日。
- 修复了自动 TeleOp 预选功能(在 8.2 中被破坏)
- 修复了将整数(例如 123)传递到 Telemetry.addData 块时的错误,该块接受的数字在遥测中显示为 123.0。
- 修复 OnBotJava 自动完成问题:
- 自动完成局部变量时,自动完成会错误地为当前类提供值
hardwareMap
自动完成功能会错误地包含 lambda 类条目
- 修复了 OnBotJava 不自动导入类的问题。
- 修复了删除文件后 OnBotJava 选项卡无法关闭的问题。
- 修复了在 OnBotJava 中重命名文件时不会发生项目视图刷新的问题。
- 修复了 OnBotJava 界面中外部库的“下载”上下文菜单项。
- 修复了设置为等宽模式时驾驶员站遥测会间歇性冻结的问题。
- 修复了版本 8.2 中引入的某些 REV Hub 操作的性能回归问题。
- 修复了 DriveToTag 示例中的 TagID 比较逻辑。
版本8.2(20230707-131020)
重大变化
- 非线性(迭代)OpMode 不再允许在其
stop()
方法中操纵执行器。这样做的尝试将被忽略并记录。- 当 OpMode 尝试非法操纵执行器时,机器人控制器将打印一条日志消息,其中包括文本
CANCELLED_FOR_SAFETY
。 - 此外,LinearOpModes 不再能够通过删除线程中断或使用另一个线程来重新获得操作执行器的能力。
- 删除对 Android 版本 6.0 (Marshmallow) 的支持。 minSdkVersion 现在是 24。
- 增加Robocol版本。
- 这意味着 8.2 或更高版本的机器人控制器或驱动器站将无法与 8.1 或更早版本的驱动器站或机器人控制器进行通信。
- 如果您忘记同时更新两个应用程序,则会显示一条错误消息,说明哪个应用程序较旧且应该更新。
- FTC_FieldCo整理系统定义.pdf 已移动。它仍在 git 历史记录中,但已从与 8.2 标签对应的 git 快照中删除。正式版本现在位于场坐标系中。
-
LynxUsbDevice.addConfiguredModule()
和LynxUsbDevice.getConfiguredModule()
已替换为LynxUsbDevice.getOrAddModule()
。 - Vuforia 和 TensorFlow 对象检测的旧块已过时,并已从块编辑器的工具箱中删除。包含 Vuforia 或 TensorFlow 对象检测的旧块的现有块 OpMode 可以在块编辑器中打开,但运行它们将不起作用。
新功能
- 为计算机视觉添加新的
VisionPortal
API- 此 API 可能会在最终启动版本中发生更改!
- 添加了几个新样本。
- 添加对检测 AprilTags 的支持。
-
VisionPortal
是 AprilTag 和 TFOD 处理的新入口点。 - Vuforia 将在未来版本中删除。
- 更新了 TensorFlow 依赖项。
- 添加了对块的网络摄像头摄像头控制的支持。
- 块编辑器的工具箱现在有一个 Vision 类别,位于 Utilities 类别的正上方。
- 相关技术的相关文档可以在以下位置找到:
- 四月标签简介
- AprilTag SDK 指南
- 四月标签检测值
- AprilTag 测试图像
- 相机校准
- 添加了对 Logitech Dual Action 和 Sony PS5 DualSense 游戏手柄的 Driver Station 支持。
- 这不包括对 Sony PS5 DualSense Edge 游戏手柄的支持。
- 请务必参阅游戏手册 1 来确定比赛中游戏手柄的合法性。
- 向 UVC 驱动程序添加对 MJPEG 有效负载流的支持(使用时需要外部 JPEG 解压缩例程)。
- 在 Driver Station UI 上显示有关当按下按钮或在未绑定的游戏手柄上移动摇杆时如何绑定游戏手柄的提示。
- 添加了在 Driver Station 上全屏显示“Camera Stream”的选项。
- OnBotJava 源代码在每次构建时自动保存为 ZIP 文件,并保留最后 30 个构建的滚动窗口;如果代码被意外删除或损坏,允许从以前的版本中恢复源代码。
- 添加了对更改未通过 USB 直接连接的扩展集线器地址的支持。
- 扩展集线器地址更改屏幕现在有一个应用按钮,可以在不离开屏幕的情况下更改地址。
- 无法再选择分配给连接到同一 USB 连接或 Control Hub 的其他集线器的地址。
- 将块内嵌注释的最大大小增加到 100 个字符
- 保存打开的块注释气球的位置
- 添加新的 AprilTag 驾驶示例:RobotDriveToAprilTagTank 和 RobotDriveToAprilTagOmni
- 添加示例以说明优化 AprilTags 的相机曝光:ConceptAprilTagOptimizeExposure
错误修复
- 更正了检查屏幕,以使用库中定义的 SDK 版本而不是
AndroidManifest.xml
中指定的版本来报告应用程序版本。这纠正了应用程序可以向用户显示匹配版本号但仍然声明版本不匹配的情况。- 如果
AndroidManifest.xml
中指定的版本与SDK版本不匹配,则管理页面上会显示SDK版本条目。
- 修复了从驱动程序站保存具有重复名称的配置文件时不显示错误的问题。
- 修复了 OpenFTC/EasyOpenCV#57 中出现的 UVC 驱动程序中的死锁。
- 修复了热插拔相机时可能发生的 UVC 驱动程序中的死锁。
- 修复了 UVC 驱动程序与 Arducam OV9281 全局快门相机的兼容性。
- 修复了发生具有重复 OpMode 名称的 OnBotJava 构建时的紧急停止情况。
- 修复了“尝试使用已关闭的 LynxModule 实例”垃圾邮件的已知原因。
- 修复了配置通过 RS-485 连接的扩展集线器时的视觉识别 LED 模式。
版本8.1.1 (20221201-150726)
这是一个仅修复错误的版本,旨在解决以下四个问题。
- 问题 #492 - 无法创建新的块操作模式。
- 问题 #495 - 从 OpMode 的遥测对象中删除最终修饰符。
- 问题 #500 - 当 Driver Station 应用程序更新到 8.1 时,某些设备无法配置
- 将机器人控制器应用程序或驾驶员站应用程序更新到 8.1.1 或更高版本将解决此问题。
- 现代机器人触摸传感器可配置为数字设备。它只能用作模拟设备。
版本 8.1 (20221121-115119)
重大变化
- 弃用
OpMode
字段msStuckDetectInit
、 msStuckDetectInitLoop
、 msStuckDetectStart
、 msStuckDetectLoop
和msStuckDetectStop
。- OpModes 不再对
init()
、 init_loop()
、 start()
或loop()
进行时间限制,因此不再使用与这些方法对应的字段。 -
stop()
仍然有时间限制,但现在硬编码为 1 秒,并且无法使用msStuckDetectStop
进行更改。
- 弃用
OpMode
方法internalPreInit()
、 internalPostInitLoop()
和internalPostLoop()
。- 迭代
OpMode
将继续调用这些方法,以防它们被覆盖。 -
LinearOpMode
根本不会调用这些方法。
- 弃用(并停止尊重)
DeviceProperties.xmlTagAliases
。
增强功能
- 向 Blocks 和 Java 添加了新的
IMU
接口,该接口可与所有旧版控制集线器和扩展集线器中包含的原始 BNO055 IMU 以及新的替代 BHI260AP IMU 一起使用。- 您可以通过导航至 Web 界面的管理页面来确定 Control Hub 中的 IMU 类型。
- 要了解如何使用新的
IMU
接口,请参阅 https://ftc-docs.firstinspires.org/programming_resources/imu/imu.html。 SensorIMU
Blocks 示例也已更新为使用新的IMU
接口,并添加了以下 Java 示例:-
SensorIMUOrthogonal
- 如果您的 REV Hub 安装得与机器人底部平行或垂直,请使用此示例。
-
SensorIMUNonOrthogonal
- 如果您的 REV Hub 以任何其他方向安装到机器人上,请使用此示例
ConceptExploringIMUOrientations
- 此 OpMode 是一种工具,可帮助您了解正交方向如何工作以及哪一个适用于您的机器人。
- BHI260AP IMU 只能通过新的
IMU
接口访问。 BNO055 IMU 可以使用新的IMU
接口进行编程,也可以继续使用旧的BNO055IMU
接口进行编程。如果您希望能够快速切换到可能包含 BHI260AP IMU 的新 Control Hub,您应该迁移代码以使用新的IMU
接口。 - 与旧的
BNO055IMU
接口不同,旧的 BNO055IMU 接口仅当 REV Hub 平装在机器人上时才能正常工作, IMU
接口允许您指定 REV Hub 在机器人上的方向。它将考虑到这一点,并为您提供机器人坐标系中的方向,而不是 REV Hub 的特殊坐标系。因此,当机器人水平时(而不是 REV 轮毂水平时),俯仰和偏航将为 0,这将为大多数安装方向带来更可靠的方向角度值。 - 由于新的以机器人为中心的坐标系,
IMU
接口返回的俯仰角和横滚角将与BNO055IMU
接口返回的不同。迁移代码时,请特别注意文档。 - 如果您已经校准了 BNO055,则可以通过将
BNO055IMUNew.Parameters
实例传递给IMU.initialize()
来将该校准数据提供给新的IMU
接口。 -
IMU
接口也适合由第三方供应商为支持以四元数形式提供方向的 IMU 实现。
- 迭代
OpMode
(与LinearOpMode
相对)现在在专用线程上运行。- 循环时间不应受到系统中发生的所有其他事情的影响。
- 慢
OpMode
不再增加处理网络命令所需的时间,反之亦然。 -
init()
、 init_loop()
、 start()
和loop()
方法不再需要在特定时间范围内返回。
- BNO055 IMU 旧版驱动程序:恢复在一种 OpMode 中初始化的能力,然后让另一种 OpMode 重新使用该初始化。如果需要,这允许您在 OpMode 之间保持 0 偏航位置。
- 允许 FTC SDK 中的设备驱动程序的自定义版本使用相同的 XML 标记。
- 以前,如果您想自定义设备驱动程序,则必须将其复制到新类并为其指定新的 XML 标记。给它一个新的 XML 标签意味着要切换正在使用的驱动程序,您必须修改配置文件。
- 现在,要使用自定义驱动程序,您所要做的就是在调用
hardwareMap.get()
时指定自定义驱动程序的类。要返回到原始驱动程序,请指定原始驱动程序类。如果您指定原始驱动程序和自定义驱动程序都实现的接口,则无法保证将返回哪个实现。
错误修复
- 修复了访问“管理 TensorFlow Lite 模型”和“管理声音”链接以及从 REV 硬件客户端执行块和 OnBotJava OpMode 下载的问题。
- 修复了使用先前 OpMode 运行中分配的参数自动初始化 I2C 设备驱动程序的问题。
- 改进了驾驶员站弹出菜单在横向布局中的位置。
- 修复了尝试在 RC 手机上的 Blocks OpMode 中获取未配置的 BNO055 IMU 时的 NullPointerException。
- 修复了变量名为
orientation
时的Blocks问题。
版本8.0 (20220907-131644)
重大变化
- 增加Robocol版本。
- 这意味着 8.0 或更高版本的机器人控制器或驱动器站将无法与 7.2 或更早版本的驱动器站或机器人控制器进行通信。
- 如果您忘记同时更新两个应用程序,则会显示一条错误消息,说明哪个应用程序较旧且应该更新。
- 现在,当您第一次从
HardwareMap
检索 I2C 设备时,就会初始化它们。- 以前,所有 I2C 设备都会在 OpMode 开始执行之前进行初始化,无论您是否真的要使用它们。这可能会导致性能下降和不必要的警告。
- 通过此更改,对于 Java 用户来说,在 OpMode 的 Init 阶段从
HardwareMap
检索所有需要的设备非常重要。即,为 OpMode 将使用的每个硬件设备声明一个变量,并为每个设备分配一个值。不要在运行阶段执行此操作,否则当您正在检索的设备初始化时,您的 OpMode 可能会短暂挂起。 - 不使用配置文件中指定的所有 I2C 设备的 OpMode 应该花费更少的时间来初始化。使用所有指定 I2C 设备的 OpMode 应该花费与之前相同的时间。
- 通过更改从 BNO055 IMU 驱动程序中的角速度矢量读取轴旋转速率的顺序,修复了问题 #251。
- 弃用
BNO055IMU.Parameters
中的pitchMode
。- 将
pitchMode
设置为PitchMode.WINDOWS
会破坏驱动程序使用的坐标约定。
- 将
OpModeManagerImpl
移至com.qualcomm.robotcore.eventloop.opmode
包。- 这会破坏第三方库 EasyOpenCV(版本 1.5.1 及更早版本)和 FTC Dashboard(版本 0.4.4 及更早版本)。
- 删除已弃用的
OpMode
方法resetStartTime()
(改用resetRuntime()
)。 - 删除受保护的
LinearOpMode.LinearOpModeHelper
类(该类不适合 OpModes 使用)。 - 删除 I2C 设备(同步)配置类型(自 2018 年起已弃用)
增强功能
- OpModes 中未捕获的异常不再需要重新启动机器人
- 弹出带有堆栈跟踪的蓝屏不是 SDK 错误;这取代了遥测区域中的红色文本。
- 自第一个 SDK 发布以来,OpMode 崩溃已使机器人进入“紧急停止”状态,仅显示异常的第一行,并要求用户按“重新启动机器人”才能继续
- OpMode 期间的异常现在会打开一个弹出窗口,其配色方案与日志查看器相同,其中包含 15 行异常堆栈跟踪,以便轻松追踪有问题的行,而无需通过 ADB 连接查看日志或滚动浏览大量日志在日志查看器中。
- 弹出窗口中的异常文本可以像网页一样缩放和滚动。
- 在弹出窗口中按“确定”按钮将返回到驾驶员站的主屏幕,并允许立即再次运行 OpMode,而无需执行“重新启动机器人”
- 添加新的 Java 示例来演示如何使用硬件类来抽象机器人执行器,并在多个 OpMode 之间共享它们。
- 示例 OpMode 是 ConceptExternalHardwareClass.java
- 抽象的硬件类是RobotHardware.java
- 更新 RobotAutoDriveByGyro_Linear Java 示例以使用 REV 控制/扩展集线器 IMU。
- 更新 Vuforia 示例以引用 PowerPlay 资产并具有图像目标的正确名称和字段位置。
- 更新 TensorFlow 示例以引用 PowerPlay 资产。
- 向 OnBotJava 编辑器添加对 Java 8 语言功能的选择性支持。
- 要选择加入,请打开 OnBotJava 设置,然后选中
Enable beta Java 8 support
。 - 请注意,只有当机器人控制器运行 Android 7.0 Nougat 或更高版本时,Java 8 代码才会编译。
- 请在此处报告问题。
- 在 OnBotJava 中,单击构建错误现在可以正确跳转到正确的位置。
- 改进了 OnBotJava 自动完成行为,以在大多数情况下提供更好的完成选项。
- 当从驾驶员站查看时,将二维码添加到机器人控制器检查报告中,以便检查员在比赛中扫描。
- 提升部分场景下I2C性能和可靠性。
版本 7.2 (20220723-130006)
重大变化
- 更新构建工具。对于 Android Studio 用户,此更改需要 Android Studio Chipmunk 2021.2.1。
- 取消对不合法竞争设备的支持,包括现代机器人核心控制模块、矩阵控制器以及 HiTechnic/NXT 控制器和传感器。对 Modern Robotics I2C 传感器的支持仍然存在。
增强功能
- 增加了驾驶台上三点横向菜单触摸区域的高度,使其更易于选择。
- 添加
terminateOpModeNow()
方法以允许 OpModes 立即干净地自退出。 - 将
opModeInInit()
方法添加到LinearOpMode
以促进初始化循环。类似于opModeIsActive()
但对于初始化阶段。 - 警告用户是否已连接到DirectInput模式的Logitech F310 GamePad。
- 允许Sparkmini电机控制器更快地反应以加快变化。
- 隐藏了在检查屏幕上隐藏错误安装的姐妹应用程序(即安装在RC设备或VICE-vice-vice-vice-vice-vice-vice-vice-vice-vice-vice-vice-vice-vice-vice-vice-vice)的版本。
- 添加了允许用户编辑RunoPmode块的注释的支持。
- 将parameterDefaultValues字段添加到@ExportToBlocks。这为使用@ExportToBlocks注释提供了Java方法的能力,可以在块编辑器中显示方法参数时为方法参数指定默认值。
- 使LinaropMode块更具可读性。 OPMODE名称显示在RunoPmode块上,但在其他线性磁管块上不显示。
- 为使用不同的帧发电机而不是Vuforia的张量流对象检测增加了支持。仍然支持使用Vuforia将相机框架传递到TFOD。
- 删除Renderscript的使用。
- 修复了重复stackTraces的应用程序启动上的LogSpam,该启动与
"Failed resolution of: Landroid/net/wifi/p2p/WifiP2pManager$DeviceInfoListener"
- 允许从检查屏幕上禁用蓝牙无线电
- 当I2C设备不响应时,请改善警告消息
- 添加支持控制PS4/ETPARK GAMEPADS上的RGB LED的支持
- 从OPMODE样本中删除Legacy Pushbot参考。将“ PushBot”样本重命名为“机器人”。电动机方向逆转与“直接驱动”驱动列车兼容。
错误修复
- 修复问题#316(matrixf.inverted()返回了一个不正确的1x1和2x2矩阵矩阵)。
- 现在,自我检查允许点释放之间的驱动程序站和机器人控制器兼容性。
- 修复了错误,如果为多个游戏板排队相同的
RumbleEffect
实例,则可能会将两个隆隆声命令都发送到一个游戏板。 - 修复了驱动程序中心上的错误,如果禁用了高级游戏板功能,并且连接了官方支持的GamePad,然后打开高级游戏板功能或GamePad类型覆盖屏幕屏幕将导致游戏板被自定义USB驱动程序反弹,即使高级游戏板功能被禁用。
- 防止Vuforia lotiber中的(不太可能)无效指针例外。
- 强化Onbotjava和Blocks保存以防止与程序断开连接并管理时的保存问题
- 修复问题,如果Rev Hub I2C写入失败,则RC应用程序将悬挂,因为先前的I2C操作仍在进行中。此挂起最常见的发生在Rev 2M距离传感器初始化期间
- 删除ConceptWebcam.java样本程序。该样本与Onbotjava不兼容。
- 修复了在@ExportToBlocks注释字段中使用HTML标签的错误,阻止了块编辑器加载。
- 修复块编辑器,因此当您没有修改任何内容时,它不会要求您保存。
- 修复上传一个非常大的块项目以离线块编辑器。
- 修复了导致DCMotorex块的错误,从块编辑器工具箱中省略了。
- 修复块程序剥离的块程序(由于使用TensorFlow标签块)
版本7.1(20211223-120805)
- 调用
isPwmEnabled()
(问题#223)时修复崩溃。 - 修复了绒毛错误(第4期)。
- 修复驱动程序站在尝试使用DualShock4 V1 GamePad带有高级GamePad功能的启用(第173期)时崩溃。
- 在连接任何类型的游戏手柄时,可以(但不太可能)(但不太可能)驱动程序崩溃。
- 修复了错误,当禁用高级游戏板功能时,驱动程序站将使用Xbox360的通用20%DeadZone和Logitech F310 GamePad。
- 添加了SimpleOmnidrive样品OPMODE。
- 添加UVC白平衡控制API。
- 修复问题#259大多数用于TensorFlow的块样本不能用于其他型号。
- 这些块先前标记为TensorFlowObjectDetectionFreightFrenzy(来自名为“ for Frenzy”的子类别)和TensorFlowObjectDetectionCustommodel(来自名为“自定义模型”的子类别)被标记为TensorFlowObjectDectection的块。在块编辑器中打开时,现有OPMODES中的块将自动更新为新块。
- 修复问题#260块无法调用具有Vuforialocalizer参数的Java方法。
- 现在,Blocks具有一个标记为Vuforiafreightfrenzy的块。
- 添加了一个页面来管理/sdcard/first/tflitemodels中的Tensorflow Lite模型。到达Tflite型号页面:
- 您可以单击管理页面底部的链接。
- 您可以单击“块”项目页面上的链接。
- 固定LogSpam时
isBusy()
在不在RTP模式下的电动机上调用。 - 在检查屏幕上隐藏了基于电话的机器人控制器的“ RC密码”项目。 (仅适用于控制枢纽)。
- 在设置屏幕中将通道165添加到Wi-Fi Direct Channel选择菜单中。 (165以前是通过Web UI获得的,但在应用程序中不可用)。
版本7.0(20210915-141025)
增强和新功能
- 将对外部库的支持添加到Onbotjava和块。
- 上传.jar和.aar文件在Onbotjava中。
- 已知限制 - RobotController设备必须运行Android 7.0或更高。
- 已知限制 - 不支持具有资产的AAR文件。
- 外部库可以通过使用com.qualcomm.robotcore.hardware.configuration.annotations Packains中的注释来为硬件设备提供支持。
- 外部库可以包含用于本机代码的.SO文件。
- 外部库可以从Onbotjava Opmodes中使用。
- 使用以下注释的外部库可以从块opmodes中使用。
- org.firstinspires.ftc.robotcore.external.exportclasstoblocks
- org.firstinspires.ftc.robotcore.external.exporttoblocks
- 使用以下注释的外部库可以添加新的硬件设备:
- com.qualcomm.Robotcore.hardware.configuration.annotations.analogsensortype
- com.qualcomm.robotcore.hardware.configuration.annotations.deviceproperties
- com.qualcomm.Robotcore.hardware.configuration.annotations.digitaliodeviceType
- com.qualcomm.Robotcore.hardware.configuration.Annotations.i2CdeviceType
- com.qualcomm.robotcore.hardware.configuration.annotations.motortype
- com.qualcomm.Robotcore.hardware.configuration.annotations.servotype
- 使用以下注释的外部库可以为机器人控制器添加新功能:
- org.firstinspires.ftc.ftcmon.external.oncreate
- org.firstinspires.ftc.ftcommon.external.oncreateeventloop
- org.firstinspires.ftc.ftcompcommon.external.oncreatemenu
- org.firstinspires.ftc.ftcompcommon.external.ondestroy
- org.firstinspires.ftc.ftcommon.external.webhandlerregistrar
- 增加了对Rev Robotics驱动程序中心的支持。
- 将完全自定义的用户空间USB GamePad驱动程序添加到驱动程序站(请参阅DS设置中的“高级GamePad功能”菜单)。
- 允许GamePads在没有本机Linux内核支持的设备上工作(例如一些罗马尼亚摩托罗拉设备)。
- 允许DS读取每个游戏板的唯一序列号,即使同一型号下降的两个游戏板也可以自动恢复掉落的游戏板。 (注意:不幸的是,这不适用于EtPark GamePads,因为它们没有唯一的串行) 。
- 读取唯一的序列号还提供了配置DS以默认情况下将GAMEPAD分配到某个位置的能力(因此根本不需要启动+A/B)。
- Xbox360 GamePad上的LED环和PS4 GamePad上的RGB LED栏用于指示游戏板绑定的驾驶员位置。
- Xbox360,PS4和EtPark GamePads上的隆隆电动机可以从OpModes控制。
- PS4游戏板上的2分触摸板可以从OpModes读取。
- 现在,游戏板上的“背部”和“指南”按钮可以安全地绑定到机器人控件(以前,在许多设备上,Android在主页按钮按下并关闭应用程序时会截取这些按钮)。
- 默认情况下启用了高级GamePad功能,但可以通过“设置”菜单禁用,以还原为Android本地提供的GamePad支持。
- 提高PING测量的准确性。
- 修复问题,当最初连接到或重新启动机器人时,ping时间显示出比现实高的问题。
- 要查看完整的改进,您必须同时更新机器人控制器和驱动程序站应用程序。
- 更新位于/ftcrobotcontroller/src/main/java/org/firstinspires/ftc/robotcontroller/external/external/samples的样本。
- 添加了ConceptGamePadrumble和ConceptGamePadTouchPad pass样品,以说明这些新的Gampad功能的使用。
- 将现有的Vuforia样品凝结成2个样本(ConceptVuforiafieldNavigation&ConceptVuiafieldNavigationWebcam),显示了如何使用Vuforia确定机器人在现场的位置。两者都使用当前季节的目标图像。
- 添加了ConceptvuforiaDrivetOtaRgetWebCam,以说明一种直接驱动到任何可见Vuforia目标的简便方法。
- 对警告系统和个人警告做出了许多改进。
- 现在,警告更加间隔,因此它们更容易阅读。
- 添加了有关在竞争之前应解决的条件的新警告。
- 不匹配的应用程序警告现在使用主要和次要应用程序版本,而不是版本代码。
- 当安装了新的FTC季节的机器人控制器应用程序时,警告将自动重新启用。
- 在不指定寄存器地址的情况下增加了对扩展中心 /控制集线器上I2C交易的支持。
- 请参阅Ti I2C规格的第3节。
- 使用现代机器人硬件时调用这些新方法将导致不支持的exception。
- 更改vuforialocalizer
close()
方法为公开。 - 增加了对TensorFlow V2对象检测模型的支持。
- 减少自我检查语言和图形的歧义。
- Onbotjava现在警告可能意外的文件覆盖。
- 改善管理网页上Wi-Fi频段和频道选择器的行为。
错误修复
- 修复机器人控制器应用程序在驱动程序站连接时在Android 9+上崩溃。
- 修复了OPMODE负责在Tensorflow TfobjectDetector上呼叫关闭的问题。现在这是自动完成的。
- 修复Vuforia初始化块,以允许用户选择AxesOrder。更新相关的块示例Opmodes。
- 修复了FTCrobotController问题#114 LED块,Java类无效。
- 修复了包含其名称中特殊字符的Opmodes的匹配日志记录。
- 如果将驱动程序设置为景观布局,并且在OPMODE运行时触发了驱动程序,则修复驱动程序站OPMODE控件将变得无响应。
- 修复驱动程序站应用程序被关闭时将其关闭,或者关闭屏幕。
- 修复旧设备上的“厄运黑色漩涡”(无限“配置Wi-Fi Direct”消息)。
- 在Onbotjava介绍页面上更新Wiki评论。
版本6.2(20210218-074821)
增强功能
- 尝试自动修复控制中心的内部扩展集线器无法通过重新刷新固件来工作的条件
- 对Wi-Fi直接配对屏幕进行各种改进,尤其是在景观模式下
- 当主要活动被带到前景时,使机器人控制器服务不再明确地重新启动
- (例如,不再仅通过查看自我检查屏幕并按下后面按钮来重新启动该服务)
- 如果打开了设置菜单或配置机器人菜单,它仍会重新启动
错误修复
- 修复FTCrobotController问题#71无法在v6.1块中打开OPMODES OPMODES OFFLINE编辑器
- 修复FTCROBOTCONTROLLER问题#79 6.1在摩托罗拉E5 Play上导致软启动
- 修复问题的问题,如果控制中心无法与其内部扩展集线器通信,则控制枢纽OS的看门狗将重新启动机器人控制器应用程序
- 修复某些未在适当的
HardwareMap
字段中显示的I2C设备(例如hardwareMap.colorSensor
) - 修复问题,在控制枢纽上执行Wi-Fi出厂重置不会将Wi-Fi频段设置为2.4 GHz
- 修复问题,如果选择了“设置为配置硬件的设置代码”的选项,那么Onbotjava可能无法创建新文件
- 解决问题的问题,在OPMODE崩溃后执行某些操作将暂时打破控制/扩展集线器通信
- 解决问题的问题,如果启动时缺少扩展集线器,则具有配置的USB连接扩展集线器将无效
- 解决了由于控制/扩展的中心固件版本不匹配/扩展而引起的潜在问题
- 修复FTC_APP问题673最新的MatchLog被删除而不是旧的Matchlog由Robotlog删除
- 通过在机器人上正确定向摄像头,修复了ConceptvuforiaultimateGoalnavigationWebcam样本OPMODE。
- 修复问题时,当从驱动程序站请求停止时,将在logcat中被垃圾邮件垃圾邮件(此行为意外引入了v5.3中)。这种变化对功能没有影响。
- 修复问题,如果任何teleop opmode的名称包含撇号,则块编辑器无法加载。
6.1版(20201209-113742)
- 使配置屏幕上的扫描按钮更新通过RS-485连接的扩展集线器列表
- 改善Web界面与较旧的浏览器和Android系统WebView版本的兼容性。
- 修复了UVC驱动程序中的问题,其中一些摄像机(例如某些MS LifeCAMS)报告的帧间隔为圆形而不是截断值(例如
666667*100ns
而不是666666*100ns
的15fps)将无法开始流式传输。 - 为虚拟PTZ控件中的UVC驱动程序增加支持
- 在UVC驱动程序中增加支持(ISO)控制
- 在UVC驱动程序中添加支持,以启用/禁用AE优先级。此设置提供了一种告诉摄像机固件的方法
- a)它可以下调所请求的帧速率,以提供理论上更好的图像(即,与所选帧速率的框架间期相比,曝光更长)
- b)它必须满足所选帧速率的框架间截止日期,即使图像可能因此不受影响
- 增加了对控制轮毂OS 1.1.2机器人控制器看门狗的支持
- 如果机器人控制器应用程序停止响应超过10秒,将重新启动
- 增加了支持在Android 10+上使用驱动程序站应用程序的支持
- 介绍自动远程选举功能
- 在驱动程序站的OPMODE列表下拉中显示opmode名称旁边的图标,以指示OPMODE的来源(即用于创建它的编程工具)
- 修复了驱动程序站应用程序在显示配置Wi-Fi Direct屏幕后退出的问题
- 修复块和Onbotjava通过Rev Hardware Client访问时会提示
6.0版(20200921-085816)
重要提示
- 6.0版是最终目标季节的版本。
- 需要Android Studio 4.0。
- Android Studio用户首次构建应用程序时需要连接到Internet(以便为构建下载所需的软件包)。
- 版本5.5是2020年8月的中等季节中等大型淡季。值得在下面查看这些发行说明。
- 5.5及更高版本将无法在较旧的Android 4.x和5.x手机上使用。用户必须升级到批准的Android 6.x设备或更新的设备。
- Rev Motor的默认PIDF值已恢复为2018-2019季节使用的默认PID值
- 进行了此更改,因为2018-2019的值证明了许多机制的效果更好
- 这使转速电动机的行为符合所有其他电动机的行为
- 如果您更喜欢Rev Motors 2019-2020赛季的行为,这里是PIDF值,以便您可以手动将它们设置在OpModes中:
高清十六进制电动机(所有变速箱):速度PIDF值: P = 1.17
, I = 0.117
, F = 11.7
位置PIDF值: P = 5.0
核心十六进制电动机:速度PIDF值: P = 4.96
, I = 0.496
, F = 49.6
位置PIDF值: P = 5.0
新功能
- 包括Tensorflow推断模型和样品Opmodes,以检测最终目标启动器堆栈(四个环与单个环堆)。
- 包括Vuforia Ultimate目标视觉目标和样本Opmodes。
- 引入了用于TensorFlow对象检测的数字缩放功能(以更远的距离更准确地检测对象)。
- 添加Rev Ultraplanetary HD HEX电机的配置条目
增强功能
- 将setGain()和getgain()方法添加到归一化尺寸接口
- 通过设置颜色传感器的增益,您可以针对不同的照明条件进行调整。例如,如果检测到较低的颜色值,则可以增加增益。
- 增益值仅应用于argb()和getNormalizedColors()方法,而不是原始颜色方法。建议使用getNormalizedColors()方法以易于使用和清晰度,因为必须转换argb()。
- 更新SensorColor Java样本以证明使用量
- 将SensorRevcolorDistance Java样品合并到SensorColor Java样品中,该样品展示了所有颜色传感器的最佳实践
- 改善从Rev Color Sensor V3检索值
- 更新RGB通道的归一化计算
- 改善Alpha通道的计算(可用作总体亮度指标)
- 修复默认传感器分辨率,这引起了光明环境的问题
- 增加支持更改Broadcom传感器芯片的分辨率和测量速率的支持
- 删除IR读数和计算不适用于Broadcom传感器芯片
错误修复
- 提高BNO0555IMU初始化的可靠性,以防止随机初始化故障(表现为
Problem with 'imu'
)。
版本5.5(20200824-090813)
5.5版需要Android Studio 4.0或更高版本。
新功能
- 添加了从块OPMODES调用自定义Java类的支持(修复了Skystone问题#161)。
- 类必须在org.firstinspires.ftc.teamcode软件包中。
- 为了轻松访问OPMODE,HARDWAREMAP,遥测,GamePad1和GamePad2,类可以扩展org.firstinspires.ftc.ftc.robotcore.external.blocksopmodecompanion。
- 方法必须是公共静态的,并且不超过21个参数。
- 方法必须用org.firstinspires.ftc.robotcore.external.extern.exporttoblocks注释方法。
- 支持称为OPMODE,LinaropMode,遥测和HardWareMap的参数,并且无论参数的顺序如何,都会自动提供参数。在块上,这些参数的插座会自动填充。
- 声明为char或java.lang.character的参数将接受任何返回文本的块,并且仅使用文本中的第一个字符。
- 声明为布尔或java.lang.boolean的参数将接受任何返回布尔值的块。
- 参数称为字节,java.lang.byte,short,java.lang.short,int,java.lang.integer,long或java.lang.long.long,将接受任何返回数字的块,并将将该值围绕到最接近的整数。
- 参数称为float,java.lang.float,double,java.lang.double将接受任何返回数字的块。
- 添加用于设置显示格式的遥测API方法
- 添加了对切换摄像机的块支持。
- 使用自定义模型添加了对张量流对象检测的支持。
- 增加了支持在管理页面中上传自定义Tensorflow对象检测模型的支持,这对于块和Onbotjava用户特别有用。
- 当使用控制轮毂的按钮切换Wi-Fi频段时,显示新的控制枢纽眨眼代码(仅在Control Hub OS 1.1.2上)
- 添加了可以在高级RC设置中禁用的新警告
- 不匹配的应用版本警告
- 不必要的2.4 GHz Wi-Fi使用警告
- Rev Hub正在运行过时的固件(比版本1.8.2年龄较大)
- 增加了对Sony PS4 GamePad的支持,然后重新处理GamePads如何在驱动程序站工作
- 删除根据驱动程序位置设置GamePad类型的偏好。用未知VID和PID指定游戏板的菜单替换为菜单
- 尝试根据USB VID和PID自动检测游戏板类型
- 如果尚不清楚GamePad VID和PID,请使用用户指定的类型进行该视频和PID
- 如果尚不清楚GamePad VID和PID,并且用户尚未指定该VID和PID的类型,则对如何映射GamePad进行了有根据的猜测
- 驱动程序站现在将尝试自动从gamepad断开连接中恢复,并将其重新分配到分配给掉落时的位置
- 如果只分配了一个游戏板并且掉落:可以恢复
- 如果分配了两个游戏手柄,并且具有不同的vid/pid签名,并且只有一个滴剂:将恢复
- 如果分配了两个游戏手柄,并且具有不同的VID/PID签名,并且两个都将恢复
- 如果分配了两个游戏手柄,并且具有相同的VID/PID签名,并且只有一个滴剂:将恢复
- 如果分配了两个游戏手柄,并且具有相同的VID/PID签名,并且两者都会下降:由于游戏板重新出现在USB总线上时,它们都不会恢复。
- 当前有一个已知的边缘情况:如果有两个游戏手柄,其中插入了相同的VID/PID签名,但只分配了一个游戏手柄,它们都落下,这是一个50-50的机会,将选择一个用于自动恢复的机会分配的位置:它是由USB总线控制器首先重新启用的任何一个确定的。
- 将景观用户界面添加到驱动程序站
- 新功能:带有音频提示的计时器
- 新功能(仅控制枢纽):无线网络连接强度指示器(0-5个bar)
- 新功能(仅控制集线器):敲击/频道显示器上的点击将切换到备用显示,显示无线电Rx DBM和链接速度(点击再次切换)
- 布局不会自动座。您可以从驱动程序站的设置菜单中切换布局。
重大变化
- 删除对Android版本4.4至5.1(Kitkat和Lollipop)的支持。 Minsdkversion现在为23。
- 删除弃用的
LinearOpMode
方法waitOneFullHardwareCycle()
和waitForNextHardwareCycle()
增强功能
- 处理RS485控制轮毂的地址会自动
- 控制集线器将自动给出一个保留地址
- 现有的配置文件将继续工作
- 1-10范围内的所有地址仍然可用于扩展集线器
- 控制中心的光通常将是固体绿色,而无需闪烁以指示地址
- 控件中心将不会显示在扩展中心地址更改设置页面上
- 改进Rev Hub固件更新器
- 用户现在可以在所有可用的固件更新文件之间进行选择
- Rev Hub固件的1.8.2版将其捆绑到机器人控制器应用中。
- 添加了文本以澄清只能通过USB更新扩展中心。
- 固件更新速度降低以提高可靠性
- 允许Rev Hub固件从管理网页直接更新
- 改进机器人控制器上的日志查看器
- 水平滚动支撑(不再包裹单词)
- 支持捏到Zoom
- 使用单层字体
- 错误消息突出显示
- 新配色方案
- 试图强制停滞失控/卡住的OPMODE而不重新启动整个应用程序
- 并非所有类型的失控条件都可以停止,但是如果用户代码在失控期间尝试与硬件交谈,则系统应该能够捕获它。
- 对自我检查屏幕进行各种调整
- 重命名为“ Android版本”的“ OS版本”条目
- 重命名为“ Wi-Fi Direct Name”到“ Wi-Fi名称”
- 在查看控制轮毂的报告时,添加了控制集线器OS版本
- 在查看控制枢纽的报告时,请隐藏飞机模式条目
- 删除检查中兴通道更换器的检查
- 显示所有扩展和控制枢纽的固件版本
- Reworks网络设置管理页面的一部分
- 现在单击所有网络设置
- 现在可以从管理页面更改基于电话的机器人控制器的Wi-Fi直接渠道
- Wi-Fi通道通过频段(2.4 vs 5 GHz)过滤,并且它们是否与其他通道重叠
- 当前的Wi-Fi通道是在基于电话的机器人控制器上预选的,并且控制OS 1.1.2或更高版本的控制轮毂。
- 在运行OS 1.1.2或更高版本的控制轮毂上,您可以选择让系统自动选择5 GHz频段上的通道
- 改善Onbotjava
- 新的浅色和黑暗主题取代了旧主题(混乱,github,chrome,...)
- 新的默认主题是
light
,当您首次更新此版本时将使用
- Onbotjava现在有一个选项卡编辑器
- 仅读取离线模式
- 改善机器人控制器和驱动程序站上“退出”菜单项的功能
- 如果由于未能监视开始条件,请显示线性磁管是否过早存在警告消息
- 改进驱动程序站和机器人控制器彼此不兼容时显示的错误消息
- 驱动程序站OPMODE控制面板现在禁用重新启动机器人
- 当机器人控制器是控制枢纽时,禁用与Wi-Fi Direct相关的高级设置。
- 低/关键时,驾驶员站的色调电池图标。
- 在新配置文件中使用名称“ Control Hub Portal”和“ Control Hub”(在适当的情况下)
- 提高I2C阅读性能
- 对照中心的改进非常大;读取小(例如6个字节)读取速度约2倍
- 在连接到手机的扩展中心不那么明显
- 更新/刷新构建基础架构
- 更新到'com.android.support:AppCompat'的“ Androidx”支持库,这是寿命末
- 将targetsdkversion和CompilesDkversion更新为28
- 将Android Studio的Android插件更新为最新
- 修复报告在“关于”屏幕中构建时间戳
- 添加样本说明手册网络摄像头使用:conceptWebcam
错误修复
- 修复Skystone问题#248
- 修复Skystone问题#232并修改批量缓存语义,以允许使用缓存手册/自动过渡。
- REV 2M距离传感器插入电源时,可以提高性能
- 提高某些设备上吐司消息的可读性
- 允许驱动程序站断开后连接到机器人控制器
- 改善不提供真实序列号的UVC摄像机的伪造序列号
- 以前,某些设备将分配此类摄像机的序列为
0:0
,并且无法打开并开始流式传输 - 修复FTC_APP问题#638。
- 使用Vuforia相机显示器修复了许多错误,包括:
- 修复了可以以奇怪的长宽比显示预览的错误
- 修复了可以在景观中切断预览的错误
- 修复了旋转电话时预览完全混乱的错误
- 修复了使用网络摄像头时十字准线可能会脱落目标的错误
- 如果启动/停止多次,则在某些设备上的UVC驱动程序中的解决问题(FTC_APP 681)
- 问题表现为没有此内核补丁的设备上的内核恐慌。
- 在确实具有补丁的受影响的设备上,该问题仅仅是一个未能开始流式传输的设备。
- 科技团队认为,问题的根本原因是Linux内核XHCI驱动程序中的错误。在SDK UVC驱动程序中实施了解决方法。
- 修复了UVC驱动程序中的错误,通常会掉落相机的一半帧(例如,在配置30fps的流媒体会话中仅提供15fps)。
- 解决问题的问题,其中张量对象检测将显示其置信度低于最小置信参数的结果。
- 修复了Onbotjava中CVE-2019-11358的潜在剥削问题
- 修复使用连接到它的其他扩展集线器更改扩展集线器的地址
- 选择“重新启动机器人”时,保留控制中心的网络连接
- 修复了机器人重新启动时设备扫描失败的问题
- 修复RenderScript用法
- 使用Androidx.RenderScript变体:兼容性提高
- 在Java模式下使用RenderScript,而不是本机:简化构建
- 修复网络摄像头到框架转换问题:Alpha Channel尚未初始化,仅R,G,&B
- 修复截止日期可能的算术溢出
- 在Vuforia网络摄像头支持中修复僵局,该支持可能会在停止OPMODE时导致5秒延迟
版本5.4(20200108-101156)
- 修复Skystone问题#88
- 添加了一个检查项目,该项目指出机器人控制器(控制集线器)使用出厂默认密码时。
- 修复Skystone问题#61
- 修复Skystone问题#142
- 修复FTC_APP问题#417,通过为Rev Hubs添加更多当前和电压监视功能。
- 修复有时由Onbotjava活动引起的崩溃
- 改善Onbotjava AutoSave功能FTC_APP#738
- 解决扩展集线器断开连接时解决系统响应问题
- 修复了IMU初始化可以防止OpModes停止的问题
- 修复问题,如果androidTextTospeech.speak()被调用得太早,将失败
- 添加telemetry.speak()方法和块,这会导致驱动程序站(如果也更新)会说文本
- 添加和改进扩展中心相关警告
- 改进扩展集线器低电池警告
- 集线器报告后立即显示警告
- 指定条件是当前的还是在OPMODE运行期间暂时发生的
- 显示轮毂报告低电池的显示器
- 显示轮毂在OPMODE运行期间丢失并恢复功率时显示警告
- 在扩展中心不响应命令时显示警告
- 指定条件是当前的还是在OPMODE运行期间暂时发生的
- 阐明当启动不存在扩展中心时警告
- 指定此条件需要在使用轮毂之前重新启动机器人。
- 枢纽灯现在将准确反映这种状态
- 在这些条件下改善日志记录并减少日志垃圾邮件
- 如果没有驱动程序站,则将控制轮毂的时间和时区同步到连接的Web浏览器编程机器人。
- 添加Rev Hubs的批量阅读功能
- 必须使用
LynxModule#setBulkCachingMode()
设置批量缓存模式。这适用于所有引用该轮毂的相关SDK硬件类。 - 以下以下集线器散装缓存模式可用:
-
BulkCachingMode.OFF
(默认):所有硬件调用都照常运行。批量数据可以通过LynxModule#getBulkData()
读取并手动处理。 -
BulkCachingMode.AUTO
:适用的硬件调用是从自动清除/刷新的批量读取缓存中提供的,以确保相同的命令不会达到相同的缓存。尽管不建议这样做,但也可以使用LynxModule#clearBulkCache()
手动清除缓存。 - (高级用户)
BulkCachingMode.MANUAL
:与BulkCachingMode.AUTO
相同,除了缓存从未自动清除。为避免获得过时的数据,必须在每个循环主体的开头或用户认为适当的情况下手动清除缓存。
- 删除Rev 5.3中添加的PIDF注释值(to Andymark,Gobilda和Tetrix Motor配置)。
- 新电动机类型仍将可用,但它们的默认控制行为将恢复为Rev 5.2
- 添加了新的
ConceptMotorBulkRead
示例OPMODE,以演示和比较用于减少I/O潜伏期的电动机批量阅读模式。
版本5.3(20191004-112306)
- 修复外部USB/UVC网络摄像头支持
- 对Blocks页面进行各种错误修正和改进,包括但不限于:
- 许多视觉调整
- 浏览器变焦和窗口大小的表现更好
- 调整Java Preview Pane的调整大小在浏览器之间工作得更好,更稳定
- Java预览窗格在需要时始终获得滚动条
- Java预览窗格默认隐藏在电话上
- Internet Explorer 11应该起作用
- Large dropdown lists display properly on lower res screens
- Disabled buttons are now visually identifiable as disabled
- A warning is shown if a user selects a TFOD sample, but their device is not compatible
- Warning messages in a Blocks OpMode are now visible by default.
- Adds goBILDA 5201 and 5202 motors to Robot Configurator
- Adds PIDF Annotation values to AndyMark, goBILDA and TETRIX motor configurations. This has the effect of causing the RUN_USING_ENCODERS and RUN_TO_POSITION modes to use PIDF vs PID closed loop control on these motors. This should provide more responsive, yet stable, speed control. PIDF adds Feedforward control to the basic PID control loop. Feedforward is useful when controlling a motor's speed because it "anticipates" how much the control voltage must change to achieve a new speed set-point, rather than requiring the integrated error to change sufficiently. The PIDF values were chosen to provide responsive, yet stable, speed control on a lightly loaded motor. The more heavily a motor is loaded (drag or friction), the more noticable the PIDF improvement will be.
- Fixes startup crash on Android 10
- Fixes ftc_app issue #712 (thanks to FROGbots-4634)
- Fixes ftc_app issue #542
- Allows "A" and lowercase letters when naming device through RC and DS apps.
Version 5.2 (20190905-083277)
- Fixes extra-wide margins on settings activities, and placement of the new configuration button
- Adds Skystone Vuforia image target data.
- Includes sample Skystone Vuforia Navigation OpModes (Java).
- Includes sample Skystone Vuforia Navigation OpModes (Blocks).
- Adds TensorFlow inference model (.tflite) for Skystone game elements.
- Includes sample Skystone TensorFlow OpModes (Java).
- Includes sample Skystone TensorFlow OpModes (Blocks).
- Removes older (season-specific) sample OpModes.
- Includes 64-bit support (to comply with Google Play requirements).
- Protects against Stuck OpModes when a Restart Robot is requested. (Thanks to FROGbots-4634) (ftc_app issue #709)
- Blocks related changes:
- Fixes bug with blocks generated code when hardware device name is a java or javascript reserved word.
- Shows generated java code for blocks, even when hardware items are missing from the active configuration.
- Displays warning icon when outdated Vuforia and TensorFlow blocks are used (SkyStone issue #27)
Version 5.1 (20190820-222104)
- Defines default PIDF parameters for the following motors:
- REV Core Hex Motor
- REV 20:1 HD Hex Motor
- REV 40:1 HD Hex Motor
- Adds back button when running on a device without a system back button (such as a Control Hub)
- Allows a REV Control Hub to update the firmware on a REV Expansion Hub via USB
- Fixes SkyStone issue #9
- Fixes ftc_app issue #715
- Prevents extra DS User clicks by filtering based on current state.
- Prevents incorrect DS UI state changes when receiving new OpMode list from RC
- Adds support for REV Color Sensor V3
- Adds a manual-refresh DS Camera Stream for remotely viewing RC camera frames.
- To show the stream on the DS, initialize but do not run a stream-enabled opmode, select the Camera Stream option in the DS menu, and tap the image to refresh. This feature is automatically enabled when using Vuforia or TFOD—no additional RC configuration is required for typical use cases. To hide the stream, select the same menu item again.
- Note that gamepads are disabled and the selected opmode cannot be started while the stream is open as a safety precaution.
- To use custom streams, consult the API docs for
CameraStreamServer#setSource
and CameraStreamSource
.
- Adds many Star Wars sounds to RobotController resources.
- Added Skystone Sounds Chooser Sample Program.
- Switches out startup, connect chimes, and error/warning sounds for Star Wars sounds
- Updates OnBot Java to use a WebSocket for communication with the robot
- The OnBot Java page no longer has to do a full refresh when a user switches from editing one file to another
已知问题:
- Camera Stream
- The Vuforia camera stream inherits the issues present in the phone preview (namely ftc_app issue #574). This problem does not affect the TFOD camera stream even though it receives frames from Vuforia.
- The orientation of the stream frames may not always match the phone preview. For now, these frames may be rotated manually via a custom
CameraStreamSource
if desired.
- OnBotJava
- Browser back button may not always work correctly
- It's possible for a build to be queued, but not started. The OnBot Java build console will display a warning if this occurs.
- 如果用户无意中从一个文件切换到另一个文件,则用户可能不会意识到他们正在编辑不同的文件,因为这种切换现在是无缝的。当前打开的文件的名称显示在浏览器选项卡中。
版本 5.0(构建于 2014 年 6 月 19 日)
- 支持 REV 机器人控制中心。
- 将 Java 预览窗格添加到块编辑器。
- 向块编辑器添加新的离线导出功能。
- Display Wi-Fi channel in Network circle on Driver Station.
- 添加 Logitech C270 的校准
- 更新构建工具和目标 SDK。
- 符合 Google 的权限基础架构(构建工具更新后需要)。
- Keep Alives to mitigate the Motorola Wi-Fi scanning problem.不再需要遥测替代品。
- 改进了 Vuforia 错误报告。
- 修复了 ftctechnh/ftc_app 问题 621、713。
- 各种错误修复和改进。
Version 4.3 (built on 18.10.31)
- Includes missing TensorFlow-related libraries and files.
Version 4.2 (built on 18.10.30)
- 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 buid 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 OpMode.
- 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 OpMode.
- 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 OpModes are included to show how to determine the relative position of the gold block (left, center, right).
Version 4.1 (released on 18.09.24)
变化包括:
- Fix to prevent crash when deprecated configuration annotations are used.
- Change to allow FTC Robot Controller APK to be auto-updated using FIRST Global Control Hub update scripts.
- Removed samples for non supported / non legal hardware.
- Improvements to Telemetry.addData block with "text" socket.
- Updated Blocks sample OpMode list to include Rover Ruckus Vuforia example.
- Update SDK library version number.
Version 4.0 (released on 18.09.12)
变化包括:
Initial support for UVC compatible cameras
- If UVC camera has a unique serial number, RC will detect and enumerate by serial number.
- If UVC camera lacks a unique serial number, RC will only support one camera of that type connected.
- Calibration settings for a few cameras are included (see TeamCode/src/main/res/xml/teamwebcamcalibrations.xml for details).
- User can upload calibration files from Program and Manage web interface.
- UVC cameras seem to draw a fair amount of electrical current from the USB bus.
- This does not appear to present any problems for the REV Robotics Control Hub.
- This does seem to create stability problems when using some cameras with an Android phone-based Robot Controller.
- FTC Tech Team is investigating options to mitigate this issue with the phone-based Robot Controllers.
- Updated sample Vuforia Navigation and VuMark OpModes to demonstrate how to use an internal phone-based camera and an external UVC webcam.
Support for improved motor control.
- REV Robotics Expansion Hub firmware 1.8 and greater will support a feed forward mechanism for closed loop motor control.
- FTC SDK has been modified to support PIDF coefficients (proportional, integral, derivative, and feed forward).
- FTC Blocks development tool modified to include PIDF programming blocks.
- Deprecated older PID-related methods and variables.
- REV's 1.8.x PIDF-related changes provide a more linear and accurate way to control a motor.
无线的
- Added 5GHz support for wireless channel changing for those devices that support it.
- Tested with Moto G5 and E4 phones.
- Also tested with other (currently non-approved) phones such as Samsung Galaxy S8.
Improved Expansion Hub firmware update support in Robot Controller app
- Changes to make the system more robust during the firmware update process (when performed through Robot Controller app).
- User no longer has to disconnect a downstream daisy-chained Expansion Hub when updating an Expansion Hub's firmware.
- If user is updating an Expansion Hub's firmware through a USB connection, he/she does not have to disconnect RS485 connection to other Expansion Hubs.
- The user still must use a USB connection to update an Expansion Hub's firmware.
- The user cannot update the Expansion Hub firmware for a downstream device that is daisy chained through an RS485 connection.
- If an Expansion Hub accidentally gets "bricked" the Robot Controller app is now more likely to recognize the Hub when it scans the USB bus.
- Robot Controller app should be able to detect an Expansion Hub, even if it accidentally was bricked in a previous update attempt.
- Robot Controller app should be able to install the firmware onto the Hub, even if if accidentally was bricked in a previous update attempt.
弹性
- FTC software can detect and enable an FTDI reset feature that is available with REV Robotics v1.8 Expansion Hub firmware and greater.
- When enabled, the Expansion Hub can detect if it hasn't communicated with the Robot Controller over the FTDI (USB) connection.
- If the Hub hasn't heard from the Robot Controller in a while, it will reset the FTDI connection.
- This action helps system recover from some ESD-induced disruptions.
- Various fixes to improve reliability of FTC software.
积木
- Fixed errors with string and list indices in blocks export to java.
- Support for USB connected UVC webcams.
- Refactored optimized Blocks Vuforia code to support Rover Ruckus image targets.
- Added programming blocks to support PIDF (proportional, integral, derivative and feed forward) motor control.
- Added formatting options (under Telemetry and Miscellaneous categories) so user can set how many decimal places to display a numerical value.
- Support to play audio files (which are uploaded through Blocks web interface) on Driver Station in addition to the Robot Controller.
- Fixed bug with Download Image of Blocks feature.
- Support for REV Robotics Blinkin LED Controller.
- Support for REV Robotics 2m Distance Sensor.
- Added support for a REV Touch Sensor (no longer have to configure as a generic digital device).
- Added blocks for DcMotorEx methods.
- These are enhanced methods that you can use when supported by the motor controller hardware.
- The REV Robotics Expansion Hub supports these enhanced methods.
- Enhanced methods include methods to get/set motor velocity (in encoder pulses per second), get/set PIDF coefficients, etc..
Modest Improvements in Logging
- Decrease frequency of battery checker voltage statements.
- Removed non-FTC related log statements (wherever possible).
- Introduced a "Match Logging" feature.
- Under "Settings" a user can enable/disable this feature (it's disabled by default).
- If enabled, user provides a "Match Number" through the Driver Station user interface (top of the screen).
- The Match Number is used to create a log file specifically with log statements from that particular OpMode run.
- Match log files are stored in /sdcard/FIRST/matlogs on the Robot Controller.
- Once an OpMode run is complete, the Match Number is cleared.
- This is a convenient way to create a separate match log with statements only related to a specific OpMode run.
新设备
- Support for REV Robotics Blinkin LED Controller.
- Support for REV Robotics 2m Distance Sensor.
- Added configuration option for REV 20:1 HD Hex Motor.
- Added support for a REV Touch Sensor (no longer have to configure as a generic digital device).
各种各样的
- Fixed some errors in the definitions for acceleration and velocity in our javadoc documentation.
- Added ability to play audio files on Driver Station
- When user is configuring an Expansion Hub, the LED on the Expansion Hub will change blink pattern (purple-cyan) to indicate which Hub is currently being configured.
- Renamed I2cSensorType to I2cDeviceType.
- Added an external sample OpMode that demonstrates localization using 2018-2019 (Rover Ruckus presented by QualComm) Vuforia targets.
- Added an external sample OpMode that demonstrates how to use the REV Robotics 2m Laser Distance Sensor.
- Added an external sample OpMode that demonstrates how to use the REV Robotics Blinkin LED Controller.
- Re-categorized external Java sample OpModes to "TeleOp" instead of "Autonomous".
已知问题:
Version 3.6 (built on 17.12.18)
变化包括:
- Blocks Changes
- Uses updated Google Blockly software to allow users to edit their OpModes on Apple iOS devices (including iPad and iPhone).
- Improvement in Blocks tool to handle corrupt OpMode files.
- Autonomous OpModes should no longer get switched back to tele-op after re-opening them to be edited.
- The system can now detect type mismatches during runtime and alert the user with a message on the Driver Station.
- Updated javadoc documentation for setPower() method to reflect correct range of values (-1 to +1).
- Modified VuforiaLocalizerImpl to allow for user rendering of frames
- Added a user-overrideable onRenderFrame() method which gets called by the class's renderFrame() method.
Version 3.5 (built on 17.10.30)
Changes with version 3.5 include:
- Introduced a fix to prevent random OpMode stops, which can occur after the Robot Controller app has been paused and then resumed (for example, when a user temporarily turns off the display of the Robot Controller phone, and then turns the screen back on).
- Introduced a fix to prevent random OpMode stops, which were previously caused by random peer disconnect events on the Driver Station.
- Fixes issue where log files would be closed on pause of the RC or DS, but not re-opened upon resume.
- Fixes issue with battery handler (voltage) start/stop race.
- Fixes issue where Android Studio generated OpModes would disappear from available list in certain situations.
- Fixes problem where OnBot Java would not build on REV Robotics Control Hub.
- Fixes problem where OnBot Java would not build if the date and time on the Robot Controller device was "rewound" (set to an earlier date/time).
- Improved error message on OnBot Java that occurs when renaming a file fails.
- Removed unneeded resources from android.jar binaries used by OnBot Java to reduce final size of Robot Controller app.
- Added MR_ANALOG_TOUCH_SENSOR block to Blocks Programming Tool.
Version 3.4 (built on 17.09.06)
Changes with version 3.4 include:
- Added telemetry.update() statement for BlankLinearOpMode template.
- Renamed sample Block OpModes to be more consistent with Java samples.
- Added some additional sample Block OpModes.
- Reworded OnBot Java readme slightly.
Version 3.3 (built on 17.09.04)
This version of the software includes improves for the FTC Blocks Programming Tool and the OnBot Java Programming Tool.
Changes with verion 3.3 include:
- Android Studio ftc_app project has been updated to use Gradle Plugin 2.3.3.
- Android Studio ftc_app project is already using gradle 3.5 distribution.
- Robot Controller log has been renamed to /sdcard/RobotControllerLog.txt (note that this change was actually introduced w/ v3.2).
- Improvements in I2C reliability.
- Optimized I2C read for REV Expansion Hub, with v1.7 firmware or greater.
- Updated all external/samples (available through OnBot and in Android project folder).
- 乌福里亚
- Added support for VuMarks that will be used for the 2017-2018 season game.
- 积木
- Update to latest Google Blockly release.
- Sample OpModes can be selected as a template when creating new OpMode.
- Fixed bug where the blocks would disappear temporarily when mouse button is held down.
- Added blocks for Range.clip and Range.scale.
- User can now disable/enable Block OpModes.
- Fix to prevent occasional Blocks deadlock.
- OnBot Java
- Significant improvements with autocomplete function for OnBot Java editor.
- Sample OpModes can be selected as a template when creating new OpMode.
- Fixes and changes to complete hardware setup feature.
- Updated (and more useful) onBot welcome message.
已知问题:
- 安卓工作室
- After updating to the new v3.3 Android Studio project folder, if you get error messages indicating "InvalidVirtualFileAccessException" then you might need to do a File->Invalidate Caches / Restart to clear the error.
- OnBot Java
- Sometimes when you push the build button to build all OpModes, the RC returns an error message that the build failed. If you press the build button a second time, the build typically suceeds.
Version 3.2 (built on 17.08.02)
This version of the software introduces the "OnBot Java" Development Tool. Similar to the FTC Blocks Development Tool, the FTC OnBot Java Development Tool allows a user to create, edit and build OpModes dynamically using only a Javascript-enabled web browser.
The OnBot Java Development Tool is an integrated development environment (IDE) that is served up by the Robot Controller. OpModes are created and edited using a Javascript-enabled browser (Google Chromse is recommended). OpModes are saved on the Robot Controller Android device directly.
The OnBot Java Development Tool provides a Java programming environment that does NOT need Android Studio.
Changes with version 3.2 include:
Enhanced web-based development tools
- Introduction of OnBot Java Development Tool.
- Web-based programming and management features are "always on" (user no longer needs to put Robot Controller into programming mode).
- Web-based management interface (where user can change Robot Controller name and also easily download Robot Controller log file).
- OnBot Java, Blocks and Management features available from web based interface.
Blocks Programming Development Tool:
- Changed "LynxI2cColorRangeSensor" block to "REV Color/range sensor" block.
- Fixed tooltip for ColorSensor.isLightOn block. Added blocks for ColorSensor.getNormalizedColors and LynxI2cColorRangeSensor.getNormalizedColors.
Added example OpModes for digital touch sensor and REV Robotics Color Distance sensor.
User selectable color themes.
Includes many minor enhancements and fixes (too numerous to list).
已知问题:
- Auto complete function is incomplete and does not support the following (for now):
- Access via this keyword
- Access via super keyword
- Members of the super cloass, not overridden by the class
- Any methods provided in the current class
- Inner classes
- Can't handle casted objects
- Any objects coming from an parenthetically enclosed expression
Version 3.10 (built on 17.05.09)
This version of the software provides support for the REV Robotics Expansion Hub. This version also includes improvements in the USB communication layer in an effort to enhance system resiliency. If you were using a 2.x version of the software previously, updating to version 3.1 requires that you also update your Driver Station software in addition to updating the Robot Controller software.
Also note that in version 3.10 software, the setMaxSpeed and getMaxSpeed methods are no longer available (not deprecated, they have been removed from the SDK). Also note that the new 3.x software incorporates motor profiles that a user can select as he/she configures the robot.
变化包括:
- Blocks changes
- Added VuforiaTrackableDefaultListener.getPose and Vuforia.trackPose blocks.
- Added optimized blocks support for Vuforia extended tracking.
- Added atan2 block to the math category.
- Added useCompetitionFieldTargetLocations parameter to Vuforia.initialize block. If set to false, the target locations are placed at (0,0,0) with target orientation as specified in https://github.com/gearsincorg/FTCVuforiaDemo/blob/master/Robot_Navigation.java tutorial OpMode.
- Incorporates additional improvements to USB comm layer to improve system resiliency (to recover from a greater number of communication disruptions).
Additional Notes Regarding Version 3.00 (built on 17.04.13)
In addition to the release changes listed below (see section labeled "Version 3.00 (built on 17.04.013)"), version 3.00 has the following important changes:
- Version 3.00 software uses a new version of the FTC Robocol (robot protocol). If you upgrade to v3.0 on the Robot Controller and/or Android Studio side, you must also upgrade the Driver Station software to match the new Robocol.
- Version 3.00 software removes the setMaxSpeed and getMaxSpeed methods from the DcMotor class. If you have an OpMode that formerly used these methods, you will need to remove the references/calls to these methods. Instead, v3.0 provides the max speed information through the use of motor profiles that are selected by the user during robot configuration.
- Version 3.00 software currently does not have a mechanism to disable extra i2c sensors. We hope to re-introduce this function with a release in the near future.
Version 3.00 (built on 17.04.13)
*** Use this version of the software at YOUR OWN RISK!!! ***
This software is being released as an "alpha" version. Use this version at your own risk!
This pre-release software contains SIGNIFICANT changes, including changes to the Wi-Fi Direct pairing mechanism, rewrites of the I2C sensor classes, changes to the USB/FTDI layer, and the introduction of support for the REV Robotics Expansion Hub and the REV Robotics color-range-light sensor. These changes were implemented to improve the reliability and resiliency of the FTC control system.
Please note, however, that version 3.00 is considered "alpha" code. This code is being released so that the FIRST community will have an opportunity to test the new REV Expansion Hub electronics module when it becomes available in May. The developers do not recommend using this code for critical applications (ie, competition use).
*** Use this version of the software at YOUR OWN RISK!!! ***
变化包括:
- Major rework of sensor-related infrastructure. Includes rewriting sensor classes to implement synchronous I2C communication.
- Fix to reset Autonomous timer back to 30 seconds.
- Implementation of specific motor profiles for approved 12V motors (includes Tetrix, AndyMark, Matrix and REV models).
- Modest improvements to enhance Wi-Fi P2P pairing.
- Fixes telemetry log addition race.
- Publishes all the sources (not just a select few).
- Includes Block programming improvements
- Addition of optimized Vuforia blocks.
- Auto scrollbar to projects and sounds pages.
- Fixed blocks paste bug.
- Blocks execute after while-opModeIsActive loop (to allow for cleanup before exiting OpMode).
- Added gyro integratedZValue block.
- Fixes bug with projects page for Firefox browser.
- Added IsSpeaking block to AndroidTextToSpeech.
- Implements support for the REV Robotics Expansion Hub
- Implements support for integral REV IMU (physically installed on I2C bus 0, uses same Bosch BNO055 9 axis absolute orientation sensor as Adafruit 9DOF abs orientation sensor). - Implements support for REV color/range/light sensor.
- Provides support to update Expansion Hub firmware through FTC SDK.
- Detects REV firmware version and records in log file.
- Includes support for REV Control Hub (note that the REV Control Hub is not yet approved for FTC use).
- Implements FTC Blocks programming support for REV Expansion Hub and sensor hardware.
- Detects and alerts when I2C device disconnect.
Version 2.62 (built on 17.01.07)
- Added null pointer check before calling modeToByte() in finishModeSwitchIfNecessary method for ModernRoboticsUsbDcMotorController class.
- Changes to enhance Modern Robotics USB protocol robustness.
Version 2.61 (released on 16.12.19)
- Blocks Programming mode changes:
- Fix to correct issue when an exception was thrown because an OpticalDistanceSensor object appears twice in the hardware map (the second time as a LightSensor).
Version 2.6 (released on 16.12.16)
- Fixes for Gyro class:
- Improve (decrease) sensor refresh latency.
- fix isCalibrating issues.
- Blocks Programming mode changes:
- Blocks now ignores a device in the configuration xml if the name is empty. Other devices work in configuration work fine.
Version 2.5 (internal release on released on 16.12.13)
- Blocks Programming mode changes:
- Added blocks support for AdafruitBNO055IMU.
- Added Download OpMode button to FtcBocks.html.
- Added support for copying blocks in one OpMode and pasting them in an other OpMode. The clipboard content is stored on the phone, so the programming mode server must be running.
- Modified Utilities section of the toolbox.
- In Programming Mode, display information about the active connections.
- Fixed paste location when workspace has been scrolled.
- Added blocks support for the android Accelerometer.
- Fixed issue where Blocks Upload OpMode truncated name at first dot.
- Added blocks support for Android SoundPool.
- Added type safety to blocks for Acceleration.
- Added type safety to blocks for AdafruitBNO055IMU.Parameters.
- Added type safety to blocks for AnalogInput.
- Added type safety to blocks for AngularVelocity.
- Added type safety to blocks for Color.
- Added type safety to blocks for ColorSensor.
- Added type safety to blocks for CompassSensor.
- Added type safety to blocks for CRServo.
- Added type safety to blocks for DigitalChannel.
- Added type safety to blocks for ElapsedTime.
- Added type safety to blocks for Gamepad.
- Added type safety to blocks for GyroSensor.
- Added type safety to blocks for IrSeekerSensor.
- Added type safety to blocks for LED.
- Added type safety to blocks for LightSensor.
- Added type safety to blocks for LinearOpMode.
- Added type safety to blocks for MagneticFlux.
- Added type safety to blocks for MatrixF.
- Added type safety to blocks for MrI2cCompassSensor.
- Added type safety to blocks for MrI2cRangeSensor.
- Added type safety to blocks for OpticalDistanceSensor.
- Added type safety to blocks for Orientation.
- Added type safety to blocks for Position.
- Added type safety to blocks for Quaternion.
- Added type safety to blocks for Servo.
- Added type safety to blocks for ServoController.
- Added type safety to blocks for Telemetry.
- Added type safety to blocks for Temperature.
- Added type safety to blocks for TouchSensor.
- Added type safety to blocks for UltrasonicSensor.
- Added type safety to blocks for VectorF.
- Added type safety to blocks for Velocity.
- Added type safety to blocks for VoltageSensor.
- Added type safety to blocks for VuforiaLocalizer.Parameters.
- Added type safety to blocks for VuforiaTrackable.
- Added type safety to blocks for VuforiaTrackables.
- Added type safety to blocks for enums in AdafruitBNO055IMU.Parameters.
- Added type safety to blocks for AndroidAccelerometer, AndroidGyroscope, AndroidOrientation, and AndroidTextToSpeech.
Version 2.4 (released on 16.11.13)
- Fix to avoid crashing for nonexistent resources.
- Blocks Programming mode changes:
- Added blocks to support OpenGLMatrix, MatrixF, and VectorF.
- Added blocks to support AngleUnit, AxesOrder, AxesReference, CameraDirection, CameraMonitorFeedback, DistanceUnit, and TempUnit.
- Added blocks to support Acceleration.
- Added blocks to support LinearOpMode.getRuntime.
- Added blocks to support MagneticFlux and Position.
- Fixed typos.
- Made blocks for ElapsedTime more consistent with other objects.
- Added blocks to support Quaternion, Velocity, Orientation, AngularVelocity.
- Added blocks to support VuforiaTrackables, VuforiaTrackable, VuforiaLocalizer, VuforiaTrackableDefaultListener.
- Fixed a few blocks.
- Added type checking to new blocks.
- Updated to latest blockly.
- Added default variable blocks to navigation and matrix blocks.
- Fixed toolbox entry for openGLMatrix_rotation_withAxesArgs.
- When user downloads Blocks-generated OpMode, only the .blk file is downloaded.
- When user uploads Blocks-generated OpMode (.blk file), Javascript code is auto generated.
- Added DbgLog support.
- Added logging when a blocks file is read/written.
- Fixed bug to properly render blocks even if missing devices from configuration file.
- Added support for additional characters (not just alphanumeric) for the block file names (for download and upload).
- Added support for OpMode flavor (“Autonomous” or “TeleOp”) and group.
- Changes to Samples to prevent tutorial issues.
- Incorporated suggested changes from public pull 216 (“Replace .. paths”).
- Remove Servo Glitches when robot stopped.
- if user hits “Cancels” when editing a configuration file, clears the unsaved changes and reverts to original unmodified configuration.
- Added log info to help diagnose why the Robot Controller app was terminated (for example, by watch dog function).
- Added ability to transfer log from the controller.
- Fixed inconsistency for AngularVelocity
- Limit unbounded growth of data for telemetry. If user does not call telemetry.update() for LinearOpMode in a timely manner, data added for telemetry might get lost if size limit is exceeded.
Version 2.35 (released on 16.10.06)
- Blockly programming mode - Removed unnecesary idle() call from blocks for new project.
Version 2.30 (released on 16.10.05)
- Blockly programming mode:
- Mechanism added to save Blockly OpModes from Programming Mode Server onto local device
- To avoid clutter, blocks are displayed in categorized folders
- Added support for DigitalChannel
- Added support for ModernRoboticsI2cCompassSensor
- Added support for ModernRoboticsI2cRangeSensor
- Added support for VoltageSensor
- Added support for AnalogInput
- Added support for AnalogOutput
- Fix for CompassSensor setMode block
- 乌福里亚
- Fix deadlock / make camera data available while Vuforia is running.
- Update to Vuforia 6.0.117 (recommended by Vuforia and Google to close security loophole).
- Fix for autonomous 30 second timer bug (where timer was in effect, even though it appeared to have timed out).
- opModeIsActive changes to allow cleanup after OpMode is stopped (with enforced 2 second safety timeout).
- Fix to avoid reading i2c twice.
- Updated sample OpModes.
- Improved logging and fixed intermittent freezing.
- Added digital I/O sample.
- Cleaned up device names in sample OpModes to be consistent with Pushbot guide.
- Fix to allow use of IrSeekerSensorV3.
Version 2.20 (released on 16.09.08)
- Support for Modern Robotics Compass Sensor.
- Support for Modern Robotics Range Sensor.
- Revise device names for Pushbot templates to match the names used in Pushbot guide.
- Fixed bug so that IrSeekerSensorV3 device is accessible as IrSeekerSensor in hardwareMap.
- Modified computer vision code to require an individual Vuforia license (per legal requirement from PTC).
- 小修复。
- Blockly enhancements:
- Support for Voltage Sensor.
- Support for Analog Input.
- Support for Analog Output.
- Support for Light Sensor.
- Support for Servo Controller.
Version 2.10 (released on 16.09.03)
- Support for Adafruit IMU.
- Improvements to ModernRoboticsI2cGyro class
- Block on reset of z axis.
- isCalibrating() returns true while gyro is calibration.
- Updated sample gyro program.
- Blockly enhancements
- support for android.graphics.Color.
- added support for ElapsedTime.
- improved look and legibility of blocks.
- support for compass sensor.
- support for ultrasonic sensor.
- support for IrSeeker.
- support for LED.
- support for color sensor.
- support for CRServo
- prompt user to configure robot before using programming mode.
- Provides ability to disable audio cues.
- various bug fixes and improvements.
Version 2.00 (released on 16.08.19)
- This is the new release for the upcoming 2016-2017 FIRST Tech Challenge Season.
- Channel change is enabled in the FTC Robot Controller app for Moto G 2nd and 3rd Gen phones.
- Users can now use annotations to register/disable their OpModes.
- Changes in the Android SDK, JDK and build tool requirements (minsdk=19, java 1.7, build tools 23.0.3).
- Standardized units in analog input.
- Cleaned up code for existing analog sensor classes.
- setChannelMode and getChannelMode were REMOVED from the DcMotorController class. This is important - we no longer set the motor modes through the motor controller.
- setMode and getMode were added to the DcMotor class.
- ContinuousRotationServo class has been added to the FTC SDK.
- Range.clip() method has been overloaded so it can support this operation for int, short and byte integers.
- Some changes have been made (new methods added) on how a user can access items from the hardware map.
- Users can now set the zero power behavior for a DC motor so that the motor will brake or float when power is zero.
- Prototype Blockly Programming Mode has been added to FTC Robot Controller. Users can place the Robot Controller into this mode, and then use a device (such as a laptop) that has a Javascript enabled browser to write Blockly-based OpModes directly onto the Robot Controller.
- Users can now configure the robot remotely through the FTC Driver Station app.
- Android Studio project supports Android Studio 2.1.x and compile SDK Version 23 (Marshmallow).
- Vuforia Computer Vision SDK integrated into FTC SDK. Users can use sample vision targets to get localization information on a standard FTC field.
- Project structure has been reorganized so that there is now a TeamCode package that users can use to place their local/custom OpModes into this package.
- Inspection function has been integrated into the FTC Robot Controller and Driver Station Apps (Thanks Team HazMat… 9277 & 10650!).
- Audio cues have been incorporated into FTC SDK.
- Swap mechanism added to FTC Robot Controller configuration activity. For example, if you have two motor controllers on a robot, and you misidentified them in your configuration file, you can use the Swap button to swap the devices within the configuration file (so you do not have to manually re-enter in the configuration info for the two devices).
- Fix mechanism added to all user to replace an electronic module easily. For example, suppose a servo controller dies on your robot. You replace the broken module with a new module, which has a different serial number from the original servo controller. You can use the Fix button to automatically reconfigure your configuration file to use the serial number of the new module.
- Improvements made to fix resiliency and responsiveness of the system.
- For LinearOpMode the user now must for a telemetry.update() to update the telemetry data on the driver station. This update() mechanism ensures that the driver station gets the updated data properly and at the same time.
- The Auto Configure function of the Robot Controller is now template based. If there is a commonly used robot configuration, a template can be created so that the Auto Configure mechanism can be used to quickly configure a robot of this type.
- The logic to detect a runaway OpMode (both in the LinearOpMode and OpMode types) and to abort the run, then auto recover has been improved/implemented.
- Fix has been incorporated so that Logitech F310 gamepad mappings will be correct for Marshmallow users.
Release 16.07.08
- For the ftc_app project, the gradle files have been modified to support Android Studio 2.1.x.
Release 16.03.30
- For the MIT App Inventor, the design blocks have new icons that better represent the function of each design component.
- Some changes were made to the shutdown logic to ensure the robust shutdown of some of our USB services.
- A change was made to LinearOpMode so as to allow a given instance to be executed more than once, which is required for the App Inventor.
- Javadoc improved/updated.
Release 16.03.09
- Changes made to make the FTC SDK synchronous (significant change!)
- waitOneFullHardwareCycle() and waitForNextHardwareCycle() are no longer needed and have been deprecated.
- runOpMode() (for a LinearOpMode) is now decoupled from the system's hardware read/write thread.
- loop() (for an OpMode) is now decoupled from the system's hardware read/write thread.
- Methods are synchronous.
- For example, if you call setMode(DcMotorController.RunMode.RESET_ENCODERS) for a motor, the encoder is guaranteed to be reset when the method call is complete.
- For legacy module (NXT compatible), user no longer has to toggle between read and write modes when reading from or writing to a legacy device.
- Changes made to enhance reliability/robustness during ESD event.
- Changes made to make code thread safe.
- Debug keystore added so that user-generated robot controller APKs will all use the same signed key (to avoid conflicts if a team has multiple developer laptops for example).
- Firmware version information for Modern Robotics modules are now logged.
- Changes made to improve USB comm reliability and robustness.
- Added support for voltage indicator for legacy (NXT-compatible) motor controllers.
- Changes made to provide auto stop capabilities for OpModes.
- A LinearOpMode class will stop when the statements in runOpMode() are complete. User does not have to push the stop button on the driver station.
- If an OpMode is stopped by the driver station, but there is a run away/uninterruptible thread persisting, the app will log an error message then force itself to crash to stop the runaway thread.
- Driver Station UI modified to display lowest measured voltage below current voltage (12V battery).
- Driver Station UI modified to have color background for current voltage (green=good, yellow=caution, red=danger, extremely low voltage).
- javadoc improved (edits and additional classes).
- Added app build time to About activity for driver station and robot controller apps.
- Display local IP addresses on Driver Station About activity.
- Added I2cDeviceSynchImpl.
- Added I2cDeviceSync interface.
- Added seconds() and milliseconds() to ElapsedTime for clarity.
- Added getCallbackCount() to I2cDevice.
- Added missing clearI2cPortActionFlag.
- Added code to create log messages while waiting for LinearOpMode shutdown.
- Fix so Wi-Fi Direct Config activity will no longer launch multiple times.
- Added the ability to specify an alternate i2c address in software for the Modern Robotics gyro.
Release 16.02.09
- Improved battery checker feature so that voltage values get refreshed regularly (every 250 msec) on Driver Station (DS) user interface.
- Improved software so that Robot Controller (RC) is much more resilient and “self-healing” to USB disconnects:
- If user attempts to start/restart RC with one or more module missing, it will display a warning but still start up.
- When running an OpMode, if one or more modules gets disconnected, the RC & DS will display warnings,and robot will keep on working in spite of the missing module(s).
- If a disconnected module gets physically reconnected the RC will auto detect the module and the user will regain control of the recently connected module.
- Warning messages are more helpful (identifies the type of module that's missing plus its USB serial number).
- Code changes to fix the null gamepad reference when users try to reference the gamepads in the init() portion of their OpMode.
- NXT light sensor output is now properly scaled. Note that teams might have to readjust their light threshold values in their OpModes.
- On DS user interface, gamepad icon for a driver will disappear if the matching gamepad is disconnected or if that gamepad gets designated as a different driver.
- Robot Protocol (ROBOCOL) version number info is displayed in About screen on RC and DS apps.
- Incorporated a display filter on pairing screen to filter out devices that don't use the “-“ format. This filter can be turned off to show all Wi-Fi Direct devices.
- Updated text in License file.
- Fixed formatting error in OpticalDistanceSensor.toString().
- Fixed issue on with a blank (“”) device name that would disrupt Wi-Fi Direct Pairing.
- Made a change so that the Wi-Fi info and battery info can be displayed more quickly on the DS upon connecting to RC.
- Improved javadoc generation.
- Modified code to make it easier to support language localization in the future.
Release 16.01.04
- Updated compileSdkVersion for apps
- Prevent Wi-Fi from entering power saving mode
- removed unused import from driver station
- Corrrected "Dead zone" joystick code.
- LED.getDeviceName and .getConnectionInfo() return null
- apps check for ROBOCOL_VERSION mismatch
- 修复了遥测的数据字符串大小/短大小限制错误中存在逐一错误的问题
- 用户遥测输出已排序。
- 向 DbgLog 和 RobotLog API 添加了格式变体
- code modified to allow for a long list of OpMode names.
- 改进 RobocolDatagramSocket 线程安全性的更改
- 修复“缺少硬件导致机器人控制器与驱动器站断开连接”错误
- 修复“快速点击 Init/Start 会导致问题”(toast 现在仅在 UI 线程上实例化)。
- 添加了一些线程生命周期的日志语句。
- 将游戏手柄重置逻辑移至 initActiveOpMode() 内部以提高鲁棒性
- 为减轻公共方法上的竞争条件风险而进行的更改。
- changes to try and flag when Wi-Fi Direct name contains non-printable characters.
- 修复以纠正 ReadWriteRunnableStandard 中 .run() 和 .close() 之间的竞争条件。
- 更新了 FTDI 驱动程序
- 将 ReadWriteRunnableStanard 接口公开。
- 修复了命令构造函数中的相差一错误
- 将特定的硬件实现转移到他们自己的包中。
- 将特定游戏手柄实现移至硬件库。
- 将 LICENSE 文件更改为新的 BSD 版本。
- 修复了关闭 Modern Robotics USB 设备时的竞争条件。
- ColorSensor 类中的方法已同步。
- 更正了 isBusy() 状态以反映运动结束。
- 更正了“后退”按钮键码。
- GyroSensor 类的 notSupported() 方法已更改为受保护(不应该是公共的)。
版本 15.11.04.001
- GyroSensor 类现在支持 MR 陀螺仪传感器。
- 用户可以访问航向数据(关于 Z 轴)
- 用户还可以访问原始陀螺仪数据(X、Y 和 Z 轴)。
- Example MRGyroTest.java OpMode included.
- More descriptive error messages for exceptions in user code.
- Updated DcMotor API
- Enable read mode on new address in setI2cAddress
- Fix so that driver station app resets the gamepads when switching OpModes.
- USB-related code changes to make USB comm more responsive and to display more explicit error messages.
- Fix so that USB will recover properly if the USB bus returns garbage data.
- Fix USB initializtion race condition.
- Better error reporting during FTDI open.
- More explicit messages during USB failures.
- Fixed bug so that USB device is closed if event loop teardown method was not called.
- Fixed timer UI issue
- Fixed duplicate name UI bug (Legacy Module configuration).
- Fixed race condition in EventLoopManager.
- Fix to keep references stable when updating gamepad.
- 对于传统 Matrix 电机/伺服控制器,无需在控制器名称中附加“电机”和“伺服”。
- 更新了 HT 颜色传感器驱动程序以使用 ModernRoboticsUsbLegacyModule 类中的常量。
- 更新了 MR 颜色传感器驱动程序以使用 ModernRoboticsUsbDeviceInterfaceModule 类中的常量。
- 正确处理所有颜色传感器中的 I2C 地址更改
- Updated/cleaned up OpModes.
- Updated comments in LinearI2cAddressChange.java example OpMode.
- 将对“setChannelMode”的调用替换为“setMode”(以匹配新的 DcMotor 方法)。
- Removed K9AutoTime.java OpMode.
- Added MRGyroTest.java OpMode (demonstrates how to use MR Gyro Sensor).
- Added MRRGBExample.java OpMode (demonstrates how to use MR Color Sensor).
- Added HTRGBExample.java OpMode (demonstrates how to use HT legacy color sensor).
- 添加了 MatrixControllerDemo.java(演示如何使用旧版 Matrix 控制器)。
- 更新了 javadoc 文档。
- 更新了机器人控制器和驱动站应用程序的发布 .apk 文件。
版本 15.10.06.002
- 添加了对 Legacy Matrix 9.6V 电机/伺服控制器的支持。
- 清理了 build.gradle 文件。
- 驾驶员站和机器人控制器应用程序的小 UI 和错误修复。
- 如果未为旧模块端口 4 或 5 配置超声波传感器 (NXT),则会引发错误。
Release 15.08.03.001
- FTC 驾驶员站和 FTC 机器人控制器应用程序的新用户界面。
- OpMode 类中添加了 init() 方法。
- 对于此版本, init() 在 start() 方法之前触发。
- Eventually, the init() method will be triggered when the user presses an "INIT" button on driver station.
- The init() and loop() methods are now required (ie, need to be overridden in the user's OpMode).
- The start() and stop() methods are optional.
- A new LinearOpMode class is introduced.
- Teams can use the LinearOpMode mode to create a linear (not event driven) program model.
- Teams can use blocking statements like Thread.sleep() within a linear OpMode.
- The API for the Legacy Module and Core Device Interface Module have been updated.
- Support for encoders with the Legacy Module is now working.
- The hardware loop has been updated for better performance.