注意
該存儲庫包含 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()
類似,但用於 init 階段。 - 如果使用者連接了設定為 DirectInput 模式的 Logitech F310 遊戲手柄,則會向使用者發出警告。
- 允許 SPARKmini 馬達控制器對速度變化做出更快的反應。
- 在檢查畫面上隱藏錯誤安裝的姊妹應用程式(即安裝在 RC 裝置上的 DS 或反之亦然)的版本號。
- 新增了對允許使用者編輯 runOpMode 區塊的註解的支援。
- 將parameterDefaultValues 欄位新增至@ExportToBlocks。這為具有 @ExportToBlocks 註解的 java 方法提供了在區塊編輯器中顯示時指定方法參數的預設值的能力。
- 讓 LinearOpMode 區塊更具可讀性。 opmode 名稱顯示在 runOpMode 模組上,但不會顯示在其他 LinearOpMode 模組上。
- 新增了對 TensorFlow 物件偵測的支持,以使用不同的幀生成器而不是 Vuforia。仍然支援使用 Vuforia 將相機幀傳遞給 TFOD。
- 刪除 Renderscript 的使用。
- 修正了與
"Failed resolution of: Landroid/net/wifi/p2p/WifiP2pManager$DeviceInfoListener"
相關的重複堆疊追蹤的應用程式啟動時的日誌垃圾郵件 - 允許從檢查畫面停用藍牙無線電
- 改進了 I2C 設備不回應時的警告訊息
- 新增了對 OpModes 控制 PS4/Etpark 遊戲手把上的 RGB LED 的支持
- 從 OpMode 範例中刪除舊版 Pushbot 引用。將“Pushbot”範例重新命名為“Robot”。馬達方向相反,以與“直接驅動”傳動系統相容。
錯誤修復
- 修正問題 #316(MatrixF.inverted() 對於 1x1 和 2x2 矩陣傳回大小不正確的矩陣)。
- 自檢查現在允許驅動站和機器人控制器在點版本之間相容。
- 修正了以下錯誤:如果同一個
RumbleEffect
物件實例為多個遊戲手把排隊,則可能會發生兩個隆隆指令僅傳送到一個遊戲手把的情況。 - 修正了Driver Station 中的錯誤:在Driver Hub 上,如果高級遊戲手把功能已停用並且連接了官方支援的遊戲手柄,則開啟高級遊戲手把功能或遊戲手把類型覆蓋螢幕將導致遊戲手把被自訂USB 驅動程式反彈高級遊戲手把功能被停用。
- 防止 Vuforia Localizer 中出現(不太可能的)空指標異常。
- 強化 OnBotJava 和區塊保存,以防止與程式和管理斷開連線時出現保存問題
- 修正瞭如果 REV Hub I2C 寫入失敗,則 RC 應用程式將掛起的問題,因為先前的 I2C 操作仍在進行中。這種掛起最常發生在 REV 2M 距離感測器初始化期間
- 刪除 ConceptWebcam.java 範例程式。此範例與 OnBotJava 不相容。
- 修正了在 @ExportToBlocks 註解欄位中使用 html 標籤導致區塊編輯器無法載入的錯誤。
- 修復了區塊編輯器,以便在您未修改任何內容時它不會要求您保存。
- 修正了將非常大的區塊項目上傳到離線區塊編輯器的問題。
- 修正了導致 DcMotorEx 區塊從區塊編輯器工具箱中省略的錯誤。
- 修正了區塊程式被剝離的區塊(由於使用 TensorFlow Label 區塊)
版本 7.1 (20211223-120805)
- 修正了呼叫
isPwmEnabled()
時發生崩潰的問題(問題 #223)。 - 修正了 lint 錯誤(問題 #4)。
- 修正了嘗試使用啟用了高級遊戲手把功能的 DualShock4 v1 遊戲手把時 Driver Station 崩潰的問題(問題 #173)。
- 修復了連接任何類型的遊戲手把時可能(但不太可能)的驅動站崩潰問題。
- 修正了停用高級遊戲手把功能時,Driver Station 將使用 Xbox360 和 Logitech F310 遊戲手把的通用 20% 死區的錯誤。
- 新增了 SimpleOmniDrive 範例 OpMode。
- 加入UVC白平衡控制API。
- 修正了問題 #259 TensorFlow 的大多數區塊範例無法用於其他模型。
- 先前標記為 TensorFlowObjectDetectionFreightFrenzy(來自名為「Optimized for Freight Frenzy」的子類別)和 TensorFlowObjectDetectionCustomModel(來自名為「Custom Model」的子類別)的區塊已替換為標記為 TensorFlowObjectDetection 的區塊。在區塊編輯器中開啟時,現有操作模式中的區塊將自動更新為新區塊。
- 修正了問題 #260 Blocks 無法呼叫具有 VuforiaLocalizer 參數的 java 方法。
- Blocks 現在有一個標記為 VuforiaFreightFrenzy.getVuforiaLocalizer 的區塊。
- 在 /sdcard/FIRST/tflitemodels 中新增了用於管理 TensorFlow Lite 模型的頁面。要存取 TFLite 模型頁面:
- 您可以點擊“管理”頁面底部的連結。
- 您可以點擊 Blocks 項目頁面右上角的連結。
- 修正了在非 RTP 模式下的馬達上呼叫
isBusy()
時的日誌垃圾郵件。 - 隱藏基於電話的機器人控制器的檢查畫面上的「RC 密碼」項目。 (它僅適用於控制集線器)。
- 將頻道 165 新增至設定畫面中的 Wi-Fi Direct 頻道選擇選單。 (165 以前可以透過 Web UI 訪問,但不能在本機應用程式中存取)。
7.0版(20210915-141025)
增強功能和新功能
- 向 OnBotJava 和 Blocks 新增對外部程式庫的支援。
- 在 OnBotJava 中上傳 .jar 和 .aar 檔案。
- 已知限制 - RobotController 裝置必須運行 Android 7.0 或更高版本。
- 已知限制 - 不支援包含資源的 .aar 檔案。
- 外部程式庫可以透過使用 com.qualcomm.robotcore.hardware.configuration.annotations 套件中的註解來提供對硬體設備的支援。
- 外部程式庫可以包含本機程式碼的 .so 檔案。
- 可以從 OnBotJava OpModes 使用外部函式庫。
- 可以從 Blocks 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.ftccommon.external.OnCreate
- org.firstinspires.ftc.ftccommon.external.OnCreateEventLoop
- org.firstinspires.ftc.ftccommon.external.OnCreateMenu
- org.firstinspires.ftc.ftccommon.external.OnDestroy
- org.firstinspires.ftc.ftccommon.external.WebHandlerRegistrar
- 新增對 REV Robotics 驅動程式中心的支援。
- 將完全自訂的使用者空間 USB 遊戲手把驅動程式新增至 Driver Station(請參閱 DS 設定中的「進階遊戲手把功能」選單)。
- 允許遊戲手把在沒有本機 Linux 核心支援的裝置上運作(例如某些羅馬尼亞摩托羅拉裝置)。
- 允許 DS 讀取每個遊戲手把的唯一序號,即使兩個相同型號的遊戲手把掉落,也可以自動恢復掉落的遊戲手把。 (注意:不幸的是,這不適用於 Etpark 遊戲手柄,因為它們沒有唯一的序號) 。
- 讀取唯一的序號還可以配置 DS,預設將遊戲手把分配到某個位置(因此根本不需要執行 start+a/b)。
- Xbox360 遊戲手把上的 LED 環和 PS4 遊戲手把上的 RGB LED 條用於指示遊戲手把綁定的驅動器位置。
- Xbox360、PS4 和 Etpark 遊戲手把上的隆隆聲馬達可以透過 OpMode 進行控制。
- PS4 遊戲手把上的 2 點觸控板可以從 OpModes 讀取。
- 遊戲手把上的「後退」和「引導」按鈕現在可以安全地綁定到機器人控制(以前,在許多裝置上,Android 會在按下主頁按鈕時攔截這些按鈕並關閉應用程式)。
- 進階遊戲手把功能預設為啟用,但可以透過設定選單停用,以便恢復到 Android 原生提供的遊戲手把支援。
- 提高 ping 測量的準確性。
- 修正了最初連接或重新啟動機器人時 ping 時間顯示高於實際情況的問題。
- 要看到全面的改進,您必須更新機器人控制器和駕駛員站應用程式。
- 更新位於 /FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples 的範例。
- 新增了 ConceptGamepadRumble 和 ConceptGamepadTouchpad 範例來說明這些新的 gampad 功能的使用。
- 將現有 Vuforia 範例壓縮為 2 個範例(ConceptVuforiaFieldNavigation 和 ConceptVuforiaFieldNavigationWebcam),展示如何使用 Vuforia 來決定機器人在場地上的位置。這些都使用當前季節的 Target 圖像。
- 新增了 ConceptVuforiaDriveToTargetWebcam 以說明直接駕駛到任何可見 Vuforia 目標的簡單方法。
- 對警告系統和個人警告進行了許多改進。
- 警告現在間隔更大,因此更易於閱讀。
- 針對比賽前應解決的情況添加了新的警告。
- 不匹配的應用程式警告現在使用主要和次要應用程式版本,而不是版本代碼。
- 當安裝新 FTC 季節的機器人控制器應用程式時,警告會自動重新啟用。
- 新增對擴展集線器/控制集線器上的 I2C 事務的支持,無需指定暫存器位址。
- 請參閱 TI I2C 規範的第 3 節。
- 使用 Modern Robotics 硬體時呼叫這些新方法將導致 UnsupportedOperationException。
- 將 VuforiaLocalizer
close()
方法變更為公共方法。 - 新增對 TensorFlow v2 物件偵測模型的支援。
- 減少自檢語言和圖形的歧義。
- OnBotJava 現在會警告潛在的意外文件覆蓋。
- 改進了「管理」網頁上 Wi-Fi 頻段和頻道選擇器的行為。
錯誤修復
- 修正了當驅動站連接時機器人控制器應用程式在 Android 9+ 上崩潰的問題。
- 修正了 OpMode 負責呼叫 TensorFlow TFObjectDetector 關閉的問題。現在這是自動完成的。
- 修復了 Vuforia 初始化區塊以允許使用者選擇 AxesOrder。更新了相關區塊範例操作模式。
- 修復了 FtcRobotController 問題 #114 LED 區塊和 Java 類別不起作用。
- 修正了名稱中包含特殊字元的 OpMode 的匹配日誌記錄。
- 修復瞭如果將 Driver Station 設定為橫向佈局並且在 OpMode 運行時觸發 OnBotJava 構建,則 Driver Station OpMode 控制項變成無響應的問題。
- 修正了 Driver Station 應用程式在關閉或螢幕關閉時自行關閉的問題。
- 修復了舊設備上的“黑色厄運漩渦”(無限“配置 Wi-Fi Direct”訊息)。
- 更新 OnBotJava 介紹頁面上的 wiki 評論。
版本 6.2 (20210218-074821)
增強功能
- 嘗試透過重新刷新韌體來自動修復 Control Hub 的內部擴充集線器無法運作的情況
- 對 Wi-Fi Direct 配對螢幕進行了多項改進,尤其是在橫向模式下
- 當主要活動進入前台時,使機器人控制器服務不再明確重新啟動
- (例如,不再僅透過查看自檢畫面並按後退按鈕來重新啟動服務)
- 如果打開“設定”選單或“配置機器人”選單,它仍然會重新啟動
錯誤修復
- 修正 FtcRobotController 問題 #71 無法在 v6.1 區塊離線編輯器中開啟 OpModes
- 修正了 FtcRobotController 問題 #79 6.1 導致 Motorola E5 Play 軟重啟的問題
- 修正瞭如果 Control Hub 無法與其內部擴展集線器通信,Control Hub 作業系統的看門狗將重新啟動機器人控制器應用程式的問題
- 修正了某些 I2C 裝置未顯示在對應的
HardwareMap
欄位中的問題(例如hardwareMap.colorSensor
) - 修正了在 Control Hub 上執行 Wi-Fi 出廠重置不會將 Wi-Fi 頻段設定為 2.4 GHz 的問題
- 修正瞭如果選擇「配置硬體的設定代碼」選項,OnBotJava 可能無法建立新檔案的問題
- 修正了 OpMode 崩潰後執行某些操作會暫時中斷控制/擴展集線器通訊的問題
- 修正瞭如果啟動時缺少擴展集線器,則配置有 USB 連接擴展集線器的控制集線器將無法工作的問題
- 修正了因控制/擴展集線器韌體版本不匹配而導致的潛在問題
- 修復了 ftc_app 問題 673 RobotLog 正在刪除最新的比賽日誌而不是舊的日誌
- 透過在機器人上正確定位相機來修復 ConceptVuforiaUltimateGoalNavigationWebcam 範例操作模式。
- 修正了當驅動程式站請求停止時 logcat 會收到 InterruptedExceptions 垃圾郵件的問題(此行為是在 v5.3 中意外引入的)。此更改對功能沒有影響。
- 修正瞭如果任何 TeleOp opmode 的名稱包含撇號則區塊編輯器無法載入的問題。
版本 6.1 (20201209-113742)
- 使設定畫面上的掃描按鈕更新透過 RS-485 連接的擴充集線器列表
- 改進了 Web 介面與舊版瀏覽器和 Android 系統 WebView 版本的兼容性。
- 修正了 UVC 驅動程式中的問題,其中某些將幀間隔報告為舍入值而不是截斷值(例如 15FPS 的
666667*100ns
而不是666666*100ns
)的相機(例如某些MS Lifecam)將無法開始串流式傳輸。 - 新增 UVC 驅動程式對虛擬 PTZ 控制的支持
- 增加 UVC 驅動程式對增益 (ISO) 控制的支持
- 在 UVC 驅動程式中新增了對啟用/停用 AE 優先權的支援。此設定提供了一種方法來告訴相機韌體
- A) 它可以低於請求的幀速率,以便提供理論上更好的影像(即曝光時間比所選幀速率允許的幀間週期更長)
- B)必須滿足所選幀速率的幀間截止時間,即使影像可能因此曝光不足
- 新增了對 Control Hub OS 1.1.2 機器人控制器看門狗的支持
- 如果機器人控制器應用程式停止回應超過 10 秒,它將重新啟動
- 新增了在 Android 10+ 上使用 Driver Station 應用程式的支持
- 引入自動 TeleOp 預選功能
- 在驅動程式站的 OpMode 清單下拉清單中 OpMode 名稱旁邊顯示圖標,以指示 OpMode 的來源(即用於建立它的程式設計工具)
- 修正了 Driver Station 應用程式在顯示配置 Wi-Fi Direct 螢幕後退出的問題
- 修正了透過 REV 硬體用戶端存取時的 Blocks 和 OnBotJava 提示
6.0版本(20200921-085816)
重要提示
- 6.0 版本是終極目標賽季的版本。
- 需要 Android Studio 4.0。
- Android Studio 用戶第一次建立應用程式時需要連接到網路(以便下載建置所需的套件)。
- 5.5 版本是 2020 年 8 月淡季期間發布的一個較大的版本。下面的發行說明也值得查看。
- 5.5 及更高版本不適用於較舊的 Android 4.x 和 5.x 手機。用戶必須升級到經批准的 Android 6.x 裝置或更高版本。
- REV 馬達的預設 PIDF 值已恢復為 2018-2019 賽季使用的預設 PID 值
- 進行此更改是因為 2018-2019 年的值對於許多機制來說效果更好
- 這使得 REV 馬達的行為與所有其他馬達的行為一致
- 如果您喜歡 2019-2020 賽季 REV 馬達的行為,以下是現有的 PIDF 值,以便您可以在 OpMode 中手動設定它們:
HD 六角馬達(所有變速箱):速度 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 Goal 視覺目標和範例 OpMode。
- 引入了用於 TensorFlow 物件偵測的數位縮放功能(以更準確地偵測更遠距離的物件)。
- 新增 REV UltraPlanetary HD 六角馬達的配置條目
增強功能
- 將 setGain() 和 getGain() 方法加入到 NormalizedColorSensor 介面
- 透過設定顏色感測器的增益,您可以針對不同的照明條件進行調整。例如,如果您偵測到的顏色值低於預期,則可以增加增益。
- 增益值僅應用於 argb() 和 getNormalizedColors() 方法,而不應用於原始顏色方法。為了易於使用和清晰,建議使用 getNormalizedColors() 方法,因為必須轉換 argb()。
- 更新 SensorColor Java 範例以示範增益用法
- 將 SensorREVColorDistance Java 範例合併到 SensorColor Java 範例中,此範例展示了所有色彩感測器的最佳實踐
- 改進了從 REV 顏色感測器 V3 檢索值的功能
- 更新 RGB 通道的歸一化計算
- 改進了 alpha 通道的計算(可用作整體亮度指示器)
- 修復了預設感測器分辨率,該分辨率導致明亮環境下出現問題
- 增加了對更改 Broadcom 感測器晶片的分辨率和測量速率的支持
- 刪除不適用於 Broadcom 感測器晶片的 IR 讀數和計算
錯誤修復
- 提高了 BNO055IMU IMU 初始化的可靠性,以防止隨機初始化失敗(表現為
Problem with 'imu'
)。
版本5.5(20200824-090813)
5.5版本需要Android Studio 4.0或更高版本。
新功能
- 新增了從 Blocks OpModes 呼叫自訂 Java 類別的支援(修復了 SkyStone 問題 #161)。
- 類別必須位於 org.firstinspires.ftc.teamcode 套件中。
- 為了輕鬆存取 opMode、hardwareMap、遙測、gamepad1 和 gamepad2,類別可以擴展 org.firstinspires.ftc.robotcore.external.BlocksOpModeCompanion。
- 方法必須是公共靜態的且參數不超過 21 個。
- 方法必須使用 org.firstinspires.ftc.robotcore.external.ExportToBlocks 進行註解。
- 支援聲明為 OpMode、LinearOpMode、Telemetry 和 HardwareMap 的參數,並且無論參數的順序如何,都會自動提供參數。在區塊上,這些參數的套接字會自動填入。
- 聲明為 char 或 java.lang.Character 的參數將接受任何傳回文字的區塊,並且僅使用文字中的第一個字元。
- 宣告為 boolean 或 java.lang.Boolean 的參數將接受任何傳回 boolean 的區塊。
- 宣告為 byte、java.lang.Byte、short、java.lang.Short、int、java.lang.Integer、long 或 java.lang.Long 的參數將接受任何傳回數字的區塊,並將該值舍入為最接近的整數。
- 宣告為 float、java.lang.Float、double、java.lang.Double 的參數將接受任何傳回數字的區塊。
- 新增用於設定顯示格式的遙測 API 方法
- 新增了對切換攝影機的區塊支援。
- 使用自訂模型新增對 TensorFlow 物件偵測的 Blocks 支援。
- 新增了在「管理」頁面中上傳自訂 TensorFlow 物件偵測模型的支持,這對於 Blocks 和 OnBotJava 使用者特別有用。
- 使用 Control Hub 按鈕切換 Wi-Fi 頻段時顯示新的 Control Hub 閃爍程式碼(僅適用於 Control Hub OS 1.1.2)
- 新增了新的警告,可以在進階 RC 設定中停用這些警告
- 應用程式版本不匹配警告
- 不必要的 2.4 GHz Wi-Fi 使用警告
- REV Hub 正在運行過時的韌體(早於版本 1.8.2)
- 增加了對索尼 PS4 遊戲手把的支持,並重新設計了遊戲手把在 Driver Station 上的工作方式
- 刪除了根據駕駛員位置設定遊戲手把類型的首選項。替換為允許為未知 VID 和 PID 的遊戲手把指定類型的選單
- 嘗試根據USB VID和PID自動偵測遊戲手把類型
- 如果遊戲手把 VID 和 PID 未知,請使用使用者為該 VID 和 PID 指定的類型
- 如果遊戲手把 VID 和 PID 未知且使用者尚未指定該 VID 和 PID 的類型,則會對如何對應遊戲手把進行有根據的猜測
- Driver Station 現在將嘗試自動從遊戲手把斷開連接中恢復,並將其重新分配到掉落時分配的位置
- 如果只分配了一個遊戲手把並且它掉落了:可以將其恢復
- 如果分配了兩個遊戲手柄,並且具有不同的VID/PID 簽名,並且只有一個掉落:它將被恢復
- 如果分配了兩個遊戲手柄,並且具有不同的VID/PID 簽名,並且兩者都掉落:兩者都將恢復
- 如果分配了兩個遊戲手柄,並且具有相同的VID/PID 簽名,並且只有一個掉落:它將被恢復
- 如果分配了兩個遊戲手柄,並且具有相同的VID/PID 簽名,並且兩者均丟失:則兩者都不會被恢復,因為遊戲手柄重新出現在 USB 總線上時存在模糊性。
- 目前存在一種已知的邊緣情況:如果插入了兩個具有相同VID/PID 簽名的遊戲手柄,但只分配了一個,並且它們都掉落了,則有50-50 的機會選擇其中一個進行自動恢復分配的位置:由 USB 總線控制器首先重新列舉的位置決定。
- 為 Driver Station 新增橫向使用者介面
- 新功能:帶有音訊提示的練習計時器
- 新功能(僅限 Control Hub):無線網路連線強度指示器(0-5 條)
- 新功能(僅限 Control Hub):點擊 ping/通道顯示將切換到顯示無線電 RX dBm 和鏈路速度的備用顯示(再次點擊可切換回來)
- 佈局不會自動旋轉。您可以從 Driver Station 的設定選單切換佈局。
重大變化
- 刪除對 Android 版本 4.4 至 5.1(KitKat 和 Lollipop)的支援。 minSdkVersion 現在是 23。
- 刪除已棄用的
LinearOpMode
方法waitOneFullHardwareCycle()
和waitForNextHardwareCycle()
增強功能
- 自動處理 Control Hub 的 RS485 位址
- Control Hub 會自動取得一個保留位址
- 現有的設定檔將繼續運作
- 1-10 範圍內的所有位址仍可用於擴充集線器
- Control Hub 指示燈現在通常是綠色常亮,不會閃爍來指示地址
- Control Hub 將不會顯示在擴充集線器位址變更設定頁面上
- 改進 REV Hub 韌體更新程序
- 用戶現在可以在所有可用的韌體更新檔案之間進行選擇
- REV Hub 韌體版本 1.8.2 捆綁到機器人控制器應用程式中。
- 新增文字以澄清擴充集線器只能透過 USB 進行更新。
- 降低韌體更新速度以提高可靠性
- 允許直接從管理網頁更新 REV Hub 韌體
- 改進了機器人控制器上的日誌檢視器
- 水平滾動支援(不再自動換行)
- 支援捏合縮放
- 使用等寬字體
- 錯誤訊息突出顯示
- 新配色方案
- 嘗試強制停止失控/卡住的 OpMode,而不重新啟動整個應用程式
- 並非所有類型的失控情況都是可阻止的,但如果用戶代碼在失控期間嘗試與硬體通信,系統應該能夠捕獲它。
- 對自檢螢幕進行各種調整
- 將“作業系統版本”條目重新命名為“Android 版本”
- 將“Wi-Fi Direct 名稱”重新命名為“Wi-Fi 名稱”
- 查看 Control Hub 報告時新增 Control Hub 作業系統版本
- 查看 Control Hub 的報告時隱藏飛航模式條目
- 刪除 ZTE Speed Channel Changer 的檢查
- 顯示所有擴充功能和控制集線器的韌體版本
- 重新設計「管理」頁面的網路設定部分
- 現在只需單擊即可應用所有網路設置
- 現在可以從「管理」頁面變更基於電話的機器人控制器的 Wi-Fi Direct 通道
- Wi-Fi 頻道按頻段(2.4 與 5 GHz)以及是否與其他頻道重疊進行過濾
- 目前的 Wi-Fi 通道是在基於電話的機器人控制器和運行 OS 1.1.2 或更高版本的控制集線器上預先選擇的。
- 在執行 OS 1.1.2 或更高版本的 Control Hub 上,您可以選擇讓系統自動選擇 5 GHz 頻段上的通道
- 改進 OnBotJava
- 新的淺色和深色主題取代了舊主題(chaos、github、chrome...)
- 新的預設主題是
light
,將在您首次更新到此版本時使用
- OnBotJava 現在有一個選項卡式編輯器
- 只讀離線模式
- 改進了機器人控制器和驅動站上「退出」選單項目的功能
- 如果由於無法監視啟動條件而導致 LinearOpMode 過早存在,則顯示警告訊息
- 改進了驅動站和機器人控制器彼此不相容時顯示的錯誤訊息
- 現在,當重新啟動機器人正在進行時,駕駛站 OpMode 控制面板將被停用
- 當機器人控制器是 Control Hub 時,請停用與 Wi-Fi Direct 相關的進階設定。
- 當電量低/嚴重時,為驅動站上的手機電池圖示著色。
- 在新設定檔中使用名稱「Control Hub Portal」和「Control Hub」(如果適用)
- 提高I2C讀取效能
- Control Hub 有了很大的進步;小讀取(例如 6 位元組)時速度提高約 2 倍
- 在連接到手機的擴展集線器上不那麼明顯
- 更新/刷新建置基礎設施
- 從「com.android.support:appcompat」更新到「androidx」支援庫,該庫已停產
- 將targetSdkVersion和compileSdkVersion更新為28
- 將Android Studio的Android插件更新到最新
- 修正「關於」畫面中報告的建置時間戳
- 新增說明手動網路攝影機使用的範例:ConceptWebcam
錯誤修復
- 修復 SkyStone 問題 #248
- 修復了 SkyStone 問題 #232 並修改批次快取語義以允許快取保留手動/自動轉換。
- 提高了 REV 2M 距離感測器拔出時的性能
- 提高了某些裝置上 Toast 訊息的可讀性
- 允許一個驅動站在另一個驅動站斷開連接後連接到機器人控制器
- 改進了不提供真實序號的 UVC 相機的假序號的生成
- 先前,某些裝置會將此類攝影機指派為
0:0
的序列,且無法開啟並開始串流傳輸 - 修復 ftc_app 問題 #638。
- 修正了 Vuforia 相機監視器的一系列錯誤,包括:
- 修復了預覽可能以不穩定的縱橫比顯示的錯誤
- 修復了橫向預覽可能被切斷的錯誤
- 修復了旋轉手機時預覽完全混亂的錯誤
- 修正了使用網路攝影機時十字準線可能偏離目標的錯誤
- 修正了某些裝置 (ftc_app 681) 上連續多次啟動/停止串流媒體時 UVC 驅動程式中的問題
- 問題表現為沒有此內核補丁的設備上的內核恐慌。
- 在安裝了補丁的受影響設備上,問題表現為無法開始串流。
- 技術團隊認為問題的根本原因是 Linux 核心 XHCI 驅動程式中的錯誤。 SDK UVC 驅動程式中實作了一種解決方法。
- 修正了 UVC 驅動程式中的錯誤,該錯誤通常會導致相機中的一半幀被丟棄(例如,在配置為 30FPS 的串流會話期間僅傳輸 15FPS)。
- 修正了 TensorFlow 物件偵測會顯示置信度低於最小置信度參數的結果的問題。
- 修正了 OnBotJava 中 CVE-2019-11358 的潛在利用問題
- 修正了更改連接有其他擴充集線器的擴充集線器的位址的問題
- 選擇「重新啟動機器人」時保留 Control Hub 的網路連接
- 修正了機器人重新啟動時設備掃描失敗的問題
- 修復 RenderScript 的使用
- 使用 androidx.renderscript 變體:增加相容性
- 在 Java 模式下使用 RenderScript,而不是本機:簡化構建
- 修復網路攝影機幀到位圖轉換問題:Alpha 通道未初始化,僅 R、G 和 B
- 修正了 Deadline 中可能出現的算術溢位問題
- 修復了 Vuforia 網路攝影機支援中的死鎖,該死鎖可能導致停止 OpMode 時出現 5 秒的延遲
版本5.4(20200108-101156)
- 修復 SkyStone 問題 #88
- 新增一個檢查項目,記錄機器人控制器(Control Hub)何時使用出廠預設密碼。
- 修復 SkyStone 問題 #61
- 修復 SkyStone 問題 #142
- 透過為 REV 集線器添加更多電流和電壓監控功能,修復了 ftc_app 問題 #417。
- 修正了有時由 OnBotJava 活動引起的崩潰
- 改進 OnBotJava 自動儲存功能 ftc_app #738
- 修正了擴展集線器斷開連接時的系統響應問題
- 修復了 IMU 初始化可能會阻止 OpModes 停止的問題
- 修正瞭如果過早呼叫 AndroidTextToSpeech.speak() 將會失敗的問題
- 添加 telemetry.speak() 方法和塊,使駕駛員站(如果也更新)說出文本
- 添加並改進了與擴展中心相關的警告
- 改進了擴展集線器低電量警告
- 中心報告後立即顯示警告
- 指定條件是目前條件還是在 OpMode 運作期間暫時發生
- 顯示哪些集線器會報告電池電量低
- 當集線器在 OpMode 運作期間斷電和恢復供電時顯示警告
- 當擴展集線器不回應指令時顯示警告
- 指定條件是目前條件還是在 OpMode 運作期間暫時發生
- 澄清了啟動時擴展集線器不存在時的警告
- 指定此情況需要重新啟動機器人才能使用集線器。
- 中心燈現在將準確地反映這種狀態
- 在這些情況下改進日誌記錄並減少日誌垃圾郵件
- 如果驅動程式站不可用,則將 Control Hub 時間和時區同步到對機器人進行程式設計的連接的 Web 瀏覽器。
- 新增 REV Hub 的批次讀取功能
- 必須使用
LynxModule#setBulkCachingMode()
在集線器層級設定批次快取模式。這適用於引用該集線器的所有相關 SDK 硬體類別。 - 以下集線器批次快取模式可用:
-
BulkCachingMode.OFF
(預設):所有硬體呼叫照常運作。批次資料可以透過LynxModule#getBulkData()
讀取並手動處理。 -
BulkCachingMode.AUTO
:適用的硬體呼叫由批次讀取快取提供服務,該快取會自動清除/刷新,以確保相同的命令不會命中相同的快取。也可以使用LynxModule#clearBulkCache()
手動清除緩存,但不建議這樣做。 - (進階使用者)
BulkCachingMode.MANUAL
:與BulkCachingMode.AUTO
相同,只是快取永遠不會自動清除。為了避免獲取過時的數據,必須在每個循環體開始時或在使用者認為適當的情況下手動清除快取。
- 刪除了 Rev 5.3 中新增的 PIDF 註釋值(適用於 AndyMark、goBILDA 和 TETRIX 馬達配置)。
- 新的馬達類型仍然可用,但其預設控制行為將恢復至修訂版 5.2
- 新增新的
ConceptMotorBulkRead
範例 Opmode,以示範和比較馬達批次讀取模式,以減少 I/O 延遲。
版本5.3(20191004-112306)
- 修復了外部 USB/UVC 網路攝影機支援
- 對 Blocks 頁面進行了各種錯誤修復和改進,包括但不限於:
- 許多視覺調整
- 瀏覽器縮放和視窗調整大小表現更好
- 調整 Java 預覽窗格的大小可以在瀏覽器中更好、更一致地工作
- Java 預覽窗格在需要時始終獲得捲軸
- 預設情況下,手機上的 Java 預覽窗格是隱藏的
- Internet Explorer 11 應該可以工作
- 大型下拉清單在下層畫面上正確顯示
- 現在,禁用的按鈕在視覺上可識別為停用
- 如果使用者選擇TFOD樣本,則會顯示警告,但其裝置不相容
- 現在,預設可見一個區塊OPMODE中的警告訊息。
- 將Gobilda 5201和5202電動馬達加入機器人配置器
- 將PIDF註解值加入Andymark,Gobilda和Tetrix Motor配置。這具有導致run_using_encoders和run_to_position模式使用PIDF與PID上的PID閉迴路控制。這應該提供更敏感但穩定的速度控制。 PIDF在基本的PID控制循環中新增了FeedForward控制項。在控制電動馬達的速度時,FeedForward是有用的,因為它「預期」控制電壓必須更改多少以實現新的速度設定點,而不是要求整合的誤差才能充分更改。選擇PIDF值以在輕載電動馬達上提供響應迅速但穩定的速度控制。電動馬達負載越重(拖曳或摩擦),PIDF的改進就越明顯。
- 修復了Android 10的啟動崩潰10
- 修復FTC_APP問題#712(感謝Frogbots-4634)
- 修復FTC_APP問題#542
- 透過RC和DS應用程式命名設備命名時,允許使用“ A”和小寫字母。
版本5.2(20190905-083277)
- 在設定活動中修復外部邊距,並放置新配置按鈕
- 新增Skystone Vuforia圖像目標資料。
- 包括樣本Skystone Vuforia導航Opmodes(Java)。
- 包括樣品Skystone Vuforia導航Opmodes(塊)。
- 為Skystone遊戲元素添加了TensorFlow推理模型(.tflite)。
- 包括樣品Skystone Tensorflow Opmodes(Java)。
- 包括樣品Skystone Tensorflow Opmodes(塊)。
- 去除較舊的(特定於季節的)樣品opmodes。
- 包括64位支援(符合Google Play要求)。
- 當請求重新啟動機器人時,可以防止opmodes。 (感謝Frogbots-4634)(FTC_APP問題#709)
- 區塊相關的變更:
- 當硬體設備名稱是Java或JavaScript保留的單字時,用區塊產生的程式碼修復了錯誤。
- 即使在活動配置中缺少硬體項目時,顯示了區塊產生的Java程式碼。
- 使用過時的Vuforia和TensorFlow區塊時顯示警告圖示(Skystone問題#27)
版本5.1(20190820-222104)
- 為以下馬達定義預設的PIDF參數:
- Rev Core Hex電動機
- 啟20:1 HD十六進位電動機
- Rev 40:1 HD十六進位電動機
- 在沒有系統後紐帶的設備上運行時添加返回按鈕(例如控制輪轂)
- 讓Rev Control Hub透過USB更新Rev擴充中心上的韌體
- 修復Skystone問題#9
- 修復FTC_APP問題#715
- 透過基於當前狀態過濾來防止額外的DS用戶點擊。
- 從RC接收新的OPMODE清單時,可以防止不正確的DS UI狀態更改
- 增加了對Rev Color Sensor V3的支持
- 新增了手動刪除DS相機串流,用於遠端查看RC相機框架。
- 若要顯示DS上的串流,請初始化但不執行啟用串流的OPMODE,請在DS選單中選擇「相機串流」選項,然後點擊影像進行刷新。當使用Vuforia或TFOD時,自動啟用了此功能,典型用例不需要其他RC配置。若要隱藏串流,請再次選擇相同選單項目。
- 請注意,遊戲手把是停用的,並且在以安全性預防措施開放時無法啟動選定的OPMODE。
- 若要使用自訂流,請諮詢
CameraStreamServer#setSource
和CameraStreamSource
的API文件。
- 在RobotController資源中加入了許多《星際大戰》的聲音。
- 新增了Skystone聲音選擇器樣本程式。
- 切換啟動,連接鐘聲以及星球大戰聲音的錯誤/警告聲音
- 更新Onbot Java用於使用Websocket與機器人通信
已知問題:
- 相機串流
- Vuforia攝影機串流繼承了電話預覽中存在的問題(即FTC_APP問題#574)。即使從Vuforia接收幀,此問題也不會影響TFOD相機流。
- 流幀的方向可能並不總是與手機預覽相符。目前,如果需要,這些幀可以透過自訂的
CameraStreamSource
手動旋轉。
- Onbotjava
- 瀏覽器後退按鈕可能並不總是正確工作
- 建造可能會排隊,但沒有開始。如果發生這種情況,Onbot Java建置控制台將顯示警告。
- 如果使用者無意中從一個文件切換到另一個文件,則使用者可能不會意識到他們正在編輯不同的文件,因為這種切換現在是無縫的。目前開啟的文件的名稱顯示在瀏覽器標籤中。
版本 5.0(建置於 2014 年 6 月 19 日)
- 支援 REV 機器人控制中心。
- 將 Java 預覽窗格新增至區塊編輯器。
- 在區塊編輯器中新增新的離線匯出功能。
- 在驅動程式站的網路圓圈中顯示Wi-Fi通道。
- 新增 Logitech C270 的校準
- 更新建置工具和目標 SDK。
- 符合 Google 的權限基礎架構(建置工具更新後需要)。
- 保持Alives減輕摩托羅拉Wi-Fi掃描問題。不再需要遙測替代品。
- 改進了 Vuforia 錯誤報告。
- 修復了 ftctechnh/ftc_app 問題 621、713。
- 各種錯誤修復和改進。
版本4.3(建於18.10.31)
- 包括缺少與TensorFlow相關的程式庫和檔案。
版本4.2(建於18.10.30)
- 包括修復程序以避免使用WatchDogMonitor的死鎖情況,這可能導致USB通訊錯誤。
- COMM錯誤似乎要求用戶斷開USB電纜並重新啟動機器人控制器應用程式以恢復。
- RobotControllerLog.txt將有錯誤訊息,其中包含「 E Robotcore:Lynx Xmit Lock:####放棄鎖定:」一詞。
- 包括修復程式以正確列出設定(.xml)檔案中Rev Robotics擴充集線器的父模組位址。
- 版本4.0和4.1的錯誤將不正確列出父Rev Robotics設備的位址模組為「 1」。
- 如果父模組的位址值高於雛菊鏈的模組,則此錯誤將阻止機器人控制器與下游擴展集線器進行通訊。
- 新增了access_coarse_location的要求,以允許執行Android Oreo的驅動程式站掃描Wi-Fi Direct裝置。
- 新增了google()repo build.gradle,因為必須從Android Gradle外掛程式版本3.2開始從Google()儲存庫下載AAPT2。
- 重要說明:第一次建置FTC_APP專案時,Android Studio使用者將需要連接到Internet。
- 第一個建置需要Internet連接性,因此可以從Google儲存庫下載適當的檔案。
- 使用者不需要連接到Internet進行後續建置。
- 這也應該解決Buid問題,Android Studio會抱怨「找不到com.android.tool.tools.lint:lint-gradle:26.1.4」(或類似)。
- 新增了對Rev Spark Mini馬達控制器的支持,作為Rev擴展集線器上伺服/PWM連接埠的配置選單的一部分。
- 提供範例在OPMODE中播放音訊檔案。
- 區塊開發工具更改
- 包括在FTC技術論壇(Blocks編程子宮)中報告的速度塊問題的解決方案。
- 更改“成功儲存成功”。訊息給白色,因此將與綠色背景形成鮮明對比。
- 修復了“下載映像”功能,因此如果OPMODE中有文字區塊,則可以工作。
- 為Google的Tensorflow Lite技術提供支持,用於2018-2019遊戲的物件進行測試。
- Tensorflow Lite可以從2018 - 2019年遊戲中辨識金礦和銀礦物。
- 包括範例Java和Block Opmodes,以顯示如何確定金塊的相對位置(左,中心,右)。
版本4.1(發行於18.09.24)
變化包括:
- 修復以防止使用不建議的配置註解時崩潰。
- 更改以允許使用第一個全域控制集線器更新腳本自動更新FTC機器人控制器APK。
- 刪除了用於非支援 /非法律硬體的樣品。
- 以「文字」插座對遙測的改良。
- 更新的區塊範例OPMODE清單包括Rover Ruckus Vuforia範例。
- 更新SDK庫版本號。
版本4.0(發行於18.09.12)
變化包括:
對UVC相容攝影機的初步支持
- 如果UVC攝影機具有唯一的序號,RC將透過序號檢測和枚舉。
- 如果UVC攝影機缺少唯一的序號,RC只會支援連接該類型的一台攝影機。
- 包括一些相機的校準設定(有關詳細信息,請參見Teamcode/src/src/src/res/xml/teamwebcamcalibrations.xml)。
- 使用者可以從程式上傳校準檔案並管理Web介面。
- UVC攝影機似乎從USB匯流排中吸收了相當數量的電流。
- 對於Rev Robotics Control Hub來說,這似乎沒有任何問題。
- 當使用基於Android的機器人控制器的某些攝影機時,這似乎確實會造成穩定問題。
- FTC Tech團隊正在調查基於電話的機器人控制器來減輕此問題的選項。
- 更新的範例Vuforia導航和Vumark Opmodes示範如何使用基於電話的相機和外部UVC網路攝影機。
支持改善電動機控制。
- Rev Robotics擴充中心韌體1.8及更大將為閉環電動馬達控制的饋電機理。
- FTC SDK已經過修改以支援PIDF係數(比例,積分,衍生和饋送)。
- FTC塊開發工具已修改以包括PIDF編程塊。
- 貶低了與PID相關的舊方法和變數。
- Rev的1.8.X PIDF相關的變更提供了控制電動馬達的更線性和準確的方法。
無線的
- 也使用其他(目前未批准的)手機(例如三星Galaxy S8)進行了測試。
改進的擴展中心韌體更新支援在機器人控制器應用中
- 更改以使系統在韌體更新過程中(透過Robot Controller應用程式執行)更加健壯。
- 在更新擴展中心的韌體時,使用者不再需要斷開下游雛菊鏈的擴展中心。
- 如果使用者正在透過USB連線更新擴充中心的韌體,則他/她不必中斷與其他擴充集線器的連線連線。
- 用戶仍然必須使用USB連接來更新擴展中心的韌體。
- 使用者無法為透過RS485連接連結的下游設備更新擴充中心韌體。
- 如果擴展中心不小心被「磚塊」「機器人控制器應用程式」掃描USB匯流排時,則更有可能識別該輪轂。
- 機器人控制器應用程式應該能夠檢測到擴展中心,即使在先前的更新嘗試中意外地進行了磚頭。
- 機器人控制器應用程式應該能夠將韌體安裝到集線器上,即使在先前的更新嘗試中偶然地進行了磚塊。
彈性
- FTC軟體可以偵測並啟用FTDI重置功能,該功能可用於Rev Robotics V1.8擴充中心韌體以及更大的功能。
- 啟用後,擴充集線器可以偵測到它是否沒有透過FTDI(USB)連接與機器人控制器通訊。
- 如果在一段時間內沒有從機器人控制器那裡聽到的集線器,它將重置FTDI連接。
- 此動作有助於系統從某些ESD引起的破壞中恢復。
積木
- 用字串和列表索引固定錯誤,以匯出到Java。
- 支援USB連接的UVC網路攝影機。
- 重構優化的區塊Vuforia程式碼支援Rover Ruckus影像目標。
- 添加了編程塊,以支援PIDF(比例,積分,衍生物和前進)電動機控制。
- 新增了格式化選項(在遙測和其他類別下),因此使用者可以設定數量值的小數位數。
- 除了機器人控制器外,還支援在驅動程式站上播放音訊檔案(透過Blocks Web介面上傳)。
- 修復了帶有區塊的下載圖像功能的錯誤。
- 支援Rev Robotics Blinkin LED控制器。
- 支援Rev Robotics 2M距離感測器。
- 增加了對Rev Touch感測器的支援(不再需要將其配置為通用數位裝置)。
- 為dcmotorex方法添加了區塊。
- 這些是在電動機控制器硬體支援時可以使用的增強方法。
- Rev Robotics擴展中心支援這些增強的方法。
- 增強的方法包括獲得/設定電動機速度的方法(每秒編碼器脈衝),get/set pidf係數等。
適度的記錄改進
- 降低電池檢查器電壓語句的頻率。
- 刪除了與非FTC相關的日誌語句(盡可能)。
- 引入了“匹配記錄”功能。
- 在「設定」下,使用者可以啟用/停用此功能(預設是停用的)。
- 如果啟用了,用戶透過驅動程式站使用者介面(螢幕頂部)提供「匹配號」。
- 匹配編號用於建立一個專門使用該特定OPMODE運行的日誌語句的日誌檔案。
- 匹配日誌檔案儲存在機器人控制器上的/sdcard/first/matlogs中。
- OPMODE運作完成後,將清除匹配號。
- 這是建立單獨的匹配日誌的方便方法,其中僅與特定的OPMODE運行相關的語句。
新設備
- 支援Rev Robotics Blinkin LED控制器。
- 支援Rev Robotics 2M距離感測器。
- Rev 20:1 HD十六進位電動馬達新增了配置選項。
- 增加了對Rev Touch感測器的支援(不再需要將其配置為通用數位裝置)。
各種各樣的
- 修復了我們Javadoc文件中加速度和速度的定義中的一些錯誤。
- 增加了在驅動程式站播放音訊檔案的能力
- 當使用者配置擴展集線器時,擴展集線器上的LED將變更眨眼模式(紫色),以指示目前正在配置哪個集線器。
- 將I2CSensortype更名為I2CdeviceType。
- 新增了一個外部樣本OPMODE,該樣本OPMODE使用2018-2019(Qualcomm提出的Rover Ruckus)Vuforia目標展示了本地化。
- 增加了一個外部樣品OPMODE,該樣品示範如何使用Rev Robotics 2M雷射距離感測器。
- 新增了一個外部範例OPMODE,示範如何使用Rev Robotics Blinkin LED控制器。
- 將外部Java範例Opmodes重新分類為“ teleop”,而不是“自主”。
已知問題:
對UVC相容攝影機的初步支持
- UVC攝影機似乎從USB匯流排吸收了大量電流。
- 對於Rev Robotics Control Hub來說,這似乎沒有任何問題。
- 當使用基於Android的機器人控制器的某些攝影機時,這似乎確實會造成穩定問題。
- FTC Tech團隊正在調查基於電話的機器人控制器來減輕此問題的選項。
- 可能會有一個可能的僵局,這會導致RC與Nougat Android機器人控制器一起使用UVC網路攝影機時發出反應。
無線的
- 當使用者選擇無線通道時,如果手機循環電源,此通道不一定會持續存在。
- 自從引入應用程式以來,已經存在問題(即V4.0版本並不是什麼新鮮事)。
- 目前未針對Wi-Fi Direct Connections顯示無線通道。
各種各樣的
- 眨眼指示功能顯示了目前正在設定的擴充集線器不適合新建立的設定檔。
- 使用者必須先儲存新建立的設定文件,然後關閉並重新編輯文件,以便眨眼指示器工作。
版本3.6(建於17.12.18)
變化包括:
- 阻止變化
- 使用更新的Google Blockly軟體,以允許用戶在Apple iOS裝置(包括iPad和iPhone)上編輯其OPMODES。
- 改進區塊工具來處理損壞的OPMODE檔案。
- 自動opmodes重新開啟以進行編輯後,不應再將其切換回電視。
- 現在,系統可以在運行時檢測類型不匹配,並在驅動程式站上發出訊息提醒用戶。
- 更新了SetPower()方法的Javadoc文檔,以反映正確範圍的值(-1至+1)。
- 修改的Vuforialocalizerimpl以允許使用者渲染框架
- 新增了一個可透過class的RenderFrame()方法呼叫的可用使用者跨越的OnRenderFrame()方法。
版本3.5(建於17.10.30)
版本3.5的更改包括:
- 引入了一個修復程序,以防止隨機OPMODE停止,該停止可能會在機器人控制器應用程式被暫停然後恢復後發生(例如,當用戶暫時關閉機器人控制器電話的顯示時,然後重新打開螢幕)。
- 引入了一個修復程序,以防止隨機OPMODE停止,該停止以前是由驅動程式站上的隨機同伴斷開事件引起的。
- 修正了在RC或DS停頓時關閉日誌檔案的問題,但在簡歷時沒有重新開啟。
- 解決電池處理程序(電壓)開始/停止比賽的問題。
- 修正問題,在某些情況下,Android Studio產生的OPMODE會從可用清單中消失的問題。
- 解決問題的問題,即Onbot Java不會在Rev Robotics Control Hub上建置。
- 如果機器人控制器設備上的日期和時間為「倒置」(設定為較早的日期/時間),則修復了Onbot Java無法建置的問題。
- 重命名檔案失敗時會在Onbot Java上進行改進的錯誤訊息。
- 從Android中刪除了不需要的資源。
- 新增了MR_ANALOG_TOUCH_SENSOR BLOCK中區塊編程工具。
版本3.4(建於17.09.06)
版本3.4的更改包括:
- 新增了telemetry.update()語句,用於blanklinearopmode模板。
- 重新命名的樣品塊Opmodes與Java樣品更一致。
- 增加了一些其他樣本塊OPMODE。
- 稍微重新介紹Onbot Java Readme。
版本3.3(建於17.09.04)
該軟體的此版本包括FTC區塊程式設計工具和Onbot Java程式設計工具的改進。
帶有文化3.3的更改包括:
- Android Studio FTC_APP專案已更新以使用Gradle外掛程式2.3.3。
- Android Studio FTC_APP專案已經在使用Gradle 3.5發行版。
- 機器人控制器日誌已重新命名為/sdcard/robotcontrollerlog.txt(請注意,此變更實際上是w/v3.2引入的。
- I2C可靠性的提升。
- 優化的I2C讀取了Rev Expance Hub,具有V1.7韌體或更大的韌體。
- 更新了所有外部/樣品(透過Onbot和Android Project資料夾獲得)。
- 烏福里亞
- 對2017-2018賽季比賽將使用的Vumarks的支持增加了。
- 積木
- 更新到最新的Google Blockly版本。
- 建立新的OPMODE時,可以選擇範例OPMODE作為範本。
- 修正了滑鼠按鈕按下時塊將暫時消失的錯誤。
- 新增了用於範圍的區塊。
- 用戶現在可以停用/啟用塊OPMODE。
- 修復以防止偶爾障礙物僵局。
- Onbot Java
- Onbot Java編輯器的自動完成功能的重大改進。
- 建立新的OPMODE時,可以選擇範例OPMODE作為範本。
- 修復和更改以完成硬體設定功能。
- 更新(更有用)的歡迎訊息。
已知問題:
- 安卓工作室
- 在更新新的v3.3 Android Studio Project資料夾後,如果收到指示「 InvalidVirtualFileAccessException」的錯誤訊息,則可能需要執行檔案 - >無效的caches / restart以清除錯誤。
- Onbot Java
- 有時,當您按下建置按鈕建置所有OPMODE時,RC會傳回建置失敗的錯誤訊息。如果您第二次按建置按鈕,則建置通常會成功。
版本3.2(建於17.08.02)
該版本的軟體介紹了「 Onbot Java」開發工具。與FTC區塊開發工具類似,FTC Onbot Java開發工具允許使用者僅使用啟用JavaScript的網頁瀏覽器動態創建,編輯和建立OPMODES。
Onbot Java開發工具是由機器人控制器提供的整合開發環境(IDE)。使用啟用JavaScript的瀏覽器建立和編輯OPMODE(建議使用Google Chromse)。 OpModes直接保存在機器人控制器Android設備上。
Onbot Java開發工具提供了一個不需要Android Studio的Java程式設計環境。
版本3.2的更改包括:
已知問題:
- 自動完成功能不完整,且不支援以下功能(目前):
- 透過此關鍵字訪問
- 透過超級關鍵字訪問
- 超級罐子的成員,不被班級覆蓋
- 當前類別中提供的任何方法
- 內部類別
- 無法處理鑄造的對象
- 來自括號內封閉表達式的任何對象
版本3.10(建於17.05.09)
此版本的軟體為Rev Robotics擴展中心提供了支援。此版本還包括改進USB通訊層,以提高系統彈性。如果您先前使用過該軟體的2.x版本,則更新版本3.1還要求您除了更新機器人控制器軟體外還要更新驅動程式站軟體。
另請注意,在3.10版中,不再可用的SetMaxSpeed和GetMaxSpeed方法(不棄用,已從SDK中刪除它們)。另請注意,新的3.X軟體包含了用戶在配置機器人時可以選擇的電動設定檔。
變化包括:
- 阻止變化
- 新增了vuforiaTrackabledEfaultListener.getPose和vuforia.TrackPose區塊。
- 新增了對Vuforia擴展追蹤的優化區塊支援。
- 新增了ATAN2區塊中的數學類別。
- 新增了useCompetitionFieldTargetLocations參數到Vuforia.Initialize Block。若設定為false,則按https://github.com/gearsincorg/ftcvuforiademo/blob/master/master/master/robot_navigation.java tutorial opmode中指定,將目標位置放在(0,0,0)的附有目標方向的(0,0,0)。
- 結合了USB通訊層的其他改進,以提高系統彈性(從更多的溝通中斷中恢復)。
有關3.00版的其他註釋(建於17.04.13)
除了下面列出的發行版變更(請參閱標記為「 3.00版(建置17.04.013)」的部分),版本3.00還具有以下重要變更:
- 版本3.00軟體使用FTC Robocol的新版本(機器人協定)。如果您在機器人控制器和/或Android Studio方面升級到v3.0,則您還必須升級驅動程式站軟體以匹配新的Robocol。
- 版本3.00軟體從DCMotor類別移除SetMaxSpeed和GetMaxSpeed方法。如果您有先前使用這些方法的OPMODE,則需要刪除這些方法的參考/呼叫。相反,v3.0透過在機器人配置期間使用使用者選擇的馬達配置檔案提供最大速度資訊。
- 3.00版的軟體目前沒有停用額外I2C感測器的機制。我們希望在不久的將來透過發布來重新引入此功能。
3.00版(建於17.04.13)
***使用此版本的軟體自行風險! ***
該軟體作為“ alpha”版本發布。使用此版本自負!
此預發行軟體包含重大變化,包括對Wi-Fi直接配對機制的更改,I2C感測器類別的重寫,USB/FTDI層的更改以及對Rev Robotics Explionion Hub的支援以及Rev Robotics的引入顏色範圍的感測器。實施了這些變更以提高FTC控制系統的可靠性和彈性。
但是,請注意,該版本3.00被視為“ alpha”代碼。該程式碼正在發布,以便第一個社群將有機會在5月可用時測試新的Rev擴展集線器電子模組。開發人員不建議將此程式碼用於關鍵應用程式(即競爭使用)。
***使用此版本的軟體自行風險! ***
變化包括:
- 與感測器相關的基礎設施的重大返工。包括重寫感測器類別以實現同步I2C通訊。
- 修復以重置自主定時器,回到30秒。
- 實施經批准的12V馬達(包括Tetrix,Andymark,Matrix和Rev Models)的特定馬達設定檔。
- 適度的改進以增強Wi-Fi P2P配對。
- 修復遙測日誌競賽。
- 發布所有來源(不僅僅是少數幾個)。
- 包括區塊編程改進
- 新增了優化的Vuforia區塊。
- 自動在項目和聲音頁面上自動捲動。
- 修復了塊糊狀錯誤。
- 區塊在while-opModeSactive循環後執行(在退出OPMODE之前允許清理)。
- 新增了Gyro IntegratedZvalue區塊。
- 用專案頁面修復了Firefox瀏覽器的專案頁面。
- 在AndroidTextTospeech中新增了Isspeaking Block。
- 實作對Rev Robotics擴展集線器的支持
- 實作對Inteval Rev IMU的支援(實體安裝在I2C匯流排0上,使用相同的BOSCH BNO055 9軸絕對方向感測器與Adafruit 9DOF ABS方向感測器)。 - 實施對彩色/範圍/光感測器的支援。
- 提供支援以透過FTC SDK更新擴充中心韌體。
- 檢測Rev韌體版本和日誌檔案中的記錄。
- 包括對Rev Control Hub的支援(請注意,Rev Control Hub尚未批准用於FTC使用)。
- 實作FTC塊編程支援Rev擴展集線器和感測器硬體。
- 檢測和警報I2C設備斷開連接時。
版本2.62(建於17.01.07)
- 在finishModesWitchifn的「現代企業」中,新增了NULL指標檢查,然後撥打ModeTobyte()。
- 更改以增強現代機器人的USB協議魯棒性。
版本2.61(發行於16.12.19)
- 區塊編程模式更改:
- 解決異常時的修復以糾正問題,因為在硬體地圖(第二次作為照明器)中出現了兩次光學介紹對象。
版本2.6(發行於16.12.16)
- 修復Gyro類別:
- 區塊編程模式更改:
- 如果名稱為空,則該區塊現在忽略配置XML中的設備。其他設備在配置中運作正常。
版本2.5(發行於16.12.13發行的內部版本)
- 區塊編程模式更改:
- 增加了對Adafruitbno055imu的支援。
- 新增到ftcbocks.html下載OPMODE按鈕。
- 新增了在一個OPMODE中複製區塊並將其貼到另一個OPMODE中的支援。剪貼簿內容儲存在手機上,因此編程模式伺服器必須運作。
- 工具箱的修改實用程式部分。
- 在程式模式下,顯示有關活動連接的資訊。
- 固定貼上的位置時,在滾動空間滾動時。
- 新增了對Android加速度計的支援。
- 修正了第一個點封鎖上傳opmode截斷名稱的問題。
- 新增了對Android Soundpool的支援。
- 在加速度的區塊中加入了類型的安全性。
- 為Adafruitbno055imu.parameters添加了類型的安全性。
- 將安全性添加到類似物的塊中。
- 為區塊添加了類型的安全性。
- 新增了類型安全性的色塊。
- 為Colorensor添加了類型的安全性。
- 在CompassSensor中新增了類型的安全性。
- 新增了CRSERVO區塊的類型安全性。
- 在數位管道的區塊中加入了類型的安全性。
- 添加了類型的安全性,以供大塊以進行彈路。
- 在遊戲板的區塊中加入了類型的安全性。
- 為旋風感測器添加了類型的安全性。
- 為IrseekerSensor添加了類型的安全性。
- 為LED塊增加了類型的安全性。
- 為Lightsensor新增了類型的安全性。
- 在線性電磁塊中加入了類型的安全性。
- 添加了類型的安全性,以用於磁場的塊。
- 新增了類型的安全性,以用於矩陣的區塊。
- 在MRI2CCOMPASSSENSOR的區塊中加入了類型的安全性。
- 在MRI2Crangesensor的區塊中加入了類型的安全性。
- 為opticalDistancesSensor添加了類型的安全性。
- 在區塊中新增了類型的安全性,以進行方向。
- 在位置區塊中新增了類型安全性。
- 為四個區塊增加了類型的安全性。
- 新增了類型的安全性在伺服器的區塊中。
- 新增了式安全性的安全性,以用於伺服控制器。
- 為遙測塊增加了類型的安全性。
- 在溫度的區塊中增加了類型的安全性。
- 新增了鍵入式觸控索子的鍵入安全性。
- 為超音波傳動系統的塊增加了類型的安全性。
- 為vectorf的區塊增加了類型的安全性。
- 新增了類型安全性的速度塊。
- 為電壓感測器添加了類型的安全性。
- 為Vuforialocalizer.Parameters添加了類型的安全性。
- 為VuforiaTrackable新增了類型的安全性。
- 為VuforiaTrackables添加了類型的安全性。
- 在adafruitbno055imu.parameters中新增了類型的安全性。
- 為AndroidAccelerometer,AndroidgyRoscope,Androidorientation和AndroidTextTospeech添加了類型的安全性。
版本2.4(發行於16.11.13)
- 修復以避免為不存在的資源崩潰。
- 區塊編程模式更改:
- 新增了區塊以支援OpenGlMatrix,MatrixF和Vectorf。
- 新增了區塊以支援Angleunit,Axesorder,AxesReference,Cameradirection,Cameramonitorfeptback,DanceNunit和Tempunit。
- 添加了塊以支援加速度。
- 新增了區塊以支援LineAropMode.getRuntime。
- 添加了塊以支撐磁性流量和位置。
- 固定錯字。
- 與其他物件更一致的Elapsed Time的區塊。
- 添加了塊以支持季節,速度,方向,角效率。
- 新增了區塊,以支援VuforiaTrackables,VuforiaTrackable,Vuforialocalizer,VuforiaTrackabledEfaultListener。
- 修復了幾個區塊。
- 新增了類型檢查到新區塊。
- 更新為最新區塊。
- 在導航和矩陣區塊中新增了預設變數區塊。
- 修正了OpenGLMATRIX_ROTATION_WITHAXESARGS的工具箱條目。
- 當使用者下載區塊產生的OPMODE時,僅下載.blk檔案。
- 當使用者上傳區塊產生的opmode(.blk檔案)時,會自動產生JavaScript程式碼。
- 新增了DBGlog支援。
- 讀取/編寫區塊檔案時新增了日誌記錄。
- 即使從設定檔中遺失設備,也修復了錯誤以正確渲染區塊。
- 新增了對區塊檔案名稱(用於下載和上傳)的其他字元(不僅僅是字母數字)的支援。
- 對OPMODE風味(“自動”或“ teleop”)和組的支持增加了支持。
- 更改樣品以防止教學問題。
- 將公共拉動216(“替換..路徑”)的建議更改。
- 機器人停止時,請刪除伺服故障。
- 如果使用者在編輯設定檔時點擊“取消”,請清除未儲存的變更並將其還原為原始未修飾的配置。
- 新增了日誌訊息,以幫助診斷為什麼終止機器人控制器應用程式(例如,透過手錶狗功能)。
- 增加了從控制器傳輸日誌的能力。
- 固定的斜桿性不一致
- 限制遙測資料的無限成長。如果使用者不及時呼叫線性電磁線的telemetry.update(),則如果超過尺寸限制,則新增的遙測資料可能會遺失。
2.35版(發行於16.10.06)
- Blockly程式模式 - 從區塊中刪除了未透明的IDLE()呼叫新項目。
版本2.30(發行於16.10.05)
- 阻止程式模式:
- 新增的機制可將Blockly Opmodes從編程模式伺服器儲存到本機設備
- 為了避免混亂,區塊顯示在分類的資料夾中
- 增加了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.