From 7821a979011e9a98cd567fd17a7defc727b718f6 Mon Sep 17 00:00:00 2001 From: Westside Robotics Date: Mon, 5 Dec 2022 10:21:32 -0800 Subject: [PATCH] 12-5-22 update most references to SDK 8.1.1, and give deep links to Javadocs (with frames) --- Universal-IMU-Interface.md | 40 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/Universal-IMU-Interface.md b/Universal-IMU-Interface.md index 2811798..58acad5 100644 --- a/Universal-IMU-Interface.md +++ b/Universal-IMU-Interface.md @@ -10,14 +10,14 @@ In September 2022, REV Robotics began shipping [**Control Hubs**](https://www.re The new IMU chip is designated [BHI260AP](https://www.bosch-sensortec.com/products/smart-sensors/bhi260ap/), replacing the old Hub's IMU chip [BNO055](https://www.bosch-sensortec.com/products/smart-sensors/bno055/). Both are from Bosch Sensortec. -The new [**FTC SDK**](https://github.com/FIRST-Tech-Challenge/FtcRobotController/releases) **version 8.1** provides a **universal interface** that supports both the BHI260AP and BNO055 IMU. This basic tutorial introduces some new features: +The new [**FTC SDK**](https://github.com/FIRST-Tech-Challenge/FtcRobotController/releases) **version 8.1.1** provides a **universal interface** that supports both the BHI260AP and BNO055 IMU. This basic tutorial introduces some new features: - robot configuration allows selection of IMU type - universal classes and methods supporting both IMU types - three ways to specify Hub mounting orientation on the robot -Teams using the new Control Hub IMU must use the new SDK 8.1. +Teams using the new Control Hub IMU must use the new SDK 8.1.1. -Updating to SDK 8.1 is **optional** for POWERPLAY, if you are not planning to use the new Control Hub IMU. +Updating to SDK 8.1 or 8.1.1 is **optional** for POWERPLAY, if you are not planning to use the new Control Hub IMU. However **all teams** are encouraged to begin using the universal IMU classes and methods for **new** Blocks and Java code. And, migrating **existing code** would allow you to switch easily (and perhaps urgently) to a new Control Hub during the season. @@ -32,7 +32,7 @@ Each Hub's IMU type is listed there, as of FTC SDK 8.0. _Reminder: REV Expansion Hubs purchased after December 2021 have no internal IMU._ -Do you have existing OpModes using the old IMU? Your code can run unchanged, using Hubs with the BNO055. The new SDK 8.1 fully supports legacy Blocks and Java code using classes and methods for the BNO055 IMU. +Do you have existing OpModes using the old IMU? Your code can run unchanged, using Hubs with the BNO055. The new SDK 8.1.1 fully supports legacy Blocks and Java code using classes and methods for the BNO055 IMU. The SDK 8.1 README provides more technical background: >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. @@ -122,7 +122,7 @@ This tutorial will **not** discuss the FTC [Field Coordinate System](https://git ## Physical Hub Mounting -Under SDK 8.1, you can specify the **physical orientation** of the Hub on the robot. This allows you to receive IMU angle values expressed in **robot axes**, useful for understanding and managing the robot's movement. +Under SDK 8.1.1, you can specify the **physical orientation** of the Hub on the robot. This allows you to receive IMU angle values expressed in **robot axes**, useful for understanding and managing the robot's movement. Before jumping into programming, let's discuss your options for physically mounting the Hub on the robot. In general, the Hub's mounting can be considered **Orthogonal** or **Non-Orthogonal**. @@ -158,13 +158,13 @@ Here are some scenarios, ranging from simple to complex: - The Hub is tilted at multiple angles, with or without in-plane rotation. -For any Non-Orthogonal scenarios, SDK 8.1 provides **two ways** to describe the Hub's orientation. See below for the **Angles** method and the **Quaternion** method. +For any Non-Orthogonal scenarios, SDK 8.1.1 provides **two ways** to describe the Hub's orientation. See below for the **Angles** method and the **Quaternion** method.

[[Return to Top|https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki/Universal-IMU-Interface]]

## IMU Programming -SDK 8.1 offers new classes and methods that apply **universally** to both types of IMU. Once configured, the IMU type will not affect your programming. +SDK 8.1.1 offers new classes and methods that apply **universally** to both types of IMU. Once configured, the IMU type will not affect your programming. The programming steps include: - set the IMU **parameters**, or use defaults @@ -232,7 +232,7 @@ In this starting orientation, the Hub axes are **aligned with** the Robot Coordi Hub rotations also follow the right-hand rule. -_The legacy `BNO055IMU` driver used **different Hub axes**: its X axis pointed to the USB port, and Y axis pointed to the left-side motor ports. The new SDK 8.1 universal IMU driver uses the above Hub axes for BNO055 and BHI260AP._ +_The legacy `BNO055IMU` driver used **different Hub axes**: its X axis pointed to the USB port, and Y axis pointed to the left-side motor ports. The new SDK 8.1.1 universal IMU driver uses the above Hub axes for BNO055 and BHI260AP._

[[Return to Top|https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki/Universal-IMU-Interface]]

@@ -298,7 +298,7 @@ Or, consider a single rotation of +30 degrees about the X axis. Namely, the Hub new RevHubOrientationOnRobot(new Quaternion(0.9659258f, 0.258819f, 0.0f, 0.0f, 0)); ``` -This basic tutorial does not cover the math behind Quaternions, an advanced substitute for Euler Angles described above. The SDK 8.1 IMU interface supports the use of Quaternions, for FTC teams familiar with them. +This basic tutorial does not cover the math behind Quaternions, an advanced substitute for Euler Angles described above. The SDK 8.1.1 IMU interface supports the use of Quaternions, for FTC teams familiar with them.