Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SDK: Update FTC Library To Version 8. #3

Merged
merged 2 commits into from
Sep 20, 2022

Conversation

TheophilusE
Copy link
Owner

Release Information

Version 8.0 (20220907-131644)

Breaking Changes

  • Increases the Robocol version.
    • This means an 8.0 or later Robot Controller or Driver Station will not be able to communicate with a 7.2 or earlier Driver Station or Robot Controller.
    • If you forget to update both apps at the same time, an error message will be shown explaining which app is older and should be updated.
  • Initializing I2C devices now happens when you retrieve them from the HardwareMap for the first time.
    • Previously, all I2C devices would be initialized before the Op Mode even began executing,
      whether you were actually going to use them or not. This could result in reduced performance and
      unnecessary warnings.
    • With this change, it is very important for Java users to retrieve all needed devices from the
      HardwareMap during the Init phase of the Op Mode. Namely, declare a variable for each hardware
      device the Op Mode will use, and assign a value to each. Do not do this during the Run phase, or your
      Op Mode may briefly hang while the devices you are retrieving get initialized.
    • Op Modes that do not use all of the I2C devices specified in the configuration file should take
      less time to initialize. Op Modes that do use all of the specified I2C devices should take the
      same amount of time as previously.
  • Fixes issue #251 by changing the order in which axis rotation rates are read from the angular velocity vector in the BNO055 IMU driver.
  • Deprecates pitchMode in BNO055IMU.Parameters.
    • Setting pitchMode to PitchMode.WINDOWS would break the coordinate conventions used by the driver.
  • Moves OpModeManagerImpl to the com.qualcomm.robotcore.eventloop.opmode package.
    • This breaks third party libraries EasyOpenCV (version 1.5.1 and earlier) and FTC Dashboard (version 0.4.4 and earlier).
  • Deletes the deprecated OpMode method resetStartTime() (use resetRuntime() instead).
  • Deletes the protected LinearOpMode.LinearOpModeHelper class (which was not meant for use by Op Modes).
  • Removes I2C Device (Synchronous) config type (deprecated since 2018)

Enhancements

  • Uncaught exceptions in Op Modes no longer require a Restart Robot
    • A blue screen popping up with a stacktrace is not an SDK error; this replaces the red text in the telemetry area.
    • Since the very first SDK release, Op Mode crashes have put the robot into "EMERGENCY STOP" state, only showing the first line of the exception, and requiring the user to press "Restart Robot" to continue
    • Exceptions during an Op Mode now open a popup window with the same color scheme as the log viewer, containing 15 lines of the exception stacktrace to allow easily tracing down the offending line without needing to connect to view logs over ADB or scroll through large amounts of logs in the log viewer.
    • 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.
  • 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.
  • Adds opt-in support for Java 8 language features to the OnBotJava editor.
    • To opt in, open the OnBotJava Settings, and check Enable beta Java 8 support.
    • Note that Java 8 code will only compile when the Robot Controller runs Android 7.0 Nougat or later.
    • Please report issues here.
  • In OnBotJava, clicking on build errors now correctly jumps to the correct location.
  • Improves OnBotJava autocomplete behavior, to provide better completion options in most cases.
  • Adds a QR code to the Robot Controller Inspection Report when viewed from the Driver Station for scanning by inspectors at competition.
  • Improves I2C performance and reliability in some scenarios.

@TheophilusE TheophilusE added the enhancement New feature or request label Sep 20, 2022
@TheophilusE TheophilusE self-assigned this Sep 20, 2022
@TheophilusE TheophilusE merged commit 2dbfa0e into Development Sep 20, 2022
@TheophilusE TheophilusE deleted the TE/FTC-RobotController-V8 branch September 20, 2022 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

BNO055IMU angular velocity axes do not match those of angular orientation
1 participant