FtcRobotController v8.1
This commit is contained in:
83
README.md
83
README.md
@ -1,16 +1,16 @@
|
||||
## NOTICE
|
||||
|
||||
This repository contains the public FTC SDK for the Freight Frenzy (2021-2022) competition season.
|
||||
This repository contains the public FTC SDK for the POWERPLAY (2022-2023) competition season.
|
||||
|
||||
## 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.
|
||||
|
||||
## Getting Started
|
||||
If you are new to robotics or new to the *FIRST* Tech Challenge, then you should consider reviewing the [FTC Blocks Tutorial](https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki/Blocks-Tutorial) to get familiar with how to use the control system:
|
||||
If you are new to robotics or new to the *FIRST* Tech Challenge, then you should consider reviewing the [FTC Blocks Tutorial](https://ftc-docs.firstinspires.org/programming_resources/blocks/Blocks-Tutorial.html) to get familiar with how to use the control system:
|
||||
|
||||
[FTC Blocks Online Tutorial](https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki/Blocks-Tutorial)
|
||||
[FTC Blocks Online Tutorial](https://ftc-docs.firstinspires.org/programming_resources/blocks/Blocks-Tutorial.html)
|
||||
|
||||
Even if you are an advanced Java programmer, it is helpful to start with the [FTC Blocks tutorial](https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki/Blocks-Tutorial), and then migrate to the [OnBot Java Tool](https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki/OnBot-Java-Tutorial) or to [Android Studio](https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki/Android-Studio-Tutorial) afterwards.
|
||||
Even if you are an advanced Java programmer, it is helpful to start with the [FTC Blocks tutorial](https://ftc-docs.firstinspires.org/programming_resources/blocks/Blocks-Tutorial.html), and then migrate to the [OnBot Java Tool](https://ftc-docs.firstinspires.org/programming_resources/onbot_java/OnBot-Java-Tutorial.html) or to [Android Studio](https://ftc-docs.firstinspires.org/programming_resources/android_studio_java/Android-Studio-Tutorial.html) afterwards.
|
||||
|
||||
## Downloading the Project
|
||||
If you are an Android Studio programmer, there are several ways to download this repo. Note that if you use the Blocks or OnBot Java Tool to program your robot, then you do not need to download this repository.
|
||||
@ -31,7 +31,7 @@ Once you have downloaded and uncompressed (if needed) your folder, you can use A
|
||||
### User Documentation and Tutorials
|
||||
*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:
|
||||
|
||||
[FtcRobotController Online Documentation](https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki)
|
||||
[FIRST Tech Challenge Documentation](https://ftc-docs.firstinspires.org/index.html)
|
||||
|
||||
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.
|
||||
|
||||
@ -41,9 +41,9 @@ The Javadoc reference documentation for the FTC SDK is now available online. Cl
|
||||
[FTC Javadoc Documentation](https://javadoc.io/doc/org.firstinspires.ftc)
|
||||
|
||||
### Online User Forum
|
||||
For technical questions regarding the Control System or the FTC SDK, please visit the FTC Technology forum:
|
||||
For technical questions regarding the Control System or the FTC SDK, please visit the FIRST Tech Challenge Community site:
|
||||
|
||||
[FTC Technology Forum](https://ftcforum.firstinspires.org/forum/ftc-technology)
|
||||
[FIRST Tech Challenge Community](https://ftc-community.firstinspires.org/)
|
||||
|
||||
### Sample OpModes
|
||||
This project contains a large selection of Sample OpModes (robot code examples) which can be cut and pasted into your /teamcode folder to be used as-is, or modified to suit your team's needs.
|
||||
@ -54,6 +54,71 @@ The readme.md file located in the [/TeamCode/src/main/java/org/firstinspires/ftc
|
||||
|
||||
# Release Information
|
||||
|
||||
## Version 8.1 (20221121-115119)
|
||||
|
||||
### Breaking Changes
|
||||
* Deprecates the `OpMode` fields `msStuckDetectInit`, `msStuckDetectInitLoop`, `msStuckDetectStart`, `msStuckDetectLoop`, and `msStuckDetectStop`.
|
||||
* Op Modes no longer have a time limit for `init()`, `init_loop()`, `start()` or `loop()`, so the fields corresponding to those methods are no longer used.
|
||||
* `stop()` still has a time limit, but it is now hardcoded to be 1 second, and cannot be changed using `msStuckDetectStop`.
|
||||
* Deprecates the `OpMode` methods `internalPreInit()`, `internalPostInitLoop()`, and `internalPostLoop()`.
|
||||
* Iterative `OpMode`s will continue to call these methods in case they were overridden.
|
||||
* These methods will not be called at all for `LinearOpMode`s.
|
||||
* Deprecates (and stops respecting) `DeviceProperties.xmlTagAliases`.
|
||||
|
||||
### Enhancements
|
||||
* Adds a new `IMU` interface to Blocks and Java that can be used with both the original BNO055 IMU
|
||||
included in all older Control Hubs and Expansion Hubs, and the new alternative BHI260AP IMU.
|
||||
* You can determine which type of IMU is in your Control Hub by navigating to the Manage page of the web interface.
|
||||
* To learn how to use the new `IMU` interface, see https://ftc-docs.firstinspires.org/programming_resources/imu/imu.html. The `SensorIMU` Blocks sample was also updated to use the new `IMU` interface, and the following Java samples were added:
|
||||
* `SensorIMUOrthogonal`
|
||||
* Use this sample if your REV Hub is mounted so that it is parallel or perpendicular to the
|
||||
bottom of your robot.
|
||||
* `SensorIMUNonOrthogonal`
|
||||
* Use this sample if your REV Hub is mounted to your robot in any other orientation
|
||||
* `ConceptExploringIMUOrientations`
|
||||
* This Op Mode is a tool to help you understand how the orthogonal orientations work, and
|
||||
which one applies to your robot.
|
||||
* The BHI260AP IMU can only be accessed via the new `IMU` interface. The BNO055 IMU can be
|
||||
programmed using the new `IMU` interface, or you can continue to program it using the old `BNO055IMU`
|
||||
interface. If you want to be able to quickly switch to a new Control Hub that may contain the
|
||||
BHI260AP IMU, you should migrate your code to use the new `IMU` interface.
|
||||
* Unlike the old `BNO055IMU` interface, which only worked correctly when the REV Hub was mounted flat
|
||||
on your robot, the `IMU` interface allows you to specify the orientation of the REV Hub on your
|
||||
robot. It will account for this, and give you your orientation in a Robot Coordinate System,
|
||||
instead of a special coordinate system for the REV Hub. As a result, your pitch and yaw will be
|
||||
0 when your *robot* is level, instead of when the REV Hub is level, which will result in much
|
||||
more reliable orientation angle values for most mounting orientations.
|
||||
* Because of the new robot-centric coordinate system, the pitch and roll angles returned by the
|
||||
`IMU` interface will be different from the ones returned by the `BNO055IMU` interface. When you are
|
||||
migrating your code, pay careful attention to the documentation.
|
||||
* If you have calibrated your BNO055, you can provide that calibration data to the new `IMU`
|
||||
interface by passing a `BNO055IMUNew.Parameters` instance to `IMU.initialize()`.
|
||||
* The `IMU` interface is also suitable for implementation by third-party vendors for IMUs that
|
||||
support providing the orientation in the form of a quaternion.
|
||||
* Iterative `OpMode`s (as opposed to `LinearOpMode`s) now run on a dedicated thread.
|
||||
* Cycle times should not be as impacted by everything else going on in the system.
|
||||
* Slow `OpMode`s can no longer increase the amount of time it takes to process network commands, and vice versa.
|
||||
* The `init()`, `init_loop()`, `start()` and `loop()` methods no longer need to return within a certain time frame.
|
||||
* BNO055 IMU legacy driver: restores the ability to initialize in one Op Mode, and then have another Op Mode re-use that
|
||||
initialization. This allows you to maintain the 0-yaw position between Op Modes, if desired.
|
||||
* Allows customized versions of device drivers in the FTC SDK to use the same XML tag.
|
||||
* Before, if you wanted to customize a device driver, you had to copy it to a new class _and_ give
|
||||
it a new XML tag. Giving it a new XML tag meant that to switch which driver was being used, you
|
||||
had to modify your configuration file.
|
||||
* Now, to use your custom driver, all you have to do is specify your custom driver's class when
|
||||
calling `hardwareMap.get()`. To go back to the original driver, specify the original driver
|
||||
class. If you specify an interface that is implemented by both the original driver and the
|
||||
custom driver, there is no guarantee about which implementation will be returned.
|
||||
|
||||
### Bug Fixes
|
||||
* Fixes accessing the "Manage TensorFlow Lite Models" and "Manage Sounds" links and performing
|
||||
Blocks and OnBotJava Op Mode downloads from the REV Hardware Client.
|
||||
* Fixes issue where an I2C device driver would be auto-initialized using the parameters assigned in
|
||||
a previous Op Mode run.
|
||||
* Improves Driver Station popup menu placement in the landscape layout.
|
||||
* Fixes NullPointerException when attempting to get a non-configured BNO055 IMU in a Blocks Op Mode on an RC phone.
|
||||
* Fixes problem with Blocks if a variable is named `orientation`.
|
||||
|
||||
## Version 8.0 (20220907-131644)
|
||||
|
||||
### Breaking Changes
|
||||
@ -88,8 +153,8 @@ The readme.md file located in the [/TeamCode/src/main/java/org/firstinspires/ftc
|
||||
* The exception text in the popup window is both zoomable and scrollable just like a webpage.
|
||||
* Pressing the "OK" button in the popup window will return to the main screen of the Driver Station and allow an Op Mode to be run again immediately, without the need to perform a "Restart Robot"
|
||||
* Adds new Java sample to demonstrate using a hardware class to abstract robot actuators, and share them across multiple Op Modes.
|
||||
* Sample Op Mode is [/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptExternalHardwareClass.java](ConceptExternalHardwareClass.java)
|
||||
* Abstracted hardware class is [/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/RobotHardware.java](RobotHardware.java))
|
||||
* Sample Op Mode is [ConceptExternalHardwareClass.java](FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptExternalHardwareClass.java)
|
||||
* Abstracted hardware class is [RobotHardware.java](FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/RobotHardware.java)
|
||||
* Updates RobotAutoDriveByGyro_Linear Java sample to use REV Control/Expansion hub IMU.
|
||||
* Updates Vuforia samples to reference PowerPlay assets and have correct names and field locations of image targets.
|
||||
* Updates TensorFlow samples to reference PowerPlay assets.
|
||||
|
Reference in New Issue
Block a user