Skip to content

Commit

Permalink
FtcRobotController v6.1
Browse files Browse the repository at this point in the history
  • Loading branch information
CalKestis committed Dec 9, 2020
1 parent 09359bb commit 0c811a0
Show file tree
Hide file tree
Showing 10 changed files with 65 additions and 47 deletions.
2 changes: 1 addition & 1 deletion FtcRobotController/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ android {
buildConfigField "String", "BUILD_TIME", '"' + (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.ROOT).format(new Date())) + '"'
}

compileSdkVersion 28
compileSdkVersion 29

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
Expand Down
14 changes: 7 additions & 7 deletions FtcRobotController/build.release.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
dependencies {
implementation 'org.firstinspires.ftc:Inspection:6.0.1'
implementation 'org.firstinspires.ftc:Blocks:6.0.1'
implementation 'org.firstinspires.ftc:RobotCore:6.0.1'
implementation 'org.firstinspires.ftc:RobotServer:6.0.1'
implementation 'org.firstinspires.ftc:OnBotJava:6.0.1'
implementation 'org.firstinspires.ftc:Hardware:6.0.1'
implementation 'org.firstinspires.ftc:FtcCommon:6.0.1'
implementation 'org.firstinspires.ftc:Inspection:6.1.1'
implementation 'org.firstinspires.ftc:Blocks:6.1.1'
implementation 'org.firstinspires.ftc:RobotCore:6.1.1'
implementation 'org.firstinspires.ftc:RobotServer:6.1.1'
implementation 'org.firstinspires.ftc:OnBotJava:6.1.1'
implementation 'org.firstinspires.ftc:Hardware:6.1.1'
implementation 'org.firstinspires.ftc:FtcCommon:6.1.1'
implementation 'androidx.appcompat:appcompat:1.2.0'
}
7 changes: 4 additions & 3 deletions FtcRobotController/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.qualcomm.ftcrobotcontroller"
android:versionCode="38"
android:versionName="6.0">
android:versionCode="39"
android:versionName="6.1">

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

Expand All @@ -13,7 +13,8 @@
android:extractNativeLibs="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppThemeRedRC" >
android:theme="@style/AppThemeRedRC"
android:usesCleartextTraffic="true">

<!-- Indicates to the ControlHubUpdater what the latest version of the Control Hub is that this app supports -->
<meta-data
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,8 @@ public void runOpMode() {
// If your target is at distance greater than 50 cm (20") you can adjust the magnification value
// to artificially zoom in to the center of image. For best results, the "aspectRatio" argument
// should be set to the value of the images used to create the TensorFlow Object Detection model
// (typically 1.78 or 16/9).

// Uncomment the following line if you want to adjust the magnification and/or the aspect ratio of the input images.
//tfod.setZoom(2.5, 1.78);
// (typically 16/9).
tfod.setZoom(2.5, 16.0/9.0);
}

/** Wait for the game to begin */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,8 @@ public void runOpMode() {
// If your target is at distance greater than 50 cm (20") you can adjust the magnification value
// to artificially zoom in to the center of image. For best results, the "aspectRatio" argument
// should be set to the value of the images used to create the TensorFlow Object Detection model
// (typically 1.78 or 16/9).

// Uncomment the following line if you want to adjust the magnification and/or the aspect ratio of the input images.
//tfod.setZoom(2.5, 1.78);
// (typically 16/9).
tfod.setZoom(2.5, 16.0/9.0);
}

/** Wait for the game to begin */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,8 @@ public void runOpMode() {
// If your target is at distance greater than 50 cm (20") you can adjust the magnification value
// to artificially zoom in to the center of image. For best results, the "aspectRatio" argument
// should be set to the value of the images used to create the TensorFlow Object Detection model
// (typically 1.78 or 16/9).

// Uncomment the following line if you want to adjust the magnification and/or the aspect ratio of the input images.
//tfod.setZoom(2.5, 1.78);
// (typically 16/9).
tfod.setZoom(2.5, 16.0/9.0);
}

/** Wait for the game to begin */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
import org.firstinspires.ftc.robotcore.internal.network.WifiMuteEvent;
import org.firstinspires.ftc.robotcore.internal.network.WifiMuteStateMachine;
import org.firstinspires.ftc.robotcore.internal.opmode.ClassManager;
import org.firstinspires.ftc.robotcore.internal.system.AppAliveNotifier;
import org.firstinspires.ftc.robotcore.internal.system.AppUtil;
import org.firstinspires.ftc.robotcore.internal.system.Assert;
import org.firstinspires.ftc.robotcore.internal.system.PreferencesHelper;
Expand Down Expand Up @@ -603,6 +604,9 @@ else if (id == R.id.action_exit_app) {
}
}

