知らせ
このリポジトリには、INTO THE DEEP (2024 ~ 2025) コンテスト シーズンのパブリック FTC SDK が含まれています。
いらっしゃいませ!
この GitHub リポジトリには、 FIRST Tech Challenge 競技ロボットを制御する Android アプリを構築するために使用されるソース コードが含まれています。この SDK を使用するには、プロジェクト全体をローカル コンピューターにダウンロード/クローン作成します。
要件
この Android Studio プロジェクトを使用するには、Android Studio 2021.2 (コード名 Chipmunk) 以降が必要です。
Blocks または OnBot Java でロボットをプログラムするには、Android Studio は必要ありません。
はじめる
ロボット工学に慣れていない場合、またはFIRST Tech Challenge に初めて参加する場合は、制御システムの使用方法に慣れるために FTC Blocks チュートリアルを検討することを検討してください。
FTC ブロックのオンライン チュートリアル
上級 Java プログラマであっても、FTC Blocks チュートリアルから始めて、その後 OnBot Java Tool または Android Studio に移行すると役立ちます。
プロジェクトのダウンロード
Android Studio プログラマーの場合、このリポジトリをダウンロードするにはいくつかの方法があります。 Blocks または OnBot Java Tool を使用してロボットをプログラムする場合は、このリポジトリをダウンロードする必要がないことに注意してください。
- git ユーザーの場合は、リポジトリの最新バージョンのクローンを作成できます。
git clone https://github.com/FIRST-Tech-Challenge/FtcRobotController.git
または、必要に応じて、メイン リポジトリ ページから利用できる [Download Zip] ボタンを使用することもできます。プロジェクトを .ZIP ファイルとしてダウンロードすると、ダウンロードのサイズが管理しやすい大きさに保たれます。
このリポジトリの「リリース」ページの「ダウンロード」サブセクションからプロジェクト フォルダーを (.zip または .tar.gz アーカイブ ファイルとして) ダウンロードすることもできます。
リリース ページには、事前に構築された APK も含まれています。
フォルダーをダウンロードして (必要に応じて) 解凍したら、Android Studio を使用してフォルダーをインポートできます (「プロジェクトのインポート (Eclipse ADT、Gradle など)」)。
助けを求める
ユーザードキュメントとチュートリアル
FIRST は、 FIRST Tech Challenge ソフトウェアとロボット制御システムの使用方法に関する情報とチュートリアルを含むオンライン ドキュメントを維持しています。次のリンクを使用してこのドキュメントにアクセスできます。
FIRST テクノロジー チャレンジのドキュメント
オンライン ドキュメントは、常に更新および編集される「常緑の」ドキュメントであることに注意してください。 FIRST Tech Challenge ソフトウェアおよび制御システムに関する最新情報が含まれています。
Javadoc 参考資料
FTC SDK の Javadoc リファレンス ドキュメントがオンラインで入手できるようになりました。 FTC SDK Javadoc ドキュメントをライブ Web サイトとして表示するには、次のリンクをクリックします。
FTC Javadoc ドキュメント
オンラインユーザーフォーラム
制御システムまたは FTC SDK に関する技術的な質問については、FIRST Tech Challenge Community サイトにアクセスしてください。
FIRST テック チャレンジ コミュニティ
サンプル OpMode
このプロジェクトには、サンプル 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 にあります。
- カラー センサー用の Blocks サンプル プログラムを追加しました: 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 が追加されました
- テレメトリは double と float をフォーマットするようになりました (オブジェクト内ではなく、それ自体のみで)
- Limelight 3A のサポートを追加します。
- REV サーボ ハブの初期サポートを追加
- サーボ ハブをサーボ ハブとして構成できるようにするには、ロボット コントローラーとドライバー ステーションの両方をバージョン 10.0 に更新する必要があります。いずれかのデバイスのアプリが古い場合、サーボ ハブは拡張ハブとして表示され、一部の機能が期待どおりに動作しません。 Driver Station アプリとロボット コントローラー アプリの両方がバージョン 10.0 に更新されるまで、サーボ ハブを含む構成の作成を待つ必要があります。
- 現時点では、サーボ ハブのファームウェアの更新とアドレスの変更は、REV ハードウェア クライアントを使用してのみ実行できます。
- REV 9 軸 IMU のサポートを追加 (REV-31-3332)
- REV 9 軸 IMU は、ユニバーサル IMU インターフェイスでのみサポートされます。
-
Rev9AxisImuOrientationOnRobot
Java クラスを追加します。 - この IMU の I2C ポートをコントロール ハブの USB ポートに置き換えると、
RevHubOrientationOnRobot
もこのセンサーと互換性があります。 - RevHubImuOrientationOnRobot.xyzOrientation および RevHubImuOrientationOnRobot.zyxOrientation を含む Rev9AxisImuOrientationOnRobot のブロックを追加します。
- ブロック サンプル SensorRev9AxisIMUOrthogonal および SensorRev9AxisIMUNonOrthogonal を追加します。
- RevHubImuOrientationOnRobot のブロックのサポートを改善します。
- RevHubImuOrientationOnRobot.xyzOrientation および RevHubImuOrientationOnRobot.zyxOrientation のブロックを追加します。
- ブロック サンプル SensorHubIMUOrthogonal (SensorIMU を置き換える) と SensorHubIMUNonOrthogonal を追加します。
- EasyOpenCV、AprilTag、OpenCV、および
libjpeg-turbo
バージョンを更新します - 2 つの数値を取る最大値と最小値のブロックを追加します。
- ブロック OpModes ConceptRevSPARKMini、RobotAutoDriveByEncoder、RobotAutoDriveByGyro、RobotAutoDriveByTime、RobotAutoDriveToAprilTagOmni、および RobotAutoDriveToAprilTagTank を追加します。
- 同じ名前を持つ 2 つの OpMode の名前が、名前の後ろに「-」とクラス名を付けて自動的に変更されるようになり、両方がデバイス上に存在できるようになります。
- ロボット コントローラー コンソールの [管理] ページにアクティブな構成の名前が表示されます。
- INTO THE DEEP の AprilTag ライブラリを更新しました。特に、
getCurrentGameTagLibrary()
INTO THE DEEP タグを返すようになりました。 - Telemetry.setMsTransmissionInterval および Telemetry.getMsTransmissionInterval のブロックを追加します。
- Blocks サンプル SensorOctoQuad を追加します。
バグ修正
- RevBlinkinLedDriver ブロックがブロック エディター ツールボックスのアクチュエーターの下にあったバグを修正しました。これらは「その他のデバイス」になりました。
- ドライバー ステーションによって停止が要求された後にユーザー コードでスローされた
Exception
が黙って食べられるバグを修正しました。 - デバイスが報告した単位とは異なる単位で
AngularVelocity
を要求した場合、ラジアンの場合は -PI と PI、度の場合は -180 と 180 の間で正規化されるバグを修正しました。
バージョン 9.2 (20240701-085519)
重要な注意事項
- TensorFlow オブジェクト検出の Java クラスとブロックは非推奨となり、バージョン 10.0 で削除される予定です。
- TensorFlow Object Detection を使用するサンプルは削除されました。
機能強化
- 検査活動の不合格項目に説明文を追加します。説明テキストを表示するには、失敗したアイテムの赤い警告アイコンをタップします。
- ブロック エディター: 変数を設定し、新しい値を返す新しい種類の変数セット ブロックを追加しました。
- SwitchableCamera のカメラ コントロールの動作方法を変更します。これで、各メソッド (ExposureControl の getExposure、getMinExposure、getMaxExposure、setExposure など) が現在アクティブなカメラに作用します。
- REV USB PS4 互換ゲームパッドのサポートを追加 (REV-31-2983)
- ConceptAprilTagMultiPortal OpMode を追加
- OctoQuad直交エンコーダおよびパルス幅インターフェースモジュールのサポートを追加
- AprilTagLibrary を返す静的メソッドが Blocks プログラミング環境にエクスポートされることを示す ExportAprilTagLibraryToBlocks アノテーションを追加します。対応するブロックが、組み込みのタグ ライブラリとともに [ブロック] ツールボックスに表示されます。
- OpMode ConceptAprilTagOptimizeExposure ブロックを追加します。
- SparkFun 光学トラッキング オドメトリ センサーのサポートを追加します。
バグ修正
- visionPortal.close() が IndexOutOfBoundsError を引き起こす可能性がある #942 を修正しました。
- ブロック エディターで、折りたたまれた機能ブロックに「折りたたまれたブロックには警告が含まれています」という警告が表示されるバグを修正しました。 Blocks OpMode が再度開かれたとき。
- 終了しようとしたときに、ブロック エディターが未保存の変更があることを警告しないバグを修正しました。このバグは、Chrome 119 の動作変更により発生しました。
- 問題 #764 - ゲイン コントロールを取得すると、切り替え可能なカメラの null ポインターが返される
- 高度なゲームパッド機能が有効になっている場合、特定のゲームパッドの正しいデッドゾーンが適用されないバグを修正
バージョン 9.1 (20240215-115542)
機能強化
- ブロックに関する問題を修正しました。ユーザーがブロックの警告バルーンを閉じた場合、次回ブロック エディターでプロジェクトを開いたときもバルーンは閉じられたままになります。
- ブロック エディタでは、欠落しているハードウェア デバイスを使用するすべてのブロックが無効になっている場合、欠落しているハードウェア デバイスに関するアラートは表示されません。
- プロパティ値 CRServo.Direction、DCMotor.Direction、DCMotor.Mode、DCMotor.ZeroPowerBehavior、DigitalChannel.Mode、GyroSensor.HeadingMode、IrSeekerSensor.Mode、および Servo.Direction の比較をサポートするブロックを、対応する列挙ブロックに追加します。
- 特定の状況で使用される場合にクラスを正しくインポートできるように OnBotJava 自動インポートを改善しました。
- OnBotJava オートコンプリートを改善し、ほとんどの場合により優れた補完オプションを提供します。
- これにより、2 つ以上の仮パラメータを持つメソッドが定義されている場合にオートコンプリートが失敗する問題が修正されます。
- OnBotJava では、コードセクションを展開および折りたたむためのコード折りたたみサポートが追加されました。
- OnBotJava では、新しいファイルを読み込むと著作権ヘッダーが自動的に折りたたまれるようになりました。
- すべての Blocks OpMode サンプルでは、イントロ コメントが RunOpMode コメント バルーンに移動されました。
- ブロック エディターのブロックのクリーンアップ コマンドは、コメント バルーンが他の関数ブロックと重ならないように関数ブロックを配置するようになりました。
- Blocks OpMode サンプル SensorTouch を追加しました。
- Java OpMode サンプル SensorDigitalTouch を追加しました。
- VisionPortal のいくつかの改善
- VisionPortal Builder での
.build()
呼び出しに続いてストリームを自動的に開始するかどうかを制御するオプションを追加します。 - ビジョン処理統計オーバーレイをレンダリングするかどうかを制御するオプションを追加します
- VisionPortal は
CameraStreamSource
インターフェイスを実装するようになり、マルチポータル ユーザーが CameraStreamServer.getInstance().setSource(visionPortal) を呼び出すことで INIT で DS にルーティングされるポータルを選択できるようになりました。カメラ ストリーム セッション間でゲームパッドを介して選択できます。 - キャリブレーション警告を抑制するオプションを
AprilTagProcessor
に追加 - カメラのキャリブレーション警告を改善します
- キャリブレーションがスケーリングされる場合、スケーリング元の解像度がリストされます。
- 間違ったアスペクト比のキャリブレーションが存在する場合、キャリブレーションされた解像度がリストされます。
- VisionPortal で
stopStreaming()
の直後にclose()
を呼び出したときにアプリのクラッシュを引き起こす競合状態を修正しました。 - VisionPortal を構築した直後に
stopStreaming()
を呼び出すときの IllegalStateException を修正しました。 - FTC ブロックに相当するものを新しい Java メソッドに追加しました。
- 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 日以降、ドライバー ステーションが v9.0 で廃止されたと報告され、ユーザーに更新を求める問題が修正されました。
バージョン 9.0 (20230830-154348)
重大な変更
- ヴフォリアを削除します
AprilTagDetection
とAprilTagPose(ftc/raw)
オブジェクトのフィールドがfinal
なりました- VisionPortal ビルダー メソッド
setCameraMonitorViewId()
名前がsetLiveViewContainerId()
に変更され、 enableCameraMonitoring()
名前がenableLiveView()
に変更されました。
機能強化
- DFRobot HuskyLens ビジョン センサーのサポートを追加します。
- Blocks チームは Web カメラのキャリブレーションを実行できるようになりました。
- System.currentTimeMillis のブロックを追加しました (Utilities/Time の下)
- VisionPortal.saveNextFrameRaw のブロックを追加しました (Vision/VisionPortal の下)
- UtilityCameraFrameCapture という新しいサンプル Blocks OpMode を追加しました。
- RobotDriveByGyro サンプルは、新しいユニバーサル IMU インターフェイスを使用するように更新されました。両方の IMU タイプをサポートするようになりました。
- エラーが発生しやすい一部の ElapsedTime ブロックをブロック エディターのツールボックスから削除しました。これは重大な変更ではありません。これらのブロックを使用する古いブロック OpMode は、ブロック エディターと実行時の両方で引き続き機能します。
- OpMode という用語を「OpMode」という形式で標準化します。
- 特に
LinearOpMode
(ブロック OpMode を含む) を拡張する OpMode を参照する好ましい方法は、「linear OpMode」です。 - 特に
OpMode
直接拡張する OpMode を参照する好ましい方法は、「反復 OpMode」です。
-
OpMode
およびLinearOpMode
Javadoc コメントをオーバーホールして、読みやすくなり、より詳細な情報が含まれるようになりました。 - Java サンプルにマイナーな機能拡張を加えます。
- Android Studio で正しくレンダリングされない可能性があるサンプル内の Javadoc コメントは、標準の複数行コメントに変換されました。
- サンプル間の一貫性が向上しました
- SensorDigitalTouch サンプルは、
DigitalChannel
の代わりにTouchSensor
インターフェイスを使用する新しい SensorTouch サンプルに置き換えられました。 - ConceptCompassCalibration、SensorMRCompass、および SensorMRIRSeeker のサンプルは、最新の FTC コンテストには役に立たないため、削除されました。
バグ修正
- PlayStation ゲームパッドを Bluetooth モードで使用できないバグを修正しました。 Bluetooth は競技では合法ではありませんが、充電中やアウトリーチ イベントで DS デバイスを使用できるようにするのに役立つ場合があります。
- Blocks OpMode の編集中にコントロール ハブが再起動されると、Blocks OpMode の変更日の値が 1969 年 12 月 31 日に変更される可能性があるバグを修正しました。
- 自動 TeleOp 事前選択機能を修正しました (8.2 で壊れていました)
- 数値を受け取る Telemetry.addData ブロックに 123 などの整数値を渡すと、テレメトリで 123.0 として表示されるバグを修正します。
- OnBotJava のオートコンプリートの問題を修正します。
- ローカル変数をオートコンプリートするときに、オートコンプリートが現在のクラスの値を誤って提供する
hardwareMap
オートコンプリートにラムダ クラス エントリが誤って含まれる
- OnBotJava がクラスを自動的にインポートしない問題を修正しました。
- ファイルが削除されたときに OnBotJava タブが閉じない問題を修正しました。
- OnBotJava でファイルの名前が変更されたときにプロジェクト ビューの更新が行われない問題を修正しました。
- OnBotJava インターフェイスの外部ライブラリの [ダウンロード] コンテキスト メニュー項目を修正しました。
- 等幅モードに設定すると、ドライバー ステーションのテレメトリが断続的にフリーズする問題を修正しました。
- バージョン 8.2 で導入された特定の REV ハブ操作のパフォーマンスの低下を修正しました。
- DriveToTag サンプルの TagID 比較ロジックを修正しました。
バージョン 8.2 (20230707-131020)
重大な変更
- 非線形 (反復) OpMode では、
stop()
メソッドでアクチュエーターを操作できなくなりました。そうしようとしても無視され、ログに記録されます。- OpMode がアクチュエータを不正に操作しようとすると、ロボット コントローラーは
CANCELLED_FOR_SAFETY
テキストを含むログ メッセージを出力します。 - さらに、LinearOpMode は、スレッドの割り込みを削除するか、別のスレッドを使用することによって、アクチュエーターを操作する機能を取り戻すことができなくなります。
- Android バージョン 6.0 (Marshmallow) のサポートを削除します。 minSdkVersion は 24 になりました。
- ロボコルのバージョンを上げます。
- これは、8.2 以降のロボット コントローラーまたはドライバー ステーションは、8.1 以前のドライバー ステーションまたはロボット コントローラーと通信できないことを意味します。
- 両方のアプリを同時に更新するのを忘れた場合、どちらのアプリが古いため更新する必要があるかを説明するエラー メッセージが表示されます。
- FTC_FieldCooperativeSystemDefinition.pdf が移動されました。これはまだ git 履歴にありますが、8.2 タグに対応する git スナップショットからは削除されました。正式バージョンは現在フィールド座標系にあります。
-
LynxUsbDevice.addConfiguredModule()
およびLynxUsbDevice.getConfiguredModule()
はLynxUsbDevice.getOrAddModule()
に置き換えられました。 - Vuforia および TensorFlow Object Detection の古いブロックは廃止され、ブロック エディターのツールボックスから削除されました。 Vuforia または TensorFlow Object Detection の古いブロックを含む既存のブロック OpMode は、ブロック エディターで開くことができますが、実行することはできません。
新機能
- コンピューター ビジョン用の新しい
VisionPortal
API を追加- この API は、最終的なキックオフ リリースに向けて変更される可能性があります。
- いくつかの新しいサンプルが追加されました。
- AprilTags の検出のサポートを追加します。
-
VisionPortal
AprilTag 処理と TFOD 処理の両方の新しいエントリ ポイントです。 - Vuforia は将来のリリースで削除される予定です。
- TensorFlow の依存関係を更新しました。
- ウェブカメラのカメラ コントロールのサポートをブロックに追加しました。
- ブロック エディターのツールボックスには、ユーティリティ カテゴリのすぐ上にビジョン カテゴリが追加されました。
- 関連テクノロジーの関連ドキュメントは、次の場所にあります。
- Aprilタグの紹介
- AprilTag SDK ガイド
- AprilTagの検出値
- AprilTag テスト画像
- カメラのキャリブレーション
- Logitech Dual Action および Sony PS5 DualSense ゲームパッドに対する Driver Station のサポートを追加します。
- これには、Sony PS5 DualSense Edge ゲームパッドのサポートは含まれません。
- 競技におけるゲームパッドの合法性を判断するには、常にゲームマニュアル 1 を参照してください。
- MJPEG ペイロード ストリーミングのサポートを UVC ドライバーに追加します (使用には外部 JPEG 解凍ルーチンが必要です)。
- バインドされていないゲームパッド上でボタンが押されたとき、またはスティックが動かされたときに、ゲームパッドをバインドする方法に関するヒントを Driver Station UI に表示します。
- Driver Station に「カメラ ストリーム」を全画面表示するオプションを追加します。
- OnBotJava ソース コードは、ビルドごとに ZIP ファイルとして自動的に保存され、最新 30 ビルドのローリング ウィンドウが保持されます。コードが誤って削除または破損した場合に、以前のビルドからソース コードを復元できます。
- USB 経由で直接接続されていない拡張ハブのアドレス変更のサポートを追加します。
- 拡張ハブのアドレス変更画面に、画面を離れることなくアドレスを変更できる「適用」ボタンが追加されました。
- 同じ USB 接続またはコントロール ハブに接続されている他のハブに割り当てられているアドレスは選択できなくなります。
- ブロックのインライン コメントの最大サイズを 100 文字に増加します
- 開いているブロックのコメントバルーンの位置を保存します
- 新しい AprilTag Driving サンプルを追加: RobotDriveToAprilTagTank および RobotDriveToAprilTagOmni
- AprilTag のカメラ露出の最適化を示すサンプルを追加: ConceptAprilTagOptimizeExposure
バグ修正
AndroidManifest.xml
で指定されたバージョンではなく、ライブラリで定義された SDK バージョンを使用してアプリのバージョンをレポートするように検査画面を修正しました。これにより、アプリが一致するバージョン番号をユーザーに表示しても、バージョンが一致しないと表示されるケースが修正されます。-
AndroidManifest.xml
で指定されたバージョンが SDK バージョンと一致しない場合、SDK バージョンのエントリが管理 Web ページに表示されます。
- Driver Station から重複した名前を持つ構成ファイルを保存するときにエラーが表示されない問題を修正しました。
- OpenFTC/EasyOpenCV#57 で発生した UVC ドライバーのデッドロックを修正しました。
- カメラのホットプラグ時に発生する可能性がある UVC ドライバーのデッドロックを修正しました。
- Arducam OV9281 グローバル シャッター カメラとの UVC ドライバーの互換性を修正しました。
- 重複した OpMode 名を持つ OnBotJava ビルドが発生した場合の緊急停止条件を修正しました。
- 「閉じられた LynxModule インスタンスの使用試行」ログスパムの既知の原因を修正します。
- RS-485 経由で接続された拡張ハブを構成する際の視覚的な識別 LED パターンを修正しました。
バージョン 8.1.1 (20221201-150726)
これは、次の 4 つの問題に対処するためのバグ修正のみのリリースです。
- 問題 #492 - 新しいブロック opmode を作成できない。
- 問題 #495 - OpMode の Telemetry オブジェクトから最終修飾子を削除します。
- 問題 #500 - Driver Station アプリが 8.1 に更新されている場合、一部のデバイスを構成できない
- ロボット コントローラー アプリまたはドライバー ステーション アプリのいずれかを 8.1.1 以降に更新すると、この問題は解決します。
- Modern Robotics のタッチ センサーはデジタル デバイスとして構成可能でした。アナログデバイスとしてのみ使用できます。
バージョン 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
を非推奨 (および尊重を停止) します。
機能強化
- 新しい
IMU
インターフェイスを Blocks と Java に追加します。これは、すべての古いコントロール ハブおよび拡張ハブに含まれるオリジナルの BNO055 IMU と、新しい代替 BHI260AP IMU の両方で使用できます。- Web インターフェイスの [管理] ページに移動すると、コントロール ハブにどのタイプの IMU があるかを確認できます。
- 新しい
IMU
インターフェイスの使用方法については、https://ftc-docs.firstinspires.org/programming_resources/imu/imu.html を参照してください。 SensorIMU
ブロック サンプルも新しいIMU
インターフェイスを使用するように更新され、次の Java サンプルが追加されました。-
SensorIMUOrthogonal
- REV ハブがロボットの底面と平行または垂直になるように取り付けられている場合は、このサンプルを使用してください。
-
SensorIMUNonOrthogonal
- REV ハブが他の方向でロボットに取り付けられている場合は、このサンプルを使用してください。
-
ConceptExploringIMUOrientations
- この OpMode は、直交方向がどのように機能するのか、どの方向がロボットに適用されるのかを理解するのに役立つツールです。
- BHI260AP IMU には、新しい
IMU
インターフェイス経由でのみアクセスできます。 BNO055 IMU は、新しいIMU
インターフェイスを使用してプログラムすることも、古いBNO055IMU
インターフェイスを使用して引き続きプログラムすることもできます。 BHI260AP IMU を含む新しいコントロール ハブにすぐに切り替えられるようにするには、新しいIMU
インターフェイスを使用するようにコードを移行する必要があります。 - REV ハブがロボットに平らに取り付けられている場合にのみ正しく機能した古い
BNO055IMU
インターフェイスとは異なり、 IMU
インターフェイスを使用すると、ロボット上の REV ハブの向きを指定できます。これを考慮して、REV ハブの特別な座標系ではなく、ロボット座標系で方向を示します。その結果、REV ハブが水平の場合ではなく、ロボットが水平の場合、ピッチとヨーは 0 になり、ほとんどの取り付け方向でより信頼性の高い方向角度値が得られます。 - 新しいロボット中心の座標系のため、
IMU
インターフェイスから返されるピッチ角とロール角は、 BNO055IMU
インターフェイスから返されるものとは異なります。コードを移行するときは、ドキュメントに細心の注意を払ってください。 - BNO055 を校正している場合は、
BNO055IMUNew.Parameters
インスタンスをIMU.initialize()
に渡すことで、その校正データを新しいIMU
インターフェイスに提供できます。 -
IMU
インターフェイスは、四元数の形式で方向を提供することをサポートするサードパーティ ベンダーによる IMU の実装にも適しています。
- 反復
OpMode
( LinearOpMode
とは対照的に) は専用スレッドで実行されるようになりました。- サイクル時間は、システム内で起こっている他のすべての影響をそれほど受けるべきではありません。
- Slow
OpMode
によってネットワーク コマンドの処理にかかる時間が増加することはなくなり、その逆も同様です。 -
init()
、 init_loop()
、 start()
、およびloop()
メソッドは、特定の時間枠内に戻る必要がなくなりました。
- BNO055 IMU レガシー ドライバー: 1 つの OpMode で初期化する機能を復元し、別の OpMode でその初期化を再利用します。これにより、必要に応じて、OpMode 間で 0 ヨー位置を維持できます。
- FTC SDK 内のカスタマイズされたバージョンのデバイス ドライバーが同じ XML タグを使用できるようにします。
- 以前は、デバイス ドライバーをカスタマイズしたい場合は、それを新しいクラスにコピーし、新しい XML タグを与える必要がありました。新しい XML タグを与えるということは、使用するドライバーを切り替えるには、構成ファイルを変更する必要があることを意味します。
- カスタム ドライバーを使用するには、
hardwareMap.get()
を呼び出すときにカスタム ドライバーのクラスを指定するだけです。元のドライバーに戻すには、元のドライバー クラスを指定します。元のドライバーとカスタム ドライバーの両方によって実装されるインターフェイスを指定した場合、どちらの実装が返されるかは保証されません。
バグ修正
- 「TensorFlow Lite モデルの管理」および「サウンドの管理」リンクへのアクセス、および REV ハードウェア クライアントからのブロックおよび OnBotJava OpMode ダウンロードの実行を修正しました。
- 前回の OpMode 実行で割り当てられたパラメータを使用して I2C デバイス ドライバが自動初期化される問題を修正しました。
- 横向きレイアウトでの Driver Station ポップアップ メニューの配置を改善しました。
- RC 電話機の Blocks OpMode で未設定の BNO055 IMU を取得しようとしたときの NullPointerException を修正しました。
- 変数の名前が
orientation
である場合のブロックの問題を修正します。
バージョン 8.0 (20220907-131644)
重大な変更
- ロボコルのバージョンを上げます。
- これは、8.0 以降のロボット コントローラーまたはドライバー ステーションは、7.2 以前のドライバー ステーションまたはロボット コントローラーと通信できないことを意味します。
- 両方のアプリを同時に更新するのを忘れた場合、どちらのアプリが古いため更新する必要があるかを説明するエラー メッセージが表示されます。
- I2C デバイスの初期化は、
HardwareMap
から初めてデバイスを取得するときに行われるようになりました。- 以前は、実際に使用するかどうかに関係なく、OpMode の実行が開始される前に、すべての I2C デバイスが初期化されていました。これにより、パフォーマンスが低下し、不要な警告が表示される可能性があります。
- この変更により、Java ユーザーにとって、 OpMode の Init フェーズ中に
HardwareMap
から必要なデバイスをすべて取得することが非常に重要になります。つまり、OpMode が使用するハードウェア デバイスごとに変数を宣言し、それぞれに値を割り当てます。実行フェーズ中にこれを行わないでください。そうしないと、取得しているデバイスの初期化中に OpMode が一時的にハングする可能性があります。 - 構成ファイルで指定されたすべての I2C デバイスを使用しない OpModes は、初期化にかかる時間が短くなります。指定されたすべての I2C デバイスを使用する OpModes には、以前と同じ時間がかかるはずです。
- 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 でキャッチされなかった例外に Restart Robot が必要なくなりました
- スタックトレースを伴うブルー スクリーンのポップアップは SDK エラーではありません。これにより、テレメトリ領域の赤いテキストが置き換えられます。
- 最初の SDK リリース以来、OpMode のクラッシュによりロボットは「緊急停止」状態になり、例外の最初の行のみが表示され、続行するにはユーザーが「ロボットの再起動」を押す必要がありました。
- OpMode 中の例外では、ログ ビューアと同じ配色のポップアップ ウィンドウが開くようになりました。このウィンドウには 15 行の例外スタックトレースが含まれており、ADB 経由でログを表示するために接続したり、大量のログをスクロールしたりすることなく、問題の行を簡単に追跡できます。ログビューアで。
- ポップアップ ウィンドウ内の例外テキストは、Web ページと同様にズームとスクロールの両方が可能です。
- ポップアップ ウィンドウで [OK] ボタンを押すと、ドライバー ステーションのメイン画面に戻り、「ロボットの再起動」を実行することなく、すぐに OpMode を再度実行できるようになります。
- ハードウェア クラスを使用してロボット アクチュエーターを抽象化し、複数の OpMode 間で共有することを示す新しい Java サンプルを追加しました。
- サンプル OpMode は ConceptExternalHardwareClass.java です
- 抽象化されたハードウェア クラスは RobotHardware.java です
- REV 制御/拡張ハブ IMU を使用するように RobotAutoDriveByGyro_Linear Java サンプルを更新します。
- Vuforia サンプルを更新して、PowerPlay アセットを参照し、イメージ ターゲットの名前とフィールドの場所が正しくなるようにします。
- PowerPlay アセットを参照するように TensorFlow サンプルを更新します。
- Java 8 言語機能のオプトイン サポートを OnBotJava エディターに追加します。
- オプトインするには、[OnBotJava 設定] を開き、
Enable beta Java 8 support
をオンにします。 - Java 8 コードは、ロボット コントローラーが Android 7.0 Nougat 以降を実行している場合にのみコンパイルされることに注意してください。
- ここで問題を報告してください。
- OnBotJava では、ビルド エラーをクリックすると、正しい場所に正しくジャンプするようになりました。
- OnBotJava のオートコンプリートの動作が改善され、ほとんどの場合により良い補完オプションが提供されます。
- 競争の検査官によるスキャンのためにドライバーステーションから閲覧したときに、ロボットコントローラー検査レポートにQRコードを追加します。
- 一部のシナリオでは、I2Cのパフォーマンスと信頼性が向上します。
バージョン7.2(20220723-130006)
変化を破る
- ビルドツールを更新します。 Android Studioユーザーの場合、この変更にはAndroid Studio Chipmunk 2021.2.1が必要です。
- 最新のロボティクスコアコントロールモジュール、マトリックスコントローラー、およびhitechnic/NXTコントローラーとセンサーなど、競合リーガルではないデバイスのサポートを削除します。最新のロボットI2Cセンサーのサポートが残っています。
強化
- ドライバーステーションの3ドットのランドスケープメニュータッチエリアの高さを上げると、選択がはるかに簡単になります。
- Opmodesがすぐにクリーンに自己排除できるようにするために、
terminateOpModeNow()
メソッドを追加します。 -
opModeInInit()
メソッドをLinearOpMode
に追加して、init-loopsを容易にします。 opModeIsActive()
に似ていますが、initフェーズの場合。 - DirectInputモードに設定されているLogitech F310 GamePad接続がある場合、ユーザーに警告します。
- Sparkmini Motor Controllerがより迅速に反応して、速度の変化を可能にします。
- 誤ってインストールされている姉妹アプリ(つまり、RCデバイスにインストールされているDSまたはその逆)のバージョン番号を検査画面に隠します。
- ユーザーがRunoPModeブロックのコメントを編集できるようにするためのサポートを追加します。
- parameterDefaultValuesフィールドを@exporttoBlocksに追加します。これにより、 @exporttoBlocksアノテーションを備えたJavaメソッドの機能が提供され、ブロックエディターに表示されたときにメソッドパラメーターのデフォルト値を指定します。
- LinearOpModeブロックをより読みやすくします。 OpMode名はRunoPModeブロックに表示されますが、他のLinearOpModeブロックには表示されません。
- Vuforiaの代わりに、異なるフレームジェネレーターを使用するためのTensorflowオブジェクト検出にサポートを追加しました。 Vuforiaを使用してカメラフレームをTFODに渡すこともサポートされています。
- RenderScriptの使用を削除します。
-
"Failed resolution of: Landroid/net/wifi/p2p/WifiP2pManager$DeviceInfoListener"
関連する繰り返しのスタックトレースのアプリの起動にlogspamを修正します。 - 検査画面からBluetooth無線を無効にすることができます
- I2Cデバイスが応答していない場合、警告メッセージが改善されます
- opmodesからPS4/ETPARKゲームパッドに存在するRGB LEDを制御するためのサポートを追加します
- Opmodeサンプルからレガシープッシュボット参照を削除します。 「プッシュボット」サンプルを「ロボット」に変更します。モーターの方向は、「ダイレクトドライブ」ドライブトレインと互換性があるように逆転しました。
バグ修正
- 修正問題#316(matrixf.inverted()は、1x1および2x2マトリックスに対して誤ったサイズのマトリックスを返しました)。
- 自己検査により、ポイントリリース間のドライバーステーションとロボットコントローラーの互換性が可能になりました。
- 同じ
RumbleEffect
オブジェクトインスタンスが複数のゲームパッドに対してキューに掲載された場合、両方のランブルコマンドが1つのゲームパッドに送信されることが起こる可能性があります。 - ドライバーステーションでバグを修正します。ドライバーハブでは、高度なゲームパッド機能が無効で正式にサポートされているゲームパッドが接続されている場合、高度なゲームパッド機能またはゲームパッドタイプのオーバーライド画面を開くと、カスタムUSBドライバーによってゲームパッドがリバウンドされます。高度なゲームパッド機能は無効になりました。
- Vuforia Localizerの(ありそうもない)Null Pointer例外から保護します。
- onbotjavaを強化し、ブロックを節約して、プログラムから切断して管理するときに問題を防ぐために保護します
- 以前のI2C操作がまだ進行中であったため、REVハブI2Cの書き込みが失敗した場合、RCアプリがハングする場所の問題を修正します。これは、Rev 2M距離センサーの初期化中に最も一般的に発生しました
- ConceptWebcam.javaサンプルプログラムを削除します。このサンプルは、onbotjavaと互換性がありません。
- @exporttoBlocksコメントフィールドでHTMLタグを使用すると、ブロックエディターがロードできない場合のバグを修正します。
- 修正ブロックエディターを修正しても、何も変更していない場合は保存するように求められません。
- 修正非常に大きなブロックプロジェクトをオフラインブロックエディターにアップロードします。
- Dcmotorexのブロックをブロックエディターツールボックスから省略したバグを修正します。
- 修正ブロックプログラムは、ブロックを削除しました(Tensorflowラベルブロックを使用しているため)
バージョン7.1(20211223-120805)
-
isPwmEnabled()
呼び出すときにクラッシュを修正します(問題#223)。 - リントエラーを修正します(問題#4)。
- DualShock4 V1 GamePadを使用しようとするときにドライバーステーションのクラッシュを修正します。
- あらゆるタイプのゲームパッドを接続するときに、可能な(ただしありそうもない)ドライバーステーションのクラッシュを修正します。
- 高度なゲームパッド機能が無効になったときに、ドライバーステーションがXbox360およびLogitech F310ゲームパッドにジェネリック20%デッドゾーンを使用するバグを修正します。
- SimpleomNidriveサンプルOpmodeを追加しました。
- UVCホワイトバランスコントロールAPIを追加します。
- 修正問題#259 Tensorflowのほとんどのブロックサンプルは、別のモデルには使用できません。
- 以前にtensorflowobjectdetectionfreightfrenzy(「貨物frenzyに最適化された」という名前のサブカテゴリから)およびtensorflowobjectdetectioncustmel(「custom model」という名前のサブカテゴリから)とラベル付けされたブロックは、tensorflowobjectdectionというラベルの付いたブロックに置き換えられました。既存のOPMODEのブロックは、ブロックエディターで開いたときに新しいブロックに自動的に更新されます。
- 問題#260ブロックは、Vuforialocalizerパラメーターを持つJavaメソッドを呼び出すことができません。
- ブロックには、このためのvuforiafreightfrenzy.getvuforialocalizerというラベルの付いたブロックがあります。
- /sdcard/first/tflitemodelsのTensorflow Liteモデルを管理するページを追加しました。 Tfliteモデルページにアクセスするには:
- [管理]ページの下部にあるリンクをクリックできます。
- 右上のザブロックプロジェクトページのリンクをクリックできます。
-
isBusy()
モードではなくモーターで呼び出される場合、logspamを修正します。 - 電話ベースのロボットコントローラーの検査画面に「RCパスワード」アイテムを隠します。 (コントロールハブにのみ適用できます)。
- 設定画面にチャンネル165をWi-Fiダイレクトチャネル選択メニューに追加します。 (165は以前はWeb UIで利用可能でしたが、アプリではローカルではありませんでした)。
バージョン7.0(20210915-141025)
拡張機能と新機能
- Onbotjavaとブロックに外部ライブラリのサポートを追加します。
- onbotjavaに.jarおよび.aarファイルをアップロードします。
- 既知の制限-RobotControllerデバイスはAndroid 7.0以上を実行している必要があります。
- 既知の制限 - 資産を含むAARファイルはサポートされていません。
- 外部ライブラリは、com.qualcomm.robotcore.hardware.configuration.Annotationsパッケージの注釈を使用して、ハードウェアデバイスのサポートを提供できます。
- 外部ライブラリには、ネイティブコード用の.soファイルを含めることができます。
- 外部ライブラリは、onbotjava 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.servotys
- 次の注釈を使用する外部ライブラリは、ロボットコントローラーに新しい機能を追加できます。
- org.firstinspires.ftc.ftcommon.external.oncreate
- org.firstinspires.ftc.ftcommon.external.oncreateeventloop
- org.firstinspires.ftc.ftcommon.external.oncreatemenu
- org.firstinspires.ftc.ftcommon.external.ondestroy
- org.firstinspires.ftc.ftcommon.external.webhandlerregistrar
- Rev Robotics Driver Hubのサポートを追加します。
- 完全にカスタムユーザースペースUSBゲームパッドドライバーをドライバーステーションに追加します(DS設定の「Advanced GamePad機能」メニューを参照)。
- GamePadがネイティブLinuxカーネルサポートのないデバイスで動作できるようになります(例えば、ルーマニアのモトローラデバイスなど)。
- DSは各ゲームパッドの一意のシリアル番号を読み取ることができ、同じモデルの2つのゲームパッドがドロップした場合でも、ドロップされたゲームパッドの自動回復を可能にします。 (注:残念ながら、これはETPARKゲームパッドには適用されません。これは、一意のシリアルがないためです) 。
- 一意のシリアル番号を読むと、DSを設定して、デフォルトでゲームパッドを特定の位置に割り当てる機能も提供されます(したがって、Start+A/Bを行う必要はまったくありません)。
- Xbox360ゲームパッドのLEDリングとPS4ゲームパッドのRGB LEDバーは、ゲームパッドがバインドされているドライバーの位置を示すために使用されます。
- Xbox360、PS4、およびETPARKゲームパッドのランブルモーターは、OPMODESから制御できます。
- PS4ゲームパッドの2ポイントのタッチパッドは、opmodesから読み取ることができます。
- ゲームパッドの「バック」と「ガイド」ボタンをロボットコントロールに安全にバインドできるようになりました(以前は、多くのデバイスで、Androidはホームボタンを押してアプリを閉じるためにこれらのボタンを傍受します)。
- Advanced GamePad機能はデフォルトで有効になっていますが、Androidがネイティブに提供するGamePadサポートに戻すために、[設定]メニューで無効にする場合があります。
- ping測定の精度を向上させます。
- ロボットに最初に接続または再起動するときに、ping時間が現実よりも高いと示された場合の問題。
- 完全な改善を確認するには、ロボットコントローラーとドライバーステーションアプリの両方を更新する必要があります。
- /ftcrobotcontroller/src/main/java/org/firstinspires/ftc/robotcontroller/external/サンプルにあるサンプルを更新します。
- これらの新しいガンパッド機能の使用を説明するために、ConceptGamePadRumbleおよびConceptGamePadtouchPadサンプルを追加しました。
- 既存のVuforiaサンプルは、Vuforiaを使用してフィールド上のロボットの位置を決定する方法を示す2つのサンプル(ConceptVuforiaFieldNavigation&ConceptiaForiaFieldNavigationWebcam)にわずか2つのサンプルになります。これらは両方とも、現在のシーズンのターゲット画像を使用します。
- conceptvuforiadriveTotargetwebcamを追加して、目に見えるvuforiaターゲットに直接駆動する簡単な方法を示しています。
- 警告システムと個別の警告に多くの改善を行います。
- 警告は今でははるかに間隔を空けているため、読みやすくなります。
- 競合する前に解決すべき条件に対して新しい警告が追加されました。
- 不一致のアプリ警告は、バージョンコードではなく、メジャーおよびマイナーアプリバージョンを使用するようになりました。
- 新しいFTCシーズンからのロボットコントローラーアプリがインストールされている場合、警告は自動的に再度有効になります。
- レジスタアドレスを指定せずに、拡張ハブ /コントロールハブのI2Cトランザクションのサポートを追加します。
- Ti i2c仕様のセクション3を参照してください。
- 最新のRoboticsハードウェアを使用するときにこれらの新しい方法を呼び出すと、UnsportedoperationExceptionが発生します。
- vuforialocalizer
close()
メソッドを公開します。 - Tensorflow V2オブジェクト検出モデルのサポートを追加します。
- 言語とグラフィックを自己検査する曖昧さを軽減します。
- Onbotjavaは、意図しないファイルの上書きについて警告しています。
- Wi-Fiバンドおよびチャネルセレクターの管理Webページでの動作を改善します。
バグ修正
- ドライバーステーションが接続するときに、Android 9+でロボットコントローラーアプリのクラッシュを修正します。
- Tensorflow tfobjectdetectorのシャットダウンを呼び出す責任がある場合の問題を修正します。これが自動的に行われます。
- ユーザーがAxesOrderを選択できるようにするために、Vuforia初期化ブロックを修正します。関連するブロックサンプルオペモードを更新しました。
- FTCROBOTCONTROLLER ISUST#114 LEDブロックを修正し、Javaクラスが機能しません。
- 名前に特殊文字を含むOPMODEのログを一致させます。
- ドライバーステーションがランドスケープレイアウトに設定され、Opmodeの実行中にOnbotjavaビルドがトリガーされた場合、ドライバーステーションのオペモード制御が反応しなくなります。
- ドライバーステーションアプリが離れたときに閉じる、または画面がオフになったときに閉じます。
- 古いデバイスで「Black Swirl of Doom」(Wi-Fi Direct "メッセージの構成)を修正します。
- onbotjavaイントロページのwikiコメントを更新します。
バージョン6.2(20210218-074821)
強化
- コントロールハブの内部拡張ハブがファームウェアを再フラッシュすることで機能しない状態を自動的に修正しようとする試み
- 特にランドスケープモードで、Wi-Fiダイレクトペアリング画面にさまざまな改善を行います
- メインアクティビティが前景に持ち込まれたときに、ロボットコントローラーサービスを明確に再起動しないようにします
- (たとえば、自己検査画面を表示して戻るボタンを押すだけで、サービスが再起動されなくなりました)
- [設定]メニューまたは[ロボットの構成]メニューが開いている場合でも再起動されています
バグ修正
- FTCROBOTCONTROLLER ISUST#71を修正するv6.1ブロックオフラインエディターでOpmodesを開くことができません
- FTCROBOTCONTROLLER ISUST#79 6.1を修正すると、Motorola E5プレイでソフトリブートが発生します
- コントロールハブが内部拡張ハブと通信できなかった場合、コントロールハブOSのウォッチドッグがロボットコントローラーアプリを再起動する場合の問題を修正します
- 適切な
HardwareMap
フィールドに表示されない特定のI2Cデバイス( hardwareMap.colorSensor
など)を修正します - コントロールハブでWi-Fiファクトリーリセットを実行しても、Wi-Fiバンドを2.4 GHzに設定しない場合、問題を修正します
- 「構成されたハードウェアのセットアップコード」のオプションが選択された場合、onbotjavaが新しいファイルの作成に失敗する可能性がある場合の問題を修正します
- OPMODEクラッシュの後に特定の操作を実行すると、コントロール/拡張ハブ通信が一時的に破損する問題を修正します
- 設定されたUSB接続拡張ハブを備えたコントロールハブが、スタートアップで拡張ハブが欠落している場合に機能しない場合の問題を修正します
- コントロール/拡張のハブファームウェアバージョンを不一致にすることによって引き起こされる潜在的な問題を修正します
- FTC_APP Issue 673最新のマッチログは、robotlogによって古いマッチログの代わりに削除されています
- ロボットにカメラを正しく向けて、conceptvuforiaultimegoalnavigationwebcamサンプルオペモードを修正します。
- ドライバーステーションから停止が要求されたときにlogcatが中断されたエクセプションでスパムされる場合の問題(この動作は誤ってv5.3で導入されました)。この変更は機能に影響を与えません。
- Telleop Opmodeの名前にアポストロフィが含まれている場合、ブロックエディターが読み込まれない場合の問題を修正します。
バージョン6.1(20201209-113742)
- 構成画面上のスキャンボタンを作成しますRS-485で接続された拡張ハブのリストを更新します
- 古いブラウザおよびAndroidシステムWebViewバージョンとのWebインターフェイスの互換性を改善します。
- UVCドライバーの修正問題(特定のMSライフカムなど)が、15fpsの場合は
666667*100ns
の代わりに666666*100ns
など)を報告した一部のカメラ(特定のMS Lifecamsなど)がストリーミングを開始できません。 - 仮想PTZコントロールのUVCドライバーにサポートを追加します
- ゲイン(ISO)制御のためにUVCドライバーにサポートを追加します
- AEの優先順位を有効/無効にするために、UVCドライバーにサポートを追加します。この設定は、カメラファームウェアにどちらかを伝える手段を提供します
- a)理論的に優れた画像を提供するために、要求されたフレームレートをアンダーシュートできます(つまり、選択したフレームレートのフレーム間期間よりも長い露出が可能になります)
- b)結果として画像が露出不足になる場合でも、選択したフレームレートのフレーム間期限を満たす必要があります
- コントロールハブOS 1.1.2ロボットコントローラーウォッチドッグのサポートを追加
- ロボットコントローラーアプリが10秒以上応答を停止すると再起動されます
- Android 10+でドライバーステーションアプリを使用するためのサポートを追加します
- 自動テレオープ事前選択機能を紹介します
- 詳細と使用ガイドについては、このwikiエントリをご覧ください
- ドライバーステーションのOpmodeリストのドロップダウンのOpMode名の横にあるアイコンを表示して、Opmodeのソースを示します(つまり、作成するために使用されるプログラミングツール)
- Wi-Fiダイレクト画面の構成を表示した後、ドライバーステーションアプリが終了する場所の問題を修正します
- REVハードウェアクライアントを介してアクセスすると、ブロックと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モーターの動作をもたらします
- Rev Motorsの2019-2020シーズンの動作を希望する場合は、Opmodesで手動で設定できるように、PIDF値を次に示します。
HD HEXモーター(すべてのギアボックス):速度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が含まれており、究極の目標スタータースタック(4つのリング対シングルリングスタック)を検出します。
- Vuforia究極の目標ビジョンターゲットとサンプルオプモードが含まれます。
- Tensorflowオブジェクトの検出用のデジタルズーム機能を紹介します(距離が遠くなるとオブジェクトをより正確に検出します)。
- Rev UltraplanetaryHD HEXモーターの構成エントリを追加
強化
- setgain()およびgetGain()メソッドをremarizedColorSensorインターフェイスに追加します
- カラーセンサーのゲインを設定することにより、さまざまな照明条件に合わせて調整できます。たとえば、予想よりも低い色の値を検出すると、ゲインを増やすことができます。
- ゲイン値は、argb()およびgetnormalizedColors()メソッドにのみ適用され、生の色のメソッドではありません。 Argb()を変換する必要があるため、getnormalizedcolors()メソッドを使用するために推奨されます。
- Sensorcolor Javaサンプルを更新して、ゲインの使用量を実証します
- SensorRevColordistance JavaサンプルをSensorcolor Javaサンプルにマージします。これは、すべてのカラーセンサーのベストプラクティスを紹介します
- REVカラーセンサーV3からの取得値を改善します
- RGBチャネルの正規化計算を更新します
- アルファチャネルの計算を改善します(全体的な輝度インジケーターとして使用できます)
- 明るい環境で問題を引き起こしたデフォルトのセンサー解像度を修正します
- Broadcomセンサーチップの解像度と測定レートを変更するためのサポートを追加します
- Broadcomセンサーチップ向けではないIRの測定値と計算を削除します
バグ修正
- ランダムな初期化の障害を防ぐために、BNO055IMU IMU初期化の信頼性を向上させます(
Problem with 'imu'
として現れました)。
バージョン5.5(20200824-090813)
バージョン5.5には、Android Studio 4.0以降が必要です。
新機能
- ブロックOpmodesからカスタムJavaクラスを呼び出すためのサポートを追加します(Skystone Issue#161を修正)。
- クラスはorg.firstinspires.ftc.teamcodeパッケージにある必要があります。
- Opmode、HardwareMap、Telemetry、GamePad1、およびGamePad2に簡単にアクセスできるように、クラスはorg.firstinspires.ftc.robotcore.external.blocksopmodecompanionを拡張できます。
- メソッドはパブリック静的であり、21個以下のパラメーターを持つ必要があります。
- 方法は、org.firstinspires.ftc.robotcore.external.exporttoblocksで注釈を付けなければなりません。
- Opmode、LinearOpmode、Telemetry、およびHardwareMapとして宣言されたパラメーターがサポートされており、パラメーターの順序に関係なく、引数は自動的に提供されます。ブロックでは、これらのパラメーターのソケットが自動的に入力されます。
- CharまたはJava.lang.Characterとして宣言されたパラメーターは、テキストを返すブロックを受け入れ、テキストの最初の文字のみを使用します。
- ブールまたはjava.lang.booleanとして宣言されたパラメーターは、ブール値を返すブロックを受け入れます。
- バイト、java.lang.byte、short、java.lang.short、int、java.lang.integer、long、またはjava.lang.longとして宣言されたパラメーターは、数字を返すブロックを受け入れ、その値を最も近い整数。
- フロート、java.lang.float、double、java.lang.doubleとして宣言されたパラメーターは、数を返すブロックを受け入れます。
- 表示形式を設定するためのテレメトリAPIメソッドを追加します
- カメラの切り替えのブロックサポートを追加します。
- カスタムモデルを使用して、Tensorflowオブジェクト検出のブロックサポートを追加します。
- ブロックやonbotjavaユーザーに特に役立つページにカスタムTensorflowオブジェクト検出モデルをアップロードするためのサポートを追加します。
- コントロールハブのボタンを使用してWi-Fiバンドを切り替えたときに、新しいコントロールハブブリンクコードを表示します(コントロールハブOS 1.1.2でのみ可能)
- 高度なRC設定で無効になる可能性のある新しい警告を追加します
- 不一致のアプリバージョン警告
- 不要な2.4 GHz Wi-Fi使用警告
- Rev Hubは時代遅れのファームウェアを実行しています(バージョン1.8.2より古い)
- Sony PS4 GamePadのサポートを追加し、ドライバーステーションでゲームパッドがどのように機能するかを作り直します
- ドライバーの位置に基づいてゲームパッドタイプを設定する選好を削除します。未知のVIDとPIDを使用してゲームパッドのタイプを指定できるメニューに置き換えられました
- USB VIDとPIDに基づいてGamePadタイプを自動検出しようとする試み
- GamePad VIDとPIDが不明な場合は、そのVIDとPIDにユーザーが指定したタイプを使用します
- GamePad VIDとPIDが知られておらず、ユーザーがそのVIDとPIDのタイプを指定していない場合、ゲームパッドのマッピング方法について教育を受けた推測が行われます
- ドライバーステーションは、ゲームパッドの切断から自動的に回復し、ドロップしたときに割り当てられた位置に再割り当てしようとします
- 1つのゲームパッドのみが割り当てられ、ドロップする場合:回復できます
- 2つのゲームパッドが割り当てられ、異なるVID/PID署名があり、1つのドロップのみが回復されます。
- 2つのゲームパッドが割り当てられ、異なるVID/PID署名があり、両方がドロップした場合:両方が回復されます
- 2つのゲームパッドが割り当てられ、同じVID/PIDシグネチャを持っている場合、1つのドロップのみが回収されます。
- 2つのゲームパッドが割り当てられ、同じVID/PID署名があり、両方がドロップされている場合:USBバスで再表示するときのゲームパッドのあいまいさのため、どちらも回復しません。
- 現在、1つの既知のエッジケースがあります。同じVID/PIDの署名がプラグインされた2つのゲームパッドがあるが、1つだけが割り当てられ、両方ともドロップし、自動回復のために1つが選択される50-50のチャンスです。割り当てられた位置:それは、最初にUSBバスコントローラーによって再送信されたものによって決定されます。
- Landscapeユーザーインターフェイスをドライバーステーションに追加します
- 新機能:オーディオキューを備えた練習タイマー
- 新機能(コントロールハブのみ):ワイヤレスネットワーク接続強度インジケーター(0〜5バー)
- 新機能(コントロールハブのみ):Ping/Channel Displayのタップは、ラジオ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ファームウェアを管理Webページから直接更新することができます
- ロボットコントローラーのログビューアーを改善します
- 水平スクロールサポート(もはや包まれていない)
- ピンチからズームをサポートします
- モノスパースフォントを使用します
- エラーメッセージが強調表示されます
- 新しい配色
- アプリ全体を再起動せずに、暴走/スタックオプモードを強制的に停止しようとする試み
- すべてのタイプの暴走条件が停止できるわけではありませんが、ユーザーコードが暴走中にハードウェアと通信しようとする場合、システムはそれをキャプチャできるはずです。
- セルフ検査画面にさまざまな調整を行います
- 「Androidバージョン」に「OSバージョン」エントリを変更します
- 「wi-fi direct name」を「wi-fi name」に改名します
- コントロールハブのレポートを表示するときに、コントロールハブOSバージョンを追加します
- コントロールハブのレポートを表示するときに、飛行機モードエントリを隠す
- ZTE速度チャネルチェンジャーのチェックを削除します
- すべての拡張およびコントロールハブのファームウェアバージョンを表示します
- ネットワーク設定の管理ページの部分を再作成します
- すべてのネットワーク設定は、1回のクリックで適用されます
- 電話ベースのロボットコントローラーのWi-Fiダイレクトチャネルを管理ページから変更できるようになりました
- Wi-Fiチャネルは、バンド(2.4対5 GHz)でフィルタリングされ、他のチャネルとオーバーラップするかどうか
- 現在のWi-Fiチャネルは、電話ベースのロボットコントローラーで事前に選択され、OS 1.1.2以降を実行するコントロールハブ。
- OS 1.1.2以降を実行しているコントロールハブでは、5 GHzバンドでシステムを自動的に選択することを選択できます。
- onbotjavaを改善します
- 新しい明るいテーマと暗いテーマは古いテーマに取って代わります(カオス、github、クロム、...)
- 新しいデフォルトのテーマは
light
で、このバージョンに最初に更新するときに使用されます
- Onbotjavaには、タブ付きエディターがあります
- 読み取り専用オフラインモード
- ロボットコントローラーとドライバーステーションの「出口」メニュー項目の機能を改善する
- 記憶から完全に停止し、アンロードされることが保証されました
- 起動条件を監視しなかったためにLinearOpmodeが早期に存在する場合、警告メッセージを表示します
- ドライバーステーションとロボットコントローラーが互いに互換性がないときに表示されるエラーメッセージを改善する
- 再起動ロボットが進行中にドライバーステーションオペモードコントロールパネルが無効になりました
- ロボットコントローラーがコントロールハブである場合、Wi-Fiダイレクトに関連する高度な設定を無効にします。
- 低/クリティカルの場合、ドライバーステーションの色付き電話バッテリーアイコン。
- 新しい構成ファイルで「コントロールハブポータル」と「適切な場合)(適切な場合)を使用する名前を使用します
- I2Cの読み取りパフォーマンスを改善します
- コントロールハブの非常に大きな改善。小(6バイトなど)の読み取りで最大約2倍高速
- 電話に接続されている拡張ハブでは明らかではありません
- ビルドインフラストラクチャを更新/更新します
- 「com.android.support:Appcompat」から「androidx」サポートライブラリに更新します。
- TargetSdkversionとCompalesDkversionを28に更新します
- Android StudioのAndroidプラグインを最新の状態にします
- 「Arout」画面で報告されたビルドタイムスタンプを修正しました
- マニュアルウェブカメラの使用:ConceptWebCamを説明するサンプルを追加します
バグ修正
- Skystone Issue#248を修正します
- Skystone Issue#232を修正し、バルクキャッシュセマンティクスを変更して、キャッシュプレゼントマニュアル/自動遷移を可能にします。
- REV 2M距離センサーがプラグを抜かれている場合、パフォーマンスを向上させます
- 特定のデバイスでのトーストメッセージの読みやすさを向上させます
- ドライバーステーションがロボットコントローラーに接続することを許可します。
- 実際のシリアル番号を提供しないUVCカメラの偽のシリアル番号の生成を改善する
- 以前には、一部のデバイスはそのようなカメラを
0:0
のシリアルを割り当て、開いてストリーミングを開始しませんでした - FTC_APP Issue#638を修正します。
- 以下を含む、Vuforiaカメラモニターで多数のバグを修正します
- ワンキーなアスペクト比でプレビューを表示できるバグを修正
- ランドスケープでプレビューが遮断される可能性があるバグを修正
- 電話を回転させるときにプレビューが完全に台無しになったバグを修正
- Webカメラを使用するときにターゲットを漂流できるバグを修正します
- 一部のデバイス(FTC_APP 681)でUVCドライバーでの修正問題は、ストリーミングが複数回連続して起動/停止した場合に発行します
- このカーネルパッチがないデバイスでカーネルパニックとして現れた問題。
- パッチを持っている影響を受けるデバイスでは、問題は単にストリーミングを開始できないと明らかにしました。
- 技術チームは、この問題の根本原因はLinuxカーネルXHCIドライバーのバグであると考えています。 SDK UVCドライバーに回避策が実装されました。
- カメラからのフレームの半分がドロップされることが多いUVCドライバーにバグを修正します(たとえば、30fpsで構成されたストリーミングセッション中に配信される15fpsのみ)。
- Tensorflowオブジェクトの検出が、信頼性が最小信頼パラメーターよりも低い結果を示す場合の問題を修正します。
- OnbotjavaでのCVE-2019-11358の潜在的な搾取問題を修正します
- 拡張ハブのアドレスを変更して、追加の拡張ハブが接続されています
- 「再起動ロボット」が選択されたときに、コントロールハブのネットワーク接続を保存します
- ロボットが再起動している間にデバイススキャンが失敗する場合の問題を修正
- RenderScriptの使用を修正します
- Androidx.RenderScriptバリアントを使用します。互換性の向上
- ネイティブではなくJavaモードでrenderScriptを使用します。ビルドを簡素化します
- WebCam-Frame-to-BitMap変換の問題を修正:Alphaチャネルは初期化されておらず、R、G、&Bのみ
- 締め切りに可能な算術オーバーフローを修正します
- opmodeを停止するときに5秒の遅延を引き起こす可能性のあるVuforiaウェブカメラのサポートでデッドロックを修正します
バージョン5.4(20200108-101156)
- Skystone Issue#88を修正します
- ロボットコントローラー(コントロールハブ)が工場出荷時のデフォルトパスワードを使用しているときに注意する検査項目を追加します。
- Skystone Issue#61を修正します
- Skystone Issue#142を修正します
- REVハブの電流監視機能と電圧監視機能を追加することにより、FTC_APP Issue#417を修正します。
- onbotjavaアクティビティによって引き起こされるクラッシュを修正します
- onbotjava autosave機能FTC_APP#738を改善します
- 拡張ハブが切断されたときにシステムの応答性の問題を修正します
- IMU初期化がオペモードの停止を防ぐことができる場合の問題を修正
- AndroidTextTospeech.speak()が早すぎると失敗する場合の問題を修正
- Telemetry.speak()メソッドとブロックを追加します。
- 拡張ハブ関連の警告を追加および改善します
- 拡張ハブの低いバッテリー警告を改善します
- ハブが報告した直後に警告を表示します
- 条件が最新かどうかを指定
- どのハブが低いバッテリーを報告したかを表示します
- ハブがオペモードの実行中にパワーを失い、回復するときに警告を表示します
- 拡張ハブがコマンドに応答しないときに警告を表示する
- スタートアップに拡張ハブが存在しない場合、警告を明確にします
- この状態には、ハブを使用する前にロボットの再起動が必要であることを指定します。
- ハブライトは、この状態を正確に反映します
- これらの条件中にロギングを改善し、ログスパムを減らします
- ドライバーステーションが利用できない場合は、コントロールハブの時間とタイムゾーンを、ロボットをプログラミングする接続されたWebブラウザと同期します。
- Rev Hubsのバルク読み取り機能を追加します
LynxModule#setBulkCachingMode()
を使用して、バルクキャッシングモードをハブレベルで設定する必要があります。これは、そのハブを参照するすべての関連するSDKハードウェアクラスに適用されます。- 以下のハブバルクキャッシュモードが利用可能です。
-
BulkCachingMode.OFF
(デフォルト):すべてのハードウェア呼び出しは通常どおり動作します。バルクデータはLynxModule#getBulkData()
を介して読み取り、手動で処理できます。 -
BulkCachingMode.AUTO
:該当するハードウェア呼び出しは、同じキャッシュを押さないように自動的にクリア/更新されるバルク読み取りキャッシュから提供されます。 Cacheは、 LynxModule#clearBulkCache()
で手動でクリアすることもできますが、これは推奨されません。 - (Advanced Users)
BulkCachingMode.MANUAL
:Cache BulkCachingMode.AUTO
自動的にクリアされることはありません。 To avoid getting stale data, the cache must be manually cleared at the beginning of each loop body or as the user deems appropriate.
- Removes PIDF Annotation values added in Rev 5.3 (to AndyMark, goBILDA and TETRIX motor configurations).
- The new motor types will still be available but their Default control behavior will revert back to Rev 5.2
- Adds new
ConceptMotorBulkRead
sample Opmode to demonstrate and compare Motor Bulk-Read modes for reducing I/O latencies.
Version 5.3 (20191004-112306)
- Fixes external USB/UVC webcam support
- Makes various bugfixes and improvements to Blocks page, including but not limited to:
- Many visual tweaks
- Browser zoom and window resize behave better
- Resizing the Java preview pane works better and more consistently across browsers
- The Java preview pane consistently gets scrollbars when needed
- The Java preview pane is hidden by default on phones
- Internet Explorer 11 should work
- 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
Known issues:
- 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.
- A user might not realize they are editing a different file if the user inadvertently switches from one file to another since this switch is now seamless. The name of the currently open file is displayed in the browser tab.
Version 5.0 (built on 19.06.14)
- Support for the REV Robotics Control Hub.
- Adds a Java preview pane to the Blocks editor.
- Adds a new offline export feature to the Blocks editor.
- Display Wi-Fi channel in Network circle on Driver Station.
- Adds calibration for Logitech C270
- Updates build tooling and target SDK.
- Compliance with Google's permissions infrastructure (Required after build tooling update).
- Keep Alives to mitigate the Motorola Wi-Fi scanning problem. Telemetry substitute no longer necessary.
- Improves Vuforia error reporting.
- Fixes ftctechnh/ftc_app issues 621, 713.
- Miscellaneous bug fixes and improvements.
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)
Changes include:
- 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)
Changes include:
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.
Resiliency
- 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.
New Devices
- 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".
Known issues:
Version 3.6 (built on 17.12.18)
Changes include:
- 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).
- Vuforia
- 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.
Known issues:
- Androidスタジオ
- 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).
Known issues:
- 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.
Changes include:
- 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!!! ***
Changes include:
- 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
- Vuforia
- 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).
- Minor fixes.
- 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
- Fix for Telemetry also has off-by-one errors in its data string sizing / short size limitations error
- User telemetry output is sorted.
- added formatting variants to DbgLog and RobotLog APIs
- code modified to allow for a long list of OpMode names.
- changes to improve thread safety of RobocolDatagramSocket
- Fix for "missing hardware leaves robot controller disconnected from driver station" error
- fix for "fast tapping of Init/Start causes problems" (toast is now only instantiated on UI thread).
- added some log statements for thread life cycle.
- moved gamepad reset logic inside of initActiveOpMode() for robustness
- changes made to mitigate risk of race conditions on public methods.
- changes to try and flag when Wi-Fi Direct name contains non-printable characters.
- fix to correct race condition between .run() and .close() in ReadWriteRunnableStandard.
- updated FTDI driver
- made ReadWriteRunnableStanard interface public.
- fixed off-by-one errors in Command constructor
- moved specific hardware implmentations into their own package.
- moved specific gamepad implemnatations to the hardware library.
- changed LICENSE file to new BSD version.
- fixed race condition when shutting down Modern Robotics USB devices.
- methods in the ColorSensor classes have been synchronized.
- corrected isBusy() status to reflect end of motion.
- corrected "back" button keycode.
- the notSupported() method of the GyroSensor class was changed to protected (it should not be public).
Release 15.11.04.001
- Added Support for Modern Robotics Gyro.
- The GyroSensor class now supports the MR Gyro Sensor.
- Users can access heading data (about Z axis)
- Users can also access raw gyro data (X, Y, & Z axes).
- 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.
- For legacy Matrix motor/servo controllers removed necessity of appending "Motor" and "Servo" to controller names.
- Updated HT color sensor driver to use constants from ModernRoboticsUsbLegacyModule class.
- Updated MR color sensor driver to use constants from ModernRoboticsUsbDeviceInterfaceModule class.
- Correctly handle I2C Address change in all color sensors
- Updated/cleaned up OpModes.
- Updated comments in LinearI2cAddressChange.java example OpMode.
- Replaced the calls to "setChannelMode" with "setMode" (to match the new of the DcMotor method).
- 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).
- Added MatrixControllerDemo.java (demonstrates how to use legacy Matrix controller).
- Updated javadoc documentation.
- Updated release .apk files for Robot Controller and Driver Station apps.
Release 15.10.06.002
- Added support for Legacy Matrix 9.6V motor/servo controller.
- Cleaned up build.gradle file.
- Minor UI and bug fixes for driver station and robot controller apps.
- Throws error if Ultrasonic sensor (NXT) is not configured for legacy module port 4 or 5.
Release 15.08.03.001
- New user interfaces for FTC Driver Station and FTC Robot Controller apps.
- An init() method is added to the OpMode class.
- For this release, init() is triggered right before the start() method.
- 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.