HINWEIS
Dieses Repository enthält das öffentliche FTC SDK für die SKYSTONE-Wettbewerbssaison (2019-2020).
Früher wurde dieses Softwareprojekt hier gehostet. Teams, die an der SKYSTONE Challenge teilnehmen, sollten dieses neue SKYSTONE-Repository anstelle des älteren (und nicht mehr aktualisierten) ftc_app-Repository verwenden.
Willkommen!
Dieses GitHub-Repository enthält den Quellcode, der zum Erstellen einer Android-App zur Steuerung eines FIRST-Tech-Challenge-Wettbewerbsroboters verwendet wird. Um dieses SDK zu verwenden, laden Sie das gesamte Projekt herunter bzw. klonen Sie es auf Ihren lokalen Computer.
Erste Schritte
Wenn Sie neu in der Robotik oder neu bei der FIRST Tech Challenge sind, sollten Sie sich das FTC Blocks Tutorial ansehen, um sich mit der Verwendung des Steuerungssystems vertraut zu machen:
FTC Blocks Online-Tutorial
Selbst wenn Sie ein fortgeschrittener Java-Programmierer sind, ist es hilfreich, mit dem FTC Blocks Tutorial zu beginnen und anschließend zum OnBot Java Tool oder zu Android Studio zu wechseln.
Herunterladen des Projekts
Wenn Sie mit Android Studio programmieren, gibt es mehrere Möglichkeiten, dieses Repository herunterzuladen. Beachten Sie, dass Sie dieses Repository nicht herunterladen müssen, wenn Sie Ihren Roboter mit dem Blocks- oder dem OnBot-Java-Tool programmieren.
- Wenn Sie ein Git-Benutzer sind, können Sie die aktuellste Version des Repositorys klonen:
git clone https://github.com/FIRST-Tech-Challenge/SKYSTONE.git
-
Oder Sie können, falls Sie es bevorzugen, die Schaltfläche "Download Zip" verwenden, die auf der Hauptseite des Repositorys verfügbar ist. Wenn Sie das Projekt als .ZIP-Datei herunterladen, bleibt die Downloadgröße überschaubar.
-
Sie können den Projektordner (als .zip- oder .tar.gz-Archivdatei) auch aus dem Unterabschnitt Downloads der Seite Releases für dieses Repository herunterladen.
Sobald Sie Ihren Ordner heruntergeladen und (falls erforderlich) entpackt haben, können Sie Android Studio verwenden, um den Ordner zu importieren ("Import project (Eclipse ADT, Gradle, etc.)").
Hilfe erhalten
Benutzerdokumentation und Tutorials
FIRST stellt Online-Dokumentation mit Informationen und Tutorials zur Verfügung, wie die FIRST-Tech-Challenge-Software und das Roboter-Steuerungssystem verwendet werden. Sie können auf diese Dokumentation über den folgenden Link zugreifen:
SKYSTONE Online-Dokumentation
Beachten Sie, dass die Online-Dokumentation ein "evergreen"-Dokument ist, das ständig aktualisiert und bearbeitet wird. Es enthält die aktuellsten Informationen über die FIRST-Tech-Challenge-Software und das Steuerungssystem.
Javadoc-Referenzmaterial
Die Javadoc-Referenzdokumentation für das FTC SDK ist jetzt online verfügbar. Klicken Sie auf den folgenden Link, um die FTC-SDK-Javadoc-Dokumentation als Live-Website anzuzeigen:
FTC Javadoc-Dokumentation
Dokumentation für das FTC SDK ist auch in diesem Repository enthalten. Es gibt einen Unterordner namens "doc", der mehrere Unterordner enthält:
- Der Ordner "apk" enthält die .apk-Dateien für die Apps FTC Driver Station und FTC Robot Controller.
- Der Ordner "javadoc" enthält die JavaDoc-Benutzerdokumentation für das FTC SDK.
Online-Benutzerforum
Bei technischen Fragen zum Steuerungssystem oder zum FTC SDK besuchen Sie bitte das FTC Technology Forum:
FTC Technology Forum
Version 5.2 (20190905-083227)
- Behebt übermäßig breite Ränder bei Einstellungs-Activities und die Platzierung der neuen Konfigurationsschaltfläche
- Fügt Bildtarget-Daten für Skystone Vuforia hinzu.
- Enthält Beispiel-Op-Modes für die Skystone-Vuforia-Navigation (Java).
- Enthält Beispiel-Op-Modes für die Skystone-Vuforia-Navigation (Blocks).
- Fügt ein TensorFlow-Inferenzmodell (.tflite) für Skystone-Spielelemente hinzu.
- Enthält Beispiel-Op-Modes für Skystone TensorFlow (Java).
- Enthält Beispiel-Op-Modes für Skystone TensorFlow (Blocks).
- Entfernt ältere (saisonspezifische) Beispiel-Op-Modes.
- Enthält 64-Bit-Unterstützung (zur Einhaltung der Google-Play-Anforderungen).
- Schützt vor hängenden OpModes, wenn ein Neustart des Roboters (Restart Robot) angefordert wird. (Dank an FROGbots-4634) (ftc_app issue #709)
- Änderungen im Zusammenhang mit Blocks:
- Behebt einen Fehler mit von Blocks generiertem Code, wenn der Name eines Hardwaregeräts ein reserviertes Wort in Java oder JavaScript ist.
- Zeigt den generierten Java-Code für Blocks an, auch wenn in der aktiven Konfiguration Hardwareelemente fehlen.
- Zeigt ein Warnsymbol an, wenn veraltete Vuforia- und TensorFlow-Blöcke verwendet werden (SkyStone issue #27)
Version 5.1 (20190820-222104)
- Definiert Standard-PIDF-Parameter für die folgenden Motoren:
- REV Core Hex Motor
- REV 20:1 HD Hex Motor
- REV 40:1 HD Hex Motor
- Fügt eine Zurück-Schaltfläche hinzu, wenn auf einem Gerät ohne systemische Zurück-Schaltfläche ausgeführt wird (z. B. ein Control Hub)
- Ermöglicht es einem REV Control Hub, die Firmware eines REV Expansion Hub über USB zu aktualisieren
- Behebt SkyStone issue #9
- Behebt ftc_app issue #715
- Verhindert zusätzliche DS-Benutzerklicks durch Filtern auf Grundlage des aktuellen Zustands.
- Verhindert falsche DS-UI-Zustandsänderungen beim Empfangen einer neuen OpMode-Liste vom RC
- Fügt Unterstützung für den REV Color Sensor V3 hinzu
- Fügt einen manuell aktualisierbaren DS-Kamerastream hinzu, um RC-Kamerabilder aus der Ferne anzuzeigen.
- Um den Stream auf der DS anzuzeigen, initialisieren Sie einen stream-fähigen OpMode, starten Sie ihn jedoch nicht, wählen Sie im DS-Menü die Option "Camera Stream" und tippen Sie auf das Bild, um es zu aktualisieren. Diese Funktion wird bei Verwendung von Vuforia oder TFOD automatisch aktiviert—für typische Anwendungsfälle ist keine zusätzliche RC-Konfiguration erforderlich. Um den Stream auszublenden, wählen Sie denselben Menüpunkt erneut aus.
- Beachten Sie, dass Gamepads deaktiviert sind und der ausgewählte OpMode bei geöffnetem Stream aus Sicherheitsgründen nicht gestartet werden kann.
- Informationen zur Verwendung benutzerdefinierter Streams finden Sie in der API-Dokumentation für
CameraStreamServer#setSource und CameraStreamSource.
- Fügt den RobotController-Ressourcen viele Star-Wars-Sounds hinzu.
- Fügt das Beispielprogramm SKYSTONE Sounds Chooser hinzu.
- Tauscht Start-, Verbindungs- sowie Fehler-/Warntöne gegen Star-Wars-Sounds aus
- Aktualisiert OnBot Java, sodass für die Kommunikation mit dem Roboter ein WebSocket verwendet wird
- Die OnBot-Java-Seite muss nicht mehr vollständig neu geladen werden, wenn ein Benutzer von der Bearbeitung einer Datei zu einer anderen wechselt
Bekannte Probleme:
- Kamerastream
- Der Vuforia-Kamerastream erbt die Probleme, die in der Telefonvorschau auftreten (nämlich ftc_app issue #574). Dieses Problem wirkt sich nicht auf den TFOD-Kamerastream aus, obwohl dieser Frames von Vuforia empfängt.
- Die Ausrichtung der Stream-Frames stimmt möglicherweise nicht immer mit der Telefonvorschau überein. Diese Frames können vorerst bei Bedarf manuell über eine benutzerdefinierte
CameraStreamSource gedreht werden.
- OnBotJava
- Die Zurück-Schaltfläche des Browsers funktioniert möglicherweise nicht immer korrekt
- Es ist möglich, dass ein Build in die Warteschlange gestellt, aber nicht gestartet wird. In diesem Fall zeigt die OnBot-Java-Build-Konsole eine Warnung an.
- Ein Benutzer bemerkt möglicherweise nicht, dass er eine andere Datei bearbeitet, wenn er versehentlich von einer Datei zu einer anderen wechselt, da dieser Wechsel nun nahtlos erfolgt. Der Name der aktuell geöffneten Datei wird im Browser-Tab angezeigt.
Version 5.0 (erstellt am 19.06.14)
- Unterstützung für den REV Robotics Control Hub.
- Fügt dem Blocks-Editor einen Java-Vorschaubereich hinzu.
- Fügt dem Blocks-Editor eine neue Offline-Exportfunktion hinzu.
- Zeigt den WLAN-Kanal im Netzwerk-Kreis auf der Driver Station an.
- Fügt eine Kalibrierung für Logitech C270 hinzu
- Aktualisiert Build-Tools und Ziel-SDK.
- Einhaltung der Google-Berechtigungsinfrastruktur (nach dem Update der Build-Tools erforderlich).
- Keep-Alives zur Abschwächung des Motorola-WLAN-Scanproblems. Telemetrie-Ersatz ist nicht mehr erforderlich.
- Verbessert die Vuforia-Fehlerberichterstattung.
- Behebt die Issues 621 und 713 von ftctechnh/ftc_app.
- Diverse Fehlerbehebungen und Verbesserungen.
Version 4.3 (erstellt am 18.10.31)
- Enthält fehlende TensorFlow-bezogene Bibliotheken und Dateien.
Version 4.2 (erstellt am 18.10.30)
- Enthält einen Fix zur Vermeidung einer Deadlock-Situation mit WatchdogMonitor, die zu USB-Kommunikationsfehlern führen konnte.
- Der Kommunikationsfehler schien zu erfordern, dass der Benutzer das USB-Kabel trennt und die Robot-Controller-App neu startet, um den Betrieb wiederherzustellen.
- In robotControllerLog.txt befanden sich Fehlermeldungen, die die Wörter "E RobotCore: lynx xmit lock: #### abandoning lock:" enthielten.
- Enthält einen Fix, um die Adresse des übergeordneten Moduls für einen REV Robotics Expansion Hub in einer Konfigurationsdatei (.xml) korrekt aufzulisten.
- Ein Fehler in den Versionen 4.0 und 4.1 listete die Adresse eines übergeordneten REV-Robotics-Geräts fälschlicherweise als "1" auf.
- Wenn das übergeordnete Modul einen höheren Adresswert hatte als das per Daisy-Chain verbundene Modul, verhinderte dieser Fehler, dass der Robot Controller mit dem nachgelagerten Expansion Hub kommunizieren konnte.
- Fügt die Anforderung ACCESS_COARSE_LOCATION hinzu, damit eine Driver Station mit Android Oreo nach Wi-Fi-Direct-Geräten suchen kann.
- Fügt das google()-Repository zu build.gradle hinzu, da aapt2 ab Version 3.2 des Android Gradle Plugin aus dem google()-Repository heruntergeladen werden muss.
- Wichtiger Hinweis: Android-Studio-Benutzer müssen beim ersten Erstellen des ftc_app-Projekts mit dem Internet verbunden sein.
- Für den ersten Build ist eine Internetverbindung erforderlich, damit die entsprechenden Dateien aus dem Google-Repository heruntergeladen werden können.
- Für spätere Builds sollte keine Internetverbindung erforderlich sein.
- Dies sollte auch das Build-Problem beheben, bei dem Android Studio meldete, dass es "com.android.tools.lint:lint-gradle:26.1.4" (oder Ähnliches) nicht finden konnte.
- Fügt Unterstützung für den REV-Spark-Mini-Motorcontroller als Teil des Konfigurationsmenüs für einen Servo-/PWM-Port am REV Expansion Hub hinzu.
- Bietet Beispiele für das Abspielen von Audiodateien in einem OpMode.
- Änderungen am Block-Entwicklungstool
- Enthält einen Fix für ein Problem mit den Velocity-Blöcken, das im FTC Technology Forum (Unterforum Blocks Programming) gemeldet wurde.
- Ändert die Meldung "Save completed successfully." auf eine weiße Farbe, damit sie sich von einem grünen Hintergrund abhebt.
- Behebt die Funktion "Download image", sodass sie funktioniert, wenn sich Textblöcke im OpMode befinden.
- Führt Unterstützung für Googles TensorFlow-Lite-Technologie zur Objekterkennung für das Spiel 2018-2019 ein.
- TensorFlow Lite kann Gold Mineral und Silver Mineral aus dem Spiel 2018-2019 erkennen.
- Beispiel-Op-Modes in Java und Blocks sind enthalten, um zu zeigen, wie die relative Position des Goldblocks bestimmt wird (links, Mitte, rechts).
Version 4.1 (veröffentlicht am 18.09.24)
Die Änderungen umfassen:
- Fix zur Verhinderung von Abstürzen, wenn veraltete Konfigurationsannotationen verwendet werden.
- Änderung, die es ermöglicht, die FTC-Robot-Controller-APK mithilfe der FIRST-Global-Control-Hub-Update-Skripte automatisch zu aktualisieren.
- Entfernt Beispiele für nicht unterstützte / nicht zulässige Hardware.
- Verbesserungen am Telemetry.addData-Block mit dem "text"-Socket.
- Aktualisiert die Liste der Blocks-Beispiel-Op-Modes, um das Rover-Ruckus-Vuforia-Beispiel aufzunehmen.
- Aktualisiert die Versionsnummer der SDK-Bibliothek.
Version 4.0 (veröffentlicht am 18.09.12)
Die Änderungen umfassen:
-
Erste Unterstützung für UVC-kompatible Kameras
- Wenn die UVC-Kamera eine eindeutige Seriennummer hat, erkennt und listet RC sie anhand der Seriennummer auf.
- Wenn der UVC-Kamera eine eindeutige Seriennummer fehlt, unterstützt RC nur eine angeschlossene Kamera dieses Typs.
- Kalibrierungseinstellungen für einige Kameras sind enthalten (Einzelheiten finden Sie in TeamCode/src/main/res/xml/teamwebcamcalibrations.xml).
- Der Benutzer kann Kalibrierungsdateien über die Weboberfläche "Program and Manage" hochladen.
- UVC-Kameras scheinen eine beträchtliche Menge Strom aus dem USB-Bus zu ziehen.
- Dies scheint für den REV Robotics Control Hub keine Probleme darzustellen.
- Dies scheint jedoch Stabilitätsprobleme zu verursachen, wenn einige Kameras mit einem Android-Phone-basierten Robot Controller verwendet werden.
- Das FTC Tech Team untersucht Optionen, um dieses Problem bei den Phone-basierten Robot Controllern zu entschärfen.
- Aktualisierte Beispiel-Op-Modes für Vuforia Navigation und VuMark, um zu demonstrieren, wie eine interne Phone-basierte Kamera und eine externe UVC-Webcam verwendet werden.
-
Unterstützung für verbesserte Motorsteuerung.
- REV-Robotics-Expansion-Hub-Firmware 1.8 und höher unterstützt einen Feed-Forward-Mechanismus für die Motorsteuerung im geschlossenen Regelkreis.
- Das FTC SDK wurde geändert, um PIDF-Koeffizienten (proportional, integral, differenzial und Feed-Forward) zu unterstützen.
- Das FTC-Blocks-Entwicklungstool wurde geändert, um PIDF-Programmierblöcke aufzunehmen.
- Ältere PID-bezogene Methoden und Variablen als veraltet (deprecated) markiert.
- Die PIDF-bezogenen Änderungen von REV 1.8.x bieten eine linearere und genauere Möglichkeit, einen Motor zu steuern.
-
Drahtlos
- Fügt 5-GHz-Unterstützung für das Wechseln des Drahtloskanals bei Geräten hinzu, die dies unterstützen.
- Getestet mit Moto-G5- und E4-Telefonen.
- Außerdem getestet mit anderen (derzeit nicht zugelassenen) Telefonen wie dem Samsung Galaxy S8.
-
Verbesserte Unterstützung für Firmware-Updates des Expansion Hub in der Robot-Controller-App
- Änderungen, um das System während des Firmware-Update-Prozesses robuster zu machen (wenn er über die Robot-Controller-App durchgeführt wird).
- Der Benutzer muss beim Aktualisieren der Firmware eines Expansion Hub nicht mehr einen nachgelagerten, per Daisy-Chain verbundenen Expansion Hub trennen.
- Wenn der Benutzer die Firmware eines Expansion Hub über eine USB-Verbindung aktualisiert, muss er/sie die RS485-Verbindung zu anderen Expansion Hubs nicht trennen.
Version 3.6 (erstellt am 17.12.18)
Änderungen umfassen:
- Änderungen an Blocks
- Verwendet aktualisierte Google-Blockly-Software, damit Benutzer ihre Op-Modes auf Apple-iOS-Geräten (einschließlich iPad und iPhone) bearbeiten können.
- Verbesserung des Blocks-Tools zur Behandlung beschädigter Op-Mode-Dateien.
- Autonome Op-Modes sollten nach dem erneuten Öffnen zum Bearbeiten nicht mehr auf Tele-Op zurückgesetzt werden.
- Das System kann jetzt Typkonflikte zur Laufzeit erkennen und den Benutzer mit einer Meldung auf der Driver Station warnen.
- Aktualisierte Javadoc-Dokumentation für die Methode setPower(), um den korrekten Wertebereich (-1 bis +1) widerzuspiegeln.
- VuforiaLocalizerImpl geändert, um das Rendern von Frames durch den Benutzer zu ermöglichen.
- Eine vom Benutzer überschreibbare Methode onRenderFrame() hinzugefügt, die von der renderFrame()-Methode der Klasse aufgerufen wird.
Version 3.5 (erstellt am 17.10.30)
Die Änderungen in Version 3.5 umfassen:
- Ein Fix wurde eingeführt, um zufällige Op-Mode-Stopps zu verhindern, die auftreten können, nachdem die Robot-Controller-App pausiert und dann fortgesetzt wurde (z. B. wenn ein Benutzer vorübergehend das Display des Robot-Controller-Telefons ausschaltet und dann wieder einschaltet).
- Ein Fix wurde eingeführt, um zufällige Op-Mode-Stopps zu verhindern, die zuvor durch zufällige Peer-Disconnect-Ereignisse auf der Driver Station verursacht wurden.
- Behebt das Problem, dass Protokolldateien beim Pausieren des RC oder der DS geschlossen, beim Fortsetzen jedoch nicht wieder geöffnet wurden.
- Behebt das Problem eines Start-/Stopp-Race Conditions im Batterie-Handler (Spannung).
- Behebt das Problem, dass in Android Studio erzeugte Op-Modes in bestimmten Situationen aus der verfügbaren Liste verschwanden.
- Behebt das Problem, dass OnBot Java auf dem REV Robotics Control Hub nicht baute.
- Behebt das Problem, dass OnBot Java nicht baute, wenn Datum und Uhrzeit auf dem Robot-Controller-Gerät „zurückgedreht“ (auf ein früheres Datum/eine frühere Uhrzeit gesetzt) wurden.
- Verbesserte Fehlermeldung in OnBot Java, die auftritt, wenn das Umbenennen einer Datei fehlschlägt.
- Entfernte überflüssige Ressourcen aus den von OnBot Java verwendeten android.jar-Binärdateien, um die endgültige Größe der Robot-Controller-App zu reduzieren.
- MR_ANALOG_TOUCH_SENSOR-Block zum Blocks Programming Tool hinzugefügt.
Version 3.4 (erstellt am 17.09.06)
Die Änderungen in Version 3.4 umfassen:
- telemetry.update()-Anweisung für die BlankLinearOpMode-Vorlage hinzugefügt.
- Beispiel-Blocks-Op-Modes umbenannt, um sie konsistenter mit den Java-Beispielen zu machen.
- Einige zusätzliche Beispiel-Blocks-Op-Modes hinzugefügt.
- OnBot-Java-Readme leicht umformuliert.
Version 3.3 (erstellt am 17.09.04)
Diese Version der Software enthält Verbesserungen für das FTC Blocks Programming Tool und das OnBot Java Programming Tool.
Die Änderungen in Version 3.3 umfassen:
- Das Android-Studio-Projekt ftc_app wurde aktualisiert und verwendet nun das Gradle-Plugin 2.3.3.
- Das Android-Studio-Projekt ftc_app verwendet bereits die Gradle-3.5-Distribution.
- Das Robot-Controller-Protokoll wurde in /sdcard/RobotControllerLog.txt umbenannt (beachten Sie, dass diese Änderung tatsächlich mit v3.2 eingeführt wurde).
- Verbesserungen der I2C-Zuverlässigkeit.
- Optimiertes I2C-Lesen für den REV Expansion Hub mit Firmware v1.7 oder höher.
- Alle externen/Beispiel-Dateien aktualisiert (verfügbar über OnBot und im Android-Projektordner).
- Vuforia
- Unterstützung für VuMarks hinzugefügt, die für das Saisonspiel 2017-2018 verwendet werden.
- Blocks
- Update auf die neueste Google-Blockly-Version.
- Beispiel-Op-Modes können beim Erstellen eines neuen Op-Modes als Vorlage ausgewählt werden.
- Fehler behoben, bei dem die Blöcke vorübergehend verschwanden, wenn die Maustaste gedrückt gehalten wurde.
- Blöcke für Range.clip und Range.scale hinzugefügt.
- Der Benutzer kann Block-Op-Modes jetzt deaktivieren/aktivieren.
- Fix zur Vermeidung gelegentlicher Blocks-Deadlocks.
- OnBot Java
- Deutliche Verbesserungen der Autovervollständigungsfunktion für den OnBot-Java-Editor.
- Beispiel-Op-Modes können beim Erstellen eines neuen Op-Modes als Vorlage ausgewählt werden.
- Fixes und Änderungen zur Vervollständigung der Hardware-Setup-Funktion.
- Aktualisierte (und nützlichere) OnBot-Begrüßungsnachricht.
Bekannte Probleme:
- Android Studio
- Wenn Sie nach dem Update auf den neuen Android-Studio-Projektordner v3.3 Fehlermeldungen mit „InvalidVirtualFileAccessException“ erhalten, müssen Sie möglicherweise Datei->Caches ungültig machen / Neustart ausführen, um den Fehler zu beheben.
- OnBot Java
- Wenn Sie manchmal die Build-Schaltfläche drücken, um alle Op-Modes zu bauen, gibt der RC eine Fehlermeldung zurück, dass der Build fehlgeschlagen ist. Wenn Sie die Build-Schaltfläche ein zweites Mal drücken, gelingt der Build in der Regel.
Version 3.2 (erstellt am 17.08.02)
Diese Version der Software führt das Entwicklungstool „OnBot Java“ ein. Ähnlich wie das FTC Blocks Development Tool ermöglicht das FTC OnBot Java Development Tool dem Benutzer, Op-Modes dynamisch zu erstellen, zu bearbeiten und zu bauen – nur mit einem Javascript-fähigen Webbrowser.
Das OnBot Java Development Tool ist eine integrierte Entwicklungsumgebung (IDE), die vom Robot Controller bereitgestellt wird. Op-Modes werden mit einem Javascript-fähigen Browser erstellt und bearbeitet (Google Chrome wird empfohlen). Op-Modes werden direkt auf dem Android-Gerät des Robot Controllers gespeichert.
Das OnBot Java Development Tool bietet eine Java-Programmierumgebung, die KEIN Android Studio benötigt.
Die Änderungen in Version 3.2 umfassen:
-
Erweiterte webbasierte Entwicklungstools
- Einführung des OnBot Java Development Tools.
- Webbasierte Programmier- und Verwaltungsfunktionen sind „immer aktiv“ (der Benutzer muss den Robot Controller nicht mehr in den Programmiermodus versetzen).
- Webbasierte Verwaltungsoberfläche (in der der Benutzer den Namen des Robot Controllers ändern und die Protokolldatei des Robot Controllers einfach herunterladen kann).
- OnBot Java, Blocks und Verwaltungsfunktionen sind über die webbasierte Oberfläche verfügbar.
-
Blocks Programming Development Tool:
- Der Block „LynxI2cColorRangeSensor“ wurde in den Block „REV Color/range sensor“ geändert.
- Tooltip für den Block ColorSensor.isLightOn korrigiert.
- Blöcke für ColorSensor.getNormalizedColors und LynxI2cColorRangeSensor.getNormalizedColors hinzugefügt.
-
Beispiel-Op-Modes für den digitalen Touch-Sensor und den REV Robotics Color Distance Sensor hinzugefügt.
-
Vom Benutzer wählbare Farbschemata.
-
Enthält viele kleinere Verbesserungen und Fixes (zu zahlreich, um sie aufzulisten).
Bekannte Probleme:
- Die Autovervollständigungsfunktion ist unvollständig und unterstützt derzeit Folgendes nicht:
- Zugriff über das this-Schlüsselwort
- Zugriff über das super-Schlüsselwort
- Mitglieder der Superklasse, die nicht von der Klasse überschrieben werden
- Alle in der aktuellen Klasse bereitgestellten Methoden
- Innere Klassen
- Kann gecastete Objekte nicht verarbeiten
- Alle Objekte, die aus einem in Klammern eingeschlossenen Ausdruck stammen
Version 3.10 (erstellt am 17.05.09)
Diese Version der Software bietet Unterstützung für den REV Robotics Expansion Hub. Diese Version enthält außerdem Verbesserungen der USB-Kommunikationsschicht, um die Systemstabilität zu erhöhen. Wenn Sie zuvor eine 2.x-Version der Software verwendet haben, erfordert das Update auf Version 3.1, dass Sie zusätzlich zur Aktualisierung der Robot-Controller-Software auch Ihre Driver-Station-Software aktualisieren.
Beachten Sie außerdem, dass die Methoden setMaxSpeed und getMaxSpeed in der Software Version 3.10 nicht mehr verfügbar sind (nicht veraltet – sie wurden aus dem SDK entfernt). Beachten Sie auch, dass die neue 3.x-Software Motorprofile enthält, die der Benutzer bei der Konfiguration des Roboters auswählen kann.
Die Änderungen umfassen:
- Änderungen an Blocks
- Blöcke für VuforiaTrackableDefaultListener.getPose und Vuforia.trackPose hinzugefügt.
- Optimierte Blocks-Unterstützung für Vuforia Extended Tracking hinzugefügt.
- atan2-Block zur Kategorie Mathematik hinzugefügt.
- Parameter useCompetitionFieldTargetLocations zum Block Vuforia.initialize hinzugefügt. Wenn dieser auf false gesetzt wird, werden die Zielpositionen bei (0,0,0) platziert, mit der Zielausrichtung, wie im Tutorial-Op-Mode unter https://github.com/gearsincorg/FTCVuforiaDemo/blob/master/Robot_Navigation.java angegeben.
- Enthält zusätzliche Verbesserungen der USB-Kommunikationsschicht, um die Systemstabilität zu erhöhen (um sich von einer größeren Anzahl von Kommunikationsunterbrechungen zu erholen).
Zusätzliche Anmerkungen zu Version 3.00 (erstellt am 17.04.13)
Zusätzlich zu den unten aufgeführten Release-Änderungen (siehe Abschnitt „Version 3.00 (erstellt am 17.04.013)“) enthält Version 3.00 die folgenden wichtigen Änderungen:
- Die Software Version 3.00 verwendet eine neue Version des FTC Robocol (Roboter-Protokoll). Wenn Sie auf der Seite des Robot Controllers und/oder von Android Studio auf v3.0 upgraden, müssen Sie auch die Driver-Station-Software upgraden, damit sie zum neuen Robocol passt.
- Die Software Version 3.00 entfernt die Methoden setMaxSpeed und getMaxSpeed aus der Klasse DcMotor. Wenn Sie einen Op-Mode haben, der diese Methoden zuvor verwendet hat, müssen Sie die Referenzen/Aufrufe dieser Methoden entfernen. Stattdessen stellt v3.0 die Informationen zur Höchstgeschwindigkeit über Motorprofile bereit, die vom Benutzer während der Roboter-Konfiguration ausgewählt werden.
- Die Software Version 3.00 verfügt derzeit über keinen Mechanismus, um zusätzliche I2C-Sensoren zu deaktivieren. Wir hoffen, diese Funktion mit einem Release in naher Zukunft wieder einzuführen.
Version 3.00 (erstellt am 17.04.13)
*** Verwenden Sie diese Version der Software auf EIGENES RISIKO!!! ***
Diese Software wird als „Alpha“-Version veröffentlicht. Verwenden Sie diese Version auf eigenes Risiko!
Diese Vorabversion der Software enthält ERHEBLICHE Änderungen, darunter Änderungen am Wi-Fi-Direct-Kopplungsmechanismus, Neufassungen der I2C-Sensorklassen, Änderungen an der USB/FTDI-Schicht sowie die Einführung der Unterstützung für den REV Robotics Expansion Hub und den REV-Robotics-Farb-/Entfernungs-/Lichtsensor. Diese Änderungen wurden implementiert, um die Zuverlässigkeit und Widerstandsfähigkeit des FTC-Regelsystems zu verbessern.
Beachten Sie jedoch, dass Version 3.00 als „Alpha“-Code gilt. Dieser Code wird veröffentlicht, damit die FIRST-Community die Möglichkeit hat, das neue REV-Expansion-Hub-Elektronikmodul zu testen, sobald es im Mai verfügbar ist. Die Entwickler empfehlen nicht, diesen Code für kritische Anwendungen zu verwenden (d. h. für den Wettbewerbseinsatz).
*** Verwenden Sie diese Version der Software auf EIGENES RISIKO!!! ***
Die Änderungen umfassen:
- Umfassende Überarbeitung der sensorbezogenen Infrastruktur. Enthält die Neufassung der Sensorklassen zur Implementierung der synchronen I2C-Kommunikation.
- Fix, um den Autonomous-Timer auf 30 Sekunden zurückzusetzen.
- Implementierung spezifischer Motorprofile für zugelassene 12-V-Motoren (einschließlich Tetrix-, AndyMark-, Matrix- und REV-Modelle).
- Moderate Verbesserungen zur Stärkung des Wi-Fi-P2P-Pairings.
- Behebt den Telemetrie-Protokoll-Race.
- Veröffentlicht alle Quellen (nicht nur eine ausgewählte Anzahl).
- Enthält Verbesserungen der Blocks-Programmierung
- Hinzufügung optimierter Vuforia-Blöcke.
- Automatische Scrollleiste für die Seiten „Projekte“ und „Sounds“.
- Fehler beim Einfügen von Blöcken behoben.
- Blöcke werden nach der while-opModeIsActive-Schleife ausgeführt (um eine Bereinigung vor dem Verlassen des Op-Modes zu ermöglichen).
- Block gyro integratedZValue hinzugefügt.
- Behebt einen Fehler mit der Projekte-Seite im Firefox-Browser.
- Block IsSpeaking zu AndroidTextToSpeech hinzugefügt.
- Implementiert Unterstützung für den REV Robotics Expansion Hub
- Implementiert Unterstützung für die integrierte REV-IMU (physisch auf dem I2C-Bus 0 installiert; verwendet denselben Bosch-BNO055-9-Achsen-Absolut-Orientierungssensor wie der Adafruit-9DOF-Absolut-Orientierungssensor). - Implementiert Unterstützung für den REV-Farb-/Entfernungs-/Lichtsensor.
- Bietet Unterstützung für die Aktualisierung der Expansion-Hub-Firmware über das FTC SDK.
- Erkennt die REV-Firmware-Version und zeichnet sie in der Protokolldatei auf.
- Enthält Unterstützung für den REV Control Hub (beachten Sie, dass der REV Control Hub noch nicht für die FTC-Nutzung zugelassen ist).
- Implementiert FTC-Blocks-Programmierunterstützung für den REV Expansion Hub und die Sensor-Hardware.
- Erkennt I2C-Gerätetrennungen und warnt davor.
Version 2.62 (erstellt am 17.01.07)
- Nullzeiger-Prüfung hinzugefügt, bevor modeToByte() in der Methode finishModeSwitchIfNecessary der Klasse ModernRoboticsUsbDcMotorController aufgerufen wird.
- Änderungen zur Verbesserung der Robustheit des Modern-Robotics-USB-Protokolls.
Version 2.61 (veröffentlicht am 16.12.19)
- Änderungen im Blocks-Programmiermodus:
- Fix zur Behebung eines Problems, bei dem eine Ausnahme ausgelöst wurde, weil ein OpticalDistanceSensor-Objekt zweimal in der Hardware-Map erscheint (das zweite Mal als LightSensor).
Version 2.6 (veröffentlicht am 16.12.16)
- Fixes für die Gyro-Klasse:
- Verbessert (verringert) die Sensor-Aktualisierungslatenz.
- Behebt isCalibrating-Probleme.
- Änderungen im Blocks-Programmiermodus:
- Blocks ignorieren jetzt ein Gerät in der Konfigurations-XML, wenn der Name leer ist. Andere Geräte in der Konfiguration funktionieren einwandfrei.
Version 2.5 (interner Release, veröffentlicht am 16.12.13)
- Änderungen im Blocks-Programmiermodus:
- Blocks-Unterstützung für AdafruitBNO055IMU hinzugefügt.
- Schaltfläche „Op Mode herunterladen“ zu FtcBocks.html hinzugefügt.
- Unterstützung zum Kopieren von Blöcken in einem OpMode und Einfügen in einen anderen OpMode hinzugefügt. Der Inhalt der Zwischenablage wird auf dem Telefon gespeichert, daher muss der Server des Programmiermodus ausgeführt werden.
- Abschnitt „Utilities“ der Toolbox geändert.
- Im Programmiermodus werden Informationen zu den aktiven Verbindungen angezeigt.
- Einfügeposition korrigiert, wenn der Arbeitsbereich gescrollt wurde.
- Blocks-Unterstützung für das Android-Accelerometer hinzugefügt.
- Problem behoben, bei dem „Blocks Upload Op Mode“ den Namen am ersten Punkt abschnitt.
- Blocks-Unterstützung für Android SoundPool hinzugefügt.
- Typsicherheit für Blöcke für Acceleration hinzugefügt.
- Typsicherheit für Blöcke für AdafruitBNO055IMU.Parameters hinzugefügt.
- Typsicherheit für Blöcke für AnalogInput hinzugefügt.
- Typsicherheit für Blöcke für AngularVelocity hinzugefügt.
- Typsicherheit für Blöcke für Color hinzugefügt.
- Typsicherheit für Blöcke für ColorSensor hinzugefügt.
- Typsicherheit für Blöcke für CompassSensor hinzugefügt.
- Typsicherheit für Blöcke für CRServo hinzugefügt.
- Typsicherheit für Blöcke für DigitalChannel hinzugefügt.
- Typsicherheit für Blöcke für ElapsedTime hinzugefügt.
- Typsicherheit für Blöcke für Gamepad hinzugefügt.
- Typsicherheit für Blöcke für GyroSensor hinzugefügt.
- Typsicherheit für Blöcke für IrSeekerSensor hinzugefügt.
- Typsicherheit für Blöcke für LED hinzugefügt.
- Typsicherheit für Blöcke für LightSensor hinzugefügt.
- Typsicherheit für Blöcke für LinearOpMode hinzugefügt.
- Typsicherheit für Blöcke für MagneticFlux hinzugefügt.
- Typsicherheit für Blöcke für MatrixF hinzugefügt.
- Typsicherheit für Blöcke für MrI2cCompassSensor hinzugefügt.
- Typsicherheit für Blöcke für MrI2cRangeSensor hinzugefügt.
- Typsicherheit für Blöcke für OpticalDistanceSensor hinzugefügt.
- Typsicherheit für Blöcke für Orientation hinzugefügt.
- Typsicherheit für Blöcke für Position hinzugefügt.
- Typsicherheit für Blöcke für Quaternion hinzugefügt.
- Typsicherheit für Blöcke für Servo hinzugefügt.
- Typsicherheit für Blöcke für ServoController hinzugefügt.
- Typsicherheit für Blöcke für Telemetry hinzugefügt.
- Typsicherheit für Blöcke für Temperature hinzugefügt.
Version 2.4 (veröffentlicht am 16.11.13)
- Fix zur Vermeidung von Abstürzen bei nicht vorhandenen Ressourcen.
- Änderungen im Blocks-Programmiermodus:
- Blöcke zur Unterstützung von OpenGLMatrix, MatrixF und VectorF hinzugefügt.
- Blöcke zur Unterstützung von AngleUnit, AxesOrder, AxesReference, CameraDirection, CameraMonitorFeedback, DistanceUnit und TempUnit hinzugefügt.
- Blöcke zur Unterstützung von Acceleration hinzugefügt.
- Blöcke zur Unterstützung von LinearOpMode.getRuntime hinzugefügt.
- Blöcke zur Unterstützung von MagneticFlux und Position hinzugefügt.
- Tippfehler korrigiert.
- Blöcke für ElapsedTime konsistenter mit anderen Objekten gestaltet.
- Blöcke zur Unterstützung von Quaternion, Velocity, Orientation, AngularVelocity hinzugefügt.
- Blöcke zur Unterstützung von VuforiaTrackables, VuforiaTrackable, VuforiaLocalizer, VuforiaTrackableDefaultListener hinzugefügt.
- Einige Blöcke korrigiert.
- Typprüfung für neue Blöcke hinzugefügt.
- Auf die neueste Blockly-Version aktualisiert.
- Standard-Variablenblöcke zu Navigations- und Matrix-Blöcken hinzugefügt.
- Toolbox-Eintrag für openGLMatrix_rotation_withAxesArgs korrigiert.
- Wenn der Benutzer einen Blocks-generierten Op-Mode herunterlädt, wird nur die .blk-Datei heruntergeladen.
- Wenn der Benutzer einen Blocks-generierten Op-Mode (.blk-Datei) hochlädt, wird automatisch Javascript-Code erzeugt.
- DbgLog-Unterstützung hinzugefügt.
- Protokollierung hinzugefügt, wenn eine Blocks-Datei gelesen/geschrieben wird.
- Fehler behoben, um Blöcke auch dann korrekt darzustellen, wenn Geräte aus der Konfigurationsdatei fehlen.
- Unterstützung für zusätzliche Zeichen (nicht nur alphanumerische) für die Block-Dateinamen (für Download und Upload) hinzugefügt.
- Unterstützung für den OpMode-Typ („Autonomous“ oder „TeleOp“) und die Gruppe hinzugefügt.
- Änderungen an den Beispielen, um Tutorial-Probleme zu vermeiden.
- Vorgeschlagene Änderungen aus öffentlichem Pull Request 216 übernommen („Replace .. paths“).
- Servo-Störungen entfernt, wenn der Roboter gestoppt wird.
- Wenn der Benutzer beim Bearbeiten einer Konfigurationsdatei „Abbrechen“ wählt, werden die nicht gespeicherten Änderungen verworfen und die ursprüngliche, unveränderte Konfiguration wiederhergestellt.
- Protokollinformationen hinzugefügt, um zu diagnostizieren, warum die Robot-Controller-App beendet wurde (z. B. durch die Watchdog-Funktion).
- Möglichkeit hinzugefügt, das Protokoll vom Controller zu übertragen.
- Inkonsistenz bei AngularVelocity behoben.
- Begrenzt das unbegrenzte Wachstum der Telemetriedaten. Wenn der Benutzer telemetry.update() für LinearOpMode nicht rechtzeitig aufruft, können hinzugefügte Telemetriedaten verloren gehen, wenn das Größenlimit überschritten wird.Version 2.35 (veröffentlicht am 16.10.06)
Version 2.30 (veröffentlicht am 16.10.05)
- Blockly-Programmiermodus:
- Mechanismus hinzugefügt, um Blockly-Op-Modi vom Programming Mode Server auf dem lokalen Gerät zu speichern
- Um Unübersichtlichkeit zu vermeiden, werden Blöcke in kategorisierten Ordnern angezeigt
- Unterstützung für DigitalChannel hinzugefügt
- Unterstützung für ModernRoboticsI2cCompassSensor hinzugefügt
- Unterstützung für ModernRoboticsI2cRangeSensor hinzugefügt
- Unterstützung für VoltageSensor hinzugefügt
- Unterstützung für AnalogInput hinzugefügt
- Unterstützung für AnalogOutput hinzugefügt
- Korrektur für den CompassSensor-setMode-Block
- Vuforia
- Deadlock behoben / Kameradaten verfügbar machen, während Vuforia läuft.
- Update auf Vuforia 6.0.117 (von Vuforia und Google empfohlen, um die Sicherheitslücke zu schließen).
- Korrektur für den 30-Sekunden-Timer-Bug im autonomen Modus (bei dem der Timer aktiv war, obwohl er scheinbar abgelaufen war).
- opModeIsActive-Änderungen, um Aufräumarbeiten nach dem Stoppen des Op-Modus zu ermöglichen (mit erzwungenem 2-Sekunden-Sicherheits-Timeout).
- Korrektur, um doppeltes Lesen von i2c zu vermeiden.
- Aktualisierte Beispiel-Op-Modi.
- Verbessertes Logging und behobenes gelegentliches Einfrieren.
- Digital-I/O-Beispiel hinzugefügt.
- Gerätenamen in Beispiel-Op-Modi bereinigt, um sie mit dem Pushbot-Leitfaden konsistent zu machen.
- Korrektur, um die Verwendung von IrSeekerSensorV3 zu ermöglichen.
Version 2.20 (veröffentlicht am 16.09.08)
- Unterstützung für den Modern Robotics Compass Sensor.
- Unterstützung für den Modern Robotics Range Sensor.
- Gerätenamen für Pushbot-Vorlagen überarbeitet, damit sie mit den Namen im Pushbot-Leitfaden übereinstimmen.
- Fehler behoben, sodass das IrSeekerSensorV3-Gerät als IrSeekerSensor im hardwareMap zugänglich ist.
- Computervision-Code geändert, um eine individuelle Vuforia-Lizenz zu verlangen (gemäß rechtlicher Anforderung von PTC).
- Kleinere Korrekturen.
- Blockly-Verbesserungen:
- Unterstützung für Spannungssensor.
- Unterstützung für Analogeingang.
- Unterstützung für Analogausgang.
- Unterstützung für Lichtsensor.
- Unterstützung für Servosteuerung.
Version 2.10 (veröffentlicht am 16.09.03)
- Unterstützung für Adafruit IMU.
- Verbesserungen an der Klasse ModernRoboticsI2cGyro
- Blockieren beim Zurücksetzen der Z-Achse.
- isCalibrating() gibt true zurück, während das Gyro kalibriert wird.
- Aktualisiertes Beispiel-Gyroprogramm.
- Blockly-Verbesserungen
- Unterstützung für android.graphics.Color.
- Unterstützung für ElapsedTime hinzugefügt.
- Verbessertes Aussehen und Lesbarkeit der Blöcke.
- Unterstützung für Kompasssensor.
- Unterstützung für Ultraschallsensor.
- Unterstützung für IrSeeker.
- Unterstützung für LED.
- Unterstützung für Farbsensor.
- Unterstützung für CRServo.
- Benutzer werden aufgefordert, den Roboter zu konfigurieren, bevor der Programmiermodus verwendet wird.
- Bietet die Möglichkeit, Audio-Hinweise zu deaktivieren.
- Verschiedene Fehlerkorrekturen und Verbesserungen.
Version 2.00 (veröffentlicht am 16.08.19)
- Dies ist das neue Release für die kommende Saison 2016-2017 der FIRST Tech Challenge.
- Kanalwechsel ist in der FTC Robot Controller App für Moto G der 2. und 3. Generation aktiviert.
- Benutzer können jetzt Anmerkungen (Annotations) verwenden, um ihre Op-Modi zu registrieren/deaktivieren.
- Änderungen bei den Anforderungen an Android SDK, JDK und Build-Tools (minsdk=19, Java 1.7, Build-Tools 23.0.3).
- Standardisierte Einheiten beim analogen Eingang.
- Code für bestehende analoge Sensorklassen bereinigt.
- setChannelMode und getChannelMode wurden aus der Klasse DcMotorController ENTFERNT. Dies ist wichtig – wir setzen die Motormodi nicht mehr über den Motor-Controller.
- setMode und getMode wurden zur Klasse DcMotor hinzugefügt.
- Die Klasse ContinuousRotationServo wurde zum FTC SDK hinzugefügt.
- Die Methode Range.clip() wurde überladen, sodass sie diese Operation für int-, short- und byte-Ganzzahlen unterstützt.
- Es wurden einige Änderungen vorgenommen (neue Methoden hinzugefügt), wie ein Benutzer auf Elemente aus der Hardware-Zuordnung (hardware map) zugreifen kann.
- Benutzer können jetzt das Nullleistungsverhalten eines Gleichstrommotors festlegen, sodass der Motor bei Nullleistung bremst oder frei läuft.
- Ein Prototyp des Blockly-Programmiermodus wurde zum FTC Robot Controller hinzugefügt. Benutzer können den Robot Controller in diesen Modus versetzen und dann ein Gerät (z. B. einen Laptop) mit einem JavaScript-fähigen Browser verwenden, um Blockly-basierte Op-Modi direkt auf den Robot Controller zu schreiben.
- Benutzer können den Roboter jetzt über die FTC Driver Station App remote konfigurieren.
- Das Android-Studio-Projekt unterstützt Android Studio 2.1.x und Compile SDK Version 23 (Marshmallow).
- Das Vuforia Computer Vision SDK wurde in das FTC SDK integriert. Benutzer können Beispiel-Visionsziele verwenden, um Lokalisierungsinformationen auf einem Standard-FTC-Feld zu erhalten.
- Die Projektstruktur wurde neu organisiert, sodass es jetzt ein TeamCode-Paket gibt, in das Benutzer ihre lokalen/benutzerdefinierten Op-Modi legen können.
- Die Inspektionsfunktion wurde in die FTC Robot Controller- und Driver Station-Apps integriert (Danke an Team HazMat… 9277 & 10650!).
- Audio-Hinweise wurden in das FTC SDK aufgenommen.
- Swap-Mechanismus zur Konfigurationsaktivität des FTC Robot Controller hinzugefügt. Wenn Sie z. B. zwei Motor-Controller an einem Roboter haben und diese in Ihrer Konfigurationsdatei falsch identifiziert haben, können Sie die Schaltfläche Swap verwenden, um die Geräte innerhalb der Konfigurationsdatei zu tauschen (so müssen Sie die Konfigurationsinformationen für die beiden Geräte nicht manuell neu eingeben).
- Fix-Mechanismus hinzugefügt, damit Benutzer ein elektronisches Modul einfach ersetzen können. Angenommen, ein Servo-Controller an Ihrem Roboter fällt aus. Sie ersetzen das defekte Modul durch ein neues Modul mit einer anderen Seriennummer als der ursprüngliche Servo-Controller. Sie können die Schaltfläche Fix verwenden, um Ihre Konfigurationsdatei automatisch neu zu konfigurieren, sodass die Seriennummer des neuen Moduls verwendet wird.
Release 16.07.08
- Für das ftc_app-Projekt wurden die Gradle-Dateien geändert, um Android Studio 2.1.x zu unterstützen.
Release 16.03.30
- Für den MIT App Inventor haben die Design-Blöcke neue Symbole, die die Funktion jeder Design-Komponente besser darstellen.
- Einige Änderungen an der Abschaltlogik wurden vorgenommen, um ein robustes Herunterfahren einiger unserer USB-Dienste sicherzustellen.
- Eine Änderung wurde an LinearOpMode vorgenommen, damit eine bestimmte Instanz mehr als einmal ausgeführt werden kann, was für den App Inventor erforderlich ist.
- Javadoc verbessert/aktualisiert.
Release 16.03.09
- Änderungen vorgenommen, um das FTC SDK synchron zu machen (bedeutende Änderung!)
- waitOneFullHardwareCycle() und waitForNextHardwareCycle() werden nicht mehr benötigt und sind veraltet (deprecated).
- runOpMode() (für einen LinearOpMode) ist jetzt vom Hardware-Lese-/Schreib-Thread des Systems entkoppelt.
- loop() (für einen OpMode) ist jetzt vom Hardware-Lese-/Schreib-Thread des Systems entkoppelt.
- Methoden sind synchron.
- Wenn Sie z. B. setMode(DcMotorController.RunMode.RESET_ENCODERS) für einen Motor aufrufen, ist der Encoder garantiert zurückgesetzt, wenn der Methodenaufruf abgeschlossen ist.
- Bei Legacy-Modulen (NXT-kompatibel) muss der Benutzer beim Lesen von oder Schreiben an ein Legacy-Gerät nicht mehr zwischen Lese- und Schreibmodus umschalten.
- Änderungen zur Verbesserung der Zuverlässigkeit/Robustheit während eines ESD-Ereignisses vorgenommen.
- Änderungen vorgenommen, um den Code threadsicher zu machen.
- Debug-Keystore hinzugefügt, sodass alle benutzergenerierten Robot-Controller-APKs denselben signierten Schlüssel verwenden (um Konflikte zu vermeiden, wenn ein Team z. B. mehrere Entwickler-Laptops hat).
- Firmware-Versionsinformationen für Modern-Robotics-Module werden jetzt protokolliert.
- Änderungen zur Verbesserung der Zuverlässigkeit und Robustheit der USB-Kommunikation vorgenommen.
- Unterstützung für Spannungsanzeige für Legacy- (NXT-kompatible) Motor-Controller hinzugefügt.
- Änderungen vorgenommen, um automatische Stoppfunktionen für Op-Modi bereitzustellen.
- Eine LinearOpMode-Klasse stoppt, wenn die Anweisungen in runOpMode() abgeschlossen sind. Der Benutzer muss den Stopp-Button auf der Driver Station nicht drücken.
- Wenn ein Op-Modus von der Driver Station gestoppt wird, aber ein außer Kontrolle geratener/nicht unterbrechbarer Thread weiterbesteht, protokolliert die App eine Fehlermeldung und stürzt dann selbst ab, um den außer Kontrolle geratenen Thread zu stoppen.
- Driver-Station-Benutzeroberfläche geändert, um die niedrigste gemessene Spannung unterhalb der aktuellen Spannung anzuzeigen (12V-Batterie).
- Driver-Station-Benutzeroberfläche geändert, um einen farbigen Hintergrund für die aktuelle Spannung zu haben (grün = gut, gelb = Vorsicht, rot = Gefahr, extrem niedrige Spannung).
- javadoc verbessert (Bearbeitungen und zusätzliche Klassen).
- App-Build-Zeit zur About-Aktivität für Driver-Station- und Robot-Controller-Apps hinzugefügt.
- Lokale IP-Adressen auf der About-Aktivität der Driver Station anzeigen.
- I2cDeviceSynchImpl hinzugefügt.
- I2cDeviceSync-Schnittstelle hinzugefügt.
- seconds() und milliseconds() zu ElapsedTime für mehr Klarheit hinzugefügt.
- getCallbackCount() zu I2cDevice hinzugefügt.
Release 16.02.09
- Verbesserte Batterieprüffunktion, sodass die Spannungswerte regelmäßig (alle 250 ms) auf der Benutzeroberfläche der Driver Station (DS) aktualisiert werden.
- Software verbessert, sodass der Robot Controller (RC) gegenüber USB-Trennungen viel widerstandsfähiger und „selbstheilend“ ist:
- Wenn der Benutzer versucht, den RC mit einem oder mehreren fehlenden Modulen zu starten/neu zu starten, wird eine Warnung angezeigt, aber der Start erfolgt trotzdem.
- Wenn während der Ausführung eines Op-Modus ein oder mehrere Module getrennt werden, zeigen RC und DS Warnungen an, und der Roboter arbeitet trotz der fehlenden Module weiter.
- Wenn ein getrenntes Modul physisch wieder angeschlossen wird, erkennt der RC das Modul automatisch und der Benutzer erhält die Kontrolle über das kürzlich angeschlossene Modul zurück.
- Warnmeldungen sind hilfreicher (identifizieren den Typ des fehlenden Moduls sowie dessen USB-Seriennummer).
- Codeänderungen zur Behebung der Null-Gamepad-Referenz, wenn Benutzer versuchen, im init()-Teil ihres Op-Modus auf die Gamepads zuzugreifen.
- Die Ausgabe des NXT-Lichtsensors ist jetzt korrekt skaliert. Beachten Sie, dass Teams möglicherweise ihre Lichtschwellenwerte in ihren Op-Modi neu einstellen müssen.
- Auf der DS-Benutzeroberfläche verschwindet das Gamepad-Symbol für einen Fahrer, wenn das zugehörige Gamepad getrennt oder dieses Gamepad einem anderen Fahrer zugewiesen wird.
- Die Versionsnummer des Roboterprotokolls (ROBOCOL) wird im About-Bildschirm der RC- und DS-Apps angezeigt.
- Einen Anzeigefilter auf dem Pairing-Bildschirm integriert, der Geräte herausfiltert, die nicht das Format „-“ verwenden. Dieser Filter kann deaktiviert werden, um alle WiFi-Direct-Geräte anzuzeigen.
- Text in der Lizenzdatei aktualisiert.
- Formatierungsfehler in OpticalDistanceSensor.toString() behoben.
- Problem mit einem leeren („“) Gerätenamen behoben, der das WiFi-Direct-Pairing stören würde.
- Änderung vorgenommen, sodass die WiFi-Informationen und Batterieinformationen nach dem Verbinden mit dem RC schneller auf der DS angezeigt werden können.
- Verbesserte Javadoc-Generierung.
- Code geändert, um die zukünftige Unterstützung von Sprachlokalisierung zu erleichtern.
Release 16.01.04
- compileSdkVersion für Apps aktualisiert
- Verhindert, dass WLAN in den Energiesparmodus wechselt
- Nicht verwendeten Import aus der Driver Station entfernt
- Joystick-Code für „Dead zone“ korrigiert.
- LED.getDeviceName und .getConnectionInfo() geben null zurück
- Apps prüfen auf ROBOCOL_VERSION-Konflikt
- Fix für Telemetrie – ebenfalls Off-by-one-Fehler bei der Datengröße / Fehler durch zu kurze Größenbeschränkungen
- Benutzertelemetrieausgabe ist sortiert.
- Formatierungsvarianten zu DbgLog- und RobotLog-APIs hinzugefügt
- Code geändert, um eine lange Liste von Op-Modus-Namen zu ermöglichen.
- Änderungen zur Verbesserung der Threadsicherheit von RobocolDatagramSocket
- Fix für den Fehler „fehlende Hardware lässt Robot Controller von Driver Station getrennt“
- Fix für „schnelles Tippen auf Init/Start verursacht Probleme“ (Toast wird jetzt nur noch im UI-Thread instanziiert).
- Einige Log-Anweisungen für den Thread-Lebenszyklus hinzugefügt.
- Gamepad-Reset-Logik zur Robustheit in initActiveOpMode() verschoben
- Änderungen vorgenommen, um das Risiko von Wettlaufsituationen (Race Conditions) bei öffentlichen Methoden zu verringern.
- Änderungen, um zu kennzeichnen, wenn der WiFi-Direct-Name nicht druckbare Zeichen enthält.
- Korrektur einer Wettlaufsituation zwischen .run() und .close() in ReadWriteRunnableStandard.
- FTDI-Treiber aktualisiert
- ReadWriteRunnableStanard-Schnittstelle öffentlich gemacht.
- Off-by-one-Fehler im Command-Konstruktor behoben
- Spezifische Hardware-Implementierungen in ein eigenes Paket verschoben.
- Spezifische Gamepad-Implementierungen in die Hardware-Bibliothek verschoben.
- LICENSE-Datei auf die neue BSD-Version geändert.
- Wettlaufsituation beim Herunterfahren von Modern-Robotics-USB-Geräten behoben.
- Methoden in den ColorSensor-Klassen wurden synchronisiert.
- isBusy()-Status korrigiert, um das Bewegungsende widerzuspiegeln.
- Tastencode der „back“-Taste korrigiert.
- Die notSupported()-Methode der GyroSensor-Klasse wurde auf protected geändert (sie sollte nicht public sein).
Release 15.11.04.001
- Unterstützung für Modern Robotics Gyro hinzugefügt.
- Die GyroSensor-Klasse unterstützt jetzt den MR-Gyrosensor.
- Benutzer können auf Heading-Daten (um die Z-Achse) zugreifen
- Benutzer können auch auf rohe Gyrodaten (X-, Y- und Z-Achsen) zugreifen.
- Beispiel-Op-Modus MRGyroTest.java enthalten.
- Verbesserte Fehlermeldungen
- Aussagekräftigere Fehlermeldungen für Ausnahmen im Benutzercode.
- DcMotor-API aktualisiert
- Lesemodus bei neuer Adresse in setI2cAddress aktivieren
- Fix, sodass die Driver-Station-App die Gamepads beim Wechseln der Op-Modi zurücksetzt.
- USB-bezogene Codeänderungen, um die USB-Kommunikation reaktionsschneller zu machen und genauere Fehlermeldungen anzuzeigen.
- Fix, sodass sich USB ordnungsgemäß erholt, wenn der USB-Bus fehlerhafte Daten zurückgibt.
- Wettlaufsituation bei der USB-Initialisierung behoben.
- Bessere Fehlerberichterstattung beim FTDI-Öffnen.
- Genauere Meldungen bei USB-Fehlern.
- Fehler behoben, sodass das USB-Gerät geschlossen wird, wenn die Event-Loop-Teardown-Methode nicht aufgerufen wurde.
- Timer-UI-Problem behoben
- Doppelter Namen-UI-Fehler behoben (Legacy-Modul-Konfiguration).
- Wettlaufsituation in EventLoopManager behoben.
- Fix, um Referenzen beim Aktualisieren des Gamepads stabil zu halten.
- Bei Legacy-Matrix-Motor-/Servo-Controllern die Notwendigkeit entfernt, „Motor“ und „Servo“ an Controller-Namen anzuhängen.
- HT-Farbsensor-Treiber aktualisiert, um Konstanten aus der Klasse ModernRoboticsUsbLegacyModule zu verwenden.
- MR-Farbsensor-Treiber aktualisiert, um Konstanten aus der Klasse ModernRoboticsUsbDeviceInterfaceModule zu verwenden.
- I2C-Adressänderung bei allen Farbsensoren korrekt behandeln
- Op-Modi aktualisiert/bereinigt.
- Kommentare im Beispiel-Op-Modus LinearI2cAddressChange.java aktualisiert.
- Aufrufe von „setChannelMode“ durch „setMode“ ersetzt (passend zur neuen Methode der DcMotor-Klasse).
- Op-Modus K9AutoTime.java entfernt.
- Op-Modus MRGyroTest.java hinzugefügt (zeigt, wie der MR-Gyrosensor verwendet wird).
- Op-Modus MRRGBExample.java hinzugefügt (zeigt, wie der MR-Farbsensor verwendet wird).
- Op-Modus HTRGBExample.java hinzugefügt (zeigt, wie der HT-Legacy-Farbsensor verwendet wird).
- MatrixControllerDemo.java hinzugefügt (zeigt, wie der Legacy-Matrix-Controller verwendet wird).
- Javadoc-Dokumentation aktualisiert.
- Release-.apk-Dateien für Robot-Controller- und Driver-Station-Apps aktualisiert.
T. Eng
5. November 2015
Release 15.10.06.002
- Unterstützung für den Legacy-Matrix-9.6V-Motor-/Servo-Controller hinzugefügt.
- build.gradle-Datei bereinigt.
- Kleinere UI- und Fehlerkorrekturen für Driver-Station- und Robot-Controller-Apps.
- Gibt einen Fehler aus, wenn der Ultraschallsensor (NXT) nicht für Legacy-Modul-Port 4 oder 5 konfiguriert ist.
T. Eng
6. Oktober 2015
In dieser neuesten Version des FTC SDK (20150803_001) sind folgende Änderungen zu beachten:
- Neue Benutzeroberflächen für die FTC Driver Station- und FTC Robot Controller-Apps.
- Eine init()-Methode wird zur OpMode-Klasse hinzugefügt.
- In diesem Release wird init() direkt vor der start()-Methode ausgelöst.
- In Zukunft wird die init()-Methode ausgelöst, wenn der Benutzer einen „INIT“-Button auf der Driver Station drückt.
- Die init()- und loop()-Methoden sind jetzt erforderlich (d. h., sie müssen im Op-Modus des Benutzers überschrieben werden).
- Die start()- und stop()-Methoden sind optional.
- Eine neue LinearOpMode-Klasse wird eingeführt.
- Teams können den LinearOpMode-Modus verwenden, um ein lineares (nicht ereignisgesteuertes) Programmiermodell zu erstellen.
- Teams können blockierende Anweisungen wie Thread.sleep() innerhalb eines linearen Op-Modus verwenden.
- Die API für das Legacy-Modul und das Core Device Interface Module wurden aktualisiert.
- Unterstützung für Encoder mit dem Legacy-Modul funktioniert jetzt.
- Die Hardware-Schleife wurde für eine bessere Leistung aktualisiert.
T. Eng
3. August 2015