// Allow the user to use the Control Hub operating system's UI, instead of relaunching the app
AppAliveNotifier.getInstance().disableAppWatchdogUntilNextAppStart();

//Finally, nuke the VM from orbit
AppUtil.getInstance().exitApplication();

Expand Down
59 changes: 39 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This repository contains the public FTC SDK for the Ultimate Goal (2020-2021) competition season.

Formerly this software project was hosted [here](https://github.com/FIRST-Tech-Challenge/Skystone). Teams who are competing in the Ultimate Goal Challenge should use this new [FtcRobotController repository](https://github.com/FIRST-Tech-Challenge/FtcRobotController) instead of last season's (no longer updated) Skystone repository.
Formerly this software project was hosted [here](https://github.com/FIRST-Tech-Challenge/Skystone). Teams who are competing in the Ultimate Goal Challenge should use this [new FtcRobotController repository](https://github.com/FIRST-Tech-Challenge/FtcRobotController) instead of last season's (no longer updated) Skystone repository.

## Welcome!
This GitHub repository contains the source code that is used to build an Android app to control a *FIRST* Tech Challenge competition robot. To use this SDK, download/clone the entire project to your local computer.
Expand All @@ -25,24 +25,25 @@ If you are an Android Studio programmer, there are several ways to download this

* You can also download the project folder (as a .zip or .tar.gz archive file) from the Downloads subsection of the [Releases](https://github.com/FIRST-Tech-Challenge/FtcRobotController/releases) page for this repository.

Once you have downloaded and uncompressed (if needed) your folder, you can use Android Studio to import the project ("Import project (Eclipse ADT, Gradle, etc.)").
Once you have downloaded and uncompressed (if needed) your folder, you can use Android Studio to import the folder ("Import project (Eclipse ADT, Gradle, etc.)").

## Getting Help
### User Documentation and Tutorials
*FIRST* maintains documentation with information and tutorials on how to use the *FIRST* Tech Challenge software and robot control system. You can access this documentation using the following link:
*FIRST* maintains online documentation with information and tutorials on how to use the *FIRST* Tech Challenge software and robot control system. You can access this documentation using the following link:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[FtcRobotController Documentation](https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[FtcRobotController Online Documentation](https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki)

Note that the documentation is an "evergreen" document that is constantly being updated and edited. It contains the most current information about the *FIRST* Tech Challenge software and control system.
Note that the online documentation is an "evergreen" document that is constantly being updated and edited. It contains the most current information about the *FIRST* Tech Challenge software and control system.

### Javadoc Reference Material
The Javadoc reference documentation for the FTC SDK is now available online at https://first-tech-challenge.github.io/FtcRobotController.
The Javadoc reference documentation for the FTC SDK is now available online. Click on the following link to view the FTC SDK Javadoc documentation as a live website:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[FTC Javadoc Documentation](https://first-tech-challenge.github.io/FtcRobotController)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[FTC Javadoc Documentation](https://first-tech-challenge.github.io/FtcRobotController/doc/javadoc/index.html)

Documentation is no longer distributed with the repository itself. See the wiki referenced above for tutorials or the javadoc reference for API documentation.
Documentation for the FTC SDK is also included with this repository. There is a subfolder called "doc" which contains several subfolders:

Prebuilt APK's are available on the releases page.
* The folder "apk" contains the .apk files for the FTC Driver Station and FTC Robot Controller apps.
* The folder "javadoc" contains the JavaDoc user documentation for the FTC SDK.

### Online User Forum
For technical questions regarding the Control System or the FTC SDK, please visit the FTC Technology forum:
Expand All @@ -51,25 +52,43 @@ For technical questions regarding the Control System or the FTC SDK, please visi

# Release Information

## Version 6.1 (20201209-113742)
* Makes the scan button on the configuration screen update the list of Expansion Hubs connected via RS-485
* Fixes [SkyStone issue #143](https://github.com/FIRST-Tech-Challenge/SkyStone/issues/143)
* Improves web interface compatibility with older browser and Android System WebView versions.
* Fixes issue in UVC driver where some cameras (e.g. certain MS Lifecams) which reported frame intervals as rounded rather than truncated values (e.g. `666667*100ns` instead of `666666*100ns` for 15FPS) would fail to start streaming.
* Adds support in UVC driver for virtual PTZ control
* Adds support in UVC driver for gain (ISO) control
* Adds support in UVC driver for enabling/disable AE priority. This setting provides a means to tell the camera firmware either
* A) It can undershoot the requested frame rate in order to provide a theoretically better image (i.e. with a longer exposure than the inter-frame period of the selected frame rate allows)
* B) It *must* meet the inter-frame deadline for the selected frame rate, even if the image may be underexposed as a result
* Adds support for the Control Hub OS 1.1.2 Robot Controller watchdog
* The Robot Controller app will be restarted if it stops responding for more than 10 seconds
* Adds support for using the Driver Station app on Android 10+
* Introduces an automatic TeleOp preselection feature
* For details and usage guide, please see [this wiki entry](https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki/Automatically-Loading-a-Driver-Controlled-Op-Mode)
* Shows icon next to OpMode name in the OpMode list dropdown on the Driver Station to indicate the source of the OpMode (i.e. the programming tool used to create it)
* Fixes issue where the Driver Station app would exit after displaying the Configuring WiFi Direct screen
* Fixes Blocks and OnBotJava prompts when accessed via the REV Hardware Client

## Version 6.0 (20200921-085816)

### Important Notes
* Version 6.0 is the minimum legal version for the Ultimate Goal season.
* Prebuilt APKs are now only available from the repository's Releases page.
* Android Studio 4.0 required.
* Android Studio users need to be connected to the internet the first time they build the app (in order to download needed packages for the build). Clearing gradle caches will also require an internet connection for the next build.
* Version 6.0 is the version for the Ultimate Goal season.
* Requires Android Studio 4.0.
* Android Studio users need to be connected to the Internet the first time they build the app (in order to download needed packages for the build).
* Version 5.5 was a moderately large off-season, August 2020, drop. It's worth reviewing those release notes below also.
* Version 5.5 and greater will not work on older Android 4.x and 5.x phones. Users must upgrade to an approved Android 6.x device or newer.
* The default PIDF values for REV motors have been reverted to the default PID values that were used in the 2018-2019 season
* This change was made because the 2018-2019 values turned out to work better for many mechanisms
* This brings the behavior of the REV motors in line with the behavior of all other motors
* If you prefer the 2019-2020 season's behavior for REV motors, here are the PIDF values that were in place, so that you can manually set them in your OpModes:
* If you prefer the 2019-2020 season's behavior for REV motors, here are the PIDF values that were in place, so that you can manually set them in your OpModes:
<br>
**HD Hex motors (all gearboxes):**
Velocity PIDF values: `P = 1.17`, `I = 0.117`, `F = 11.7`
Position PIDF values: `P = 5.0`
**Core Hex motor:**
Velocity PIDF values: `P = 4.96`, `I = 0.496`, `F = 49.6`
**HD Hex motors (all gearboxes):**
Velocity PIDF values: `P = 1.17`, `I = 0.117`, `F = 11.7`
Position PIDF values: `P = 5.0`
**Core Hex motor:**
Velocity PIDF values: `P = 4.96`, `I = 0.496`, `F = 49.6`
Position PIDF values: `P = 5.0`

### New features
Expand All @@ -94,7 +113,7 @@ For technical questions regarding the Control System or the FTC SDK, please visi
* Removes IR readings and calculations not meant for the Broadcom sensor chip

### Bug fixes
* Improved reliability of BNO055IMU IMU initialization to prevent random initialization failures (which manifested as `Problem with 'imu'`).
* Improves reliability of BNO055IMU IMU initialization to prevent random initialization failures (which manifested as `Problem with 'imu'`).

## Version 5.5 (20200824-090813)

Expand Down
6 changes: 3 additions & 3 deletions TeamCode/build.release.gradle
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
dependencies {
implementation project(':FtcRobotController')
implementation 'org.firstinspires.ftc:RobotCore:6.0.1'
implementation 'org.firstinspires.ftc:Hardware:6.0.1'
implementation 'org.firstinspires.ftc:FtcCommon:6.0.1'
implementation 'org.firstinspires.ftc:RobotCore:6.1.1'
implementation 'org.firstinspires.ftc:Hardware:6.1.1'
implementation 'org.firstinspires.ftc:FtcCommon:6.1.1'
implementation (name: 'tfod-release', ext:'aar')
implementation (name: 'tensorflow-lite-0.0.0-nightly', ext:'aar')
}
2 changes: 1 addition & 1 deletion build.common.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ apply plugin: 'com.android.application'

android {

compileSdkVersion 28
compileSdkVersion 29

signingConfigs {
debug {
Expand Down

0 comments on commit 0c811a0

Please sign in to comment.