- Notifications
You must be signed in to change notification settings - Fork98
OpenFTC/OpenRC-Turbo
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
OpenRC is a modified version of the officialFTC SDKin which all of the source code that is normally tucked away inside the AAR files has been extracted into modules. This makes it easy to see and modify almost the entirety of the Robot Controller app's source code. In addition, the history in Git shows all changes that have been made to the core code since OpenRC's inception. This complements the changelogs that FIRST provides, allowing teams to see exactly what code has been changed.
According to the2021-2022 Game Manual Part 1, teams are not allowed to replace or modify the portions of the SDK which are distributed as AAR files, per<RS08>
. This means that in its default configuration, OpenRC isnot legal for competition.
HOWEVER, in order to address this, OpenRC has astock
build variant which will compile theTeamCode
andFtcRobotController
modules against the official, unmodified AAR files, rather than against the extracted modules.
Compatible with all legal FTC Robot Controller devices for the 2021-2022 season, including the Control Hub.
Normal SDK 7.0 APK size: 63MB
Stock - 52.1MB APK(1.2x smaller)
- Competition legal
- 64-bit libs removed
Turbo - 11.6MB APK(5.4x smaller)
Note: If you would like to use Blocks, you will need to copy your private Vuforia key into the
Blocks/src/main/assets/CzechWolf
file- Vuforia native library loaded dynamically
- Vuforia/TF datasets loaded dynamically
- OnBotJava removed
Extreme Turbo - 7.1MB APK(8.9x smaller)
- Vuforia native library loaded dynamically
- Vuforia/TF datasets loaded dynamically
- OnBotJava removed
- Blocks removed
- Sound files removed
- Fork this repository
- Clone your fork
- Do
git remote add upstream https://github.com/OpenFTC/OpenRC-Turbo.git
- Copy all of the files found in the
filesForDynamicLoad
folder of this repo into theFIRST/vision
folder on the RC's internal storage - Also copy the Freight Frenzy game assets fromthe AAR into that same folder (you can also find them attached on the 7.0 release tag)
- Select your desired build variant (see theSwitching Build Variants section)
Assuming you followed the above setup process, all that you need to do to update your fork when a new OpenRC release is available is:
git pull upstream master
- Perform a Gradle Sync
- If the project fails to build, tryClean Project,Rebuild Project, andInvalidate Caches / Restart
IMPORTANT: make sure to test that your project compiles correctly with the stock variant at least a week before your competition!
Note: you may get a "variant conflict" when switching variants. You can fix this by changing the conflicting module's variant to match the variant you want.
- Open the Build Variants tab in the lower left hand corner of Android Studio
- In the dropdown for theTeamCode module, select your desired variant
- Perform a Gradle sync
To prevent confusion, OpenRC does not have its own version number. The version number will directly reflect the SDK version that the release is based on. However, the version number will have a letter appended to the end of it, which will be incremented (A-Z) for each release of OpenRC which is based on the same SDK version. When OpenRC is updated to be based on a new SDK version, the letter will reset to A.
For instance, the 3rd release of OpenRC based on SDK v5.0 would be5.0C
, whereas the first release of OpenRC based on SDK v5.1 would be5.1A
.
In order to reduce APK size, the Turbo and Extreme Turbo variants do not bundle the Vuforia and TensorFlow datasets in the APK. However, once copied onto the internal storage (see step #4 in theSetup Process section), you can still use them in your OpMode by making a very minor change.
NOTE: The samples in this repo have already been adjusted with this change.
/* * For Vuforia */// Find a line similar to this in the programvuforia.loadTrackablesFromAsset("DatasetName");// And replace it with this (obviously adjusting the DatasetName)vuforia.loadTrackablesFromFile("/sdcard/FIRST/vision/DatasetName");/* * For TensorFlow */// Find a line similar to this in the programtfod.loadModelFromAsset("DatasetName.tflite");// And replace it with this (obviously adjusting the DatasetName)tfod.loadModelFromFile("/sdcard/FIRST/vision/DatasetName.tflite");
Released on 14 October 2022
- Updates to SDK v8.0
Released on 5 September 2022
- Updates to SDK v7.2
Released on 8 February 2022
- Updates to SDK v7.1
Released on 27 September 2021
- Updates to SDK v7.0
- Requires NDK for building
- Now looks for libVuforiaReal.so in the FIRST/vision folder
- Also requires new TF / Vuforia datasets to be downloaded from the releases page
Released on 27 February 2021
- Updates to SDK v6.2
Released on 18 December 2020
- Updates to SDK v6.1
- Fixes issue #9
Released on 25 September 2020
- Updates to SDK v6.0
- Changes vision datasets to be loaded from
vision
subfolder ofFIRST
folder to prevent the Vuforia XML files from appearing in the configuration editor
Released on 30 August 2020
- Shrinks Turbo/ExtremeTurbo APK size by a few hundred KB since 5.5A release
- Adds core web management to Extreme Turbo variant, increasing compatibility with Control Hub
- Logs build variant to RobotLog
Released on 28 August 2020
- Update to SDK v5.5
Released on 11 August 2020
- Improve compatibility with Control Hub
Released on 15 January 2020
- Update to SDK v5.4
Released on 22 November 2019
- Fix TFOD crash on stock due to incorrect version of TFOD library being used (which conflicted with pre-compiled official FTC SDK AARs)
Released on 19 October 2019
- Update to SDK v5.3
Released on 19 September 2019
- Remove universal Blocks Vuforia key per request of FIRST. If you would like to use Blocks, you will need to copy your private Vuforia key into the
Blocks/src/main/assets/CzechWolf
file.
Released on 11 September 2019
- Update to SDK v5.2
- NOTE: You will need to copy some additional files to the
FIRST
folder of the internal storage after you update. See step #4 in theSetup Process section - NOTE: The TensorFlow and Vuforia sample OpModes for SKYSTONE have been modified slightly to load the datasets from internal storage.Use the samples in this repo; the stock samples will fail on variants other than stock. Please also see theDynamic Loading of TensorFlow and Vuforia Datasets section of this readme.
Released on 26 August 2019
- Update to SDK v5.1
- Updated dynamic Vuforia loader to enforce being run on Android 6.0 or higher
Released on 21 August 2019
- Initial release.