From 5c8b4c448b2508fd93df7d8e050a324eb7c7dc56 Mon Sep 17 00:00:00 2001 From: Cal Kestis Date: Fri, 7 Jul 2023 15:15:11 -0700 Subject: [PATCH] FtcRobotController v8.2 --- .github/CONTRIBUTING.md | 8 +- .gitignore | 20 +- FtcRobotController/build.gradle | 6 +- .../src/main/AndroidManifest.xml | 4 +- .../external/samples/ConceptAprilTag.java | 192 ++++++++++++ .../external/samples/ConceptAprilTagEasy.java | 148 +++++++++ .../ConceptAprilTagOptimizeExposure.java | 248 +++++++++++++++ .../ConceptAprilTagSwitchableCameras.java | 195 ++++++++++++ .../external/samples/ConceptDoubleVision.java | 201 ++++++++++++ .../ConceptTensorFlowObjectDetection.java | 226 +++++++------- .../ConceptTensorFlowObjectDetectionEasy.java | 141 +++++++++ ...rFlowObjectDetectionSwitchableCameras.java | 243 ++++++--------- ...onceptTensorFlowObjectDetectionWebcam.java | 190 ------------ .../samples/ConceptVuMarkIdentification.java | 186 ----------- .../ConceptVuMarkIdentificationWebcam.java | 194 ------------ .../ConceptVuforiaDriveToTargetWebcam.java | 203 ------------ .../ConceptVuforiaFieldNavigation.java | 283 ----------------- .../ConceptVuforiaFieldNavigationWebcam.java | 274 ---------------- .../FTC_FieldCoordinateSystemDefinition.pdf | Bin 496836 -> 0 bytes .../samples/RobotAutoDriveByGyro_Linear.java | 2 +- .../samples/RobotAutoDriveToAprilTagOmni.java | 293 ++++++++++++++++++ .../samples/RobotAutoDriveToAprilTagTank.java | 271 ++++++++++++++++ .../samples/UtilityCameraFrameCapture.java | 129 ++++++++ .../internal/FtcRobotControllerActivity.java | 4 +- .../res/layout/activity_ftc_controller.xml | 7 - README.md | 66 +++- build.common.gradle | 5 +- build.dependencies.gradle | 23 +- build.gradle | 5 +- 29 files changed, 2125 insertions(+), 1642 deletions(-) create mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTag.java create mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagEasy.java create mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagOptimizeExposure.java create mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagSwitchableCameras.java create mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptDoubleVision.java create mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionEasy.java delete mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionWebcam.java delete mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuMarkIdentification.java delete mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuMarkIdentificationWebcam.java delete mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaDriveToTargetWebcam.java delete mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaFieldNavigation.java delete mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaFieldNavigationWebcam.java delete mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/FTC_FieldCoordinateSystemDefinition.pdf create mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/RobotAutoDriveToAprilTagOmni.java create mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/RobotAutoDriveToAprilTagTank.java create mode 100644 FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/UtilityCameraFrameCapture.java diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index bfd93bc..4d37ce7 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -18,7 +18,7 @@ If what you've read so far makes little sense, there are some very good git lear [Git Book](https://git-scm.com/book/en/v2) [Interactive Git Tutorial](https://try.github.io) -##### Guidlines for experienced GIT users. +### Guidlines for experienced GIT users. If you are absolutely certain that you want to push the big green button above, read on. Otherwise back _slowly away from keyboard_. @@ -38,9 +38,9 @@ This section guides you through filing a bug report. The better the report the #### Before submitting a bug report -- Check the [forums](http://ftcforum.usfirst.org/forum.php) to see if someone else has run into the problem and whether there is an official solution that doesn't require a new SDK. +- Check the [forums](http://ftcforum.firstinspires.org/forum.php) to see if someone else has run into the problem and whether there is an official solution that doesn't require a new SDK. -- Perform a search of current [issues](https://github.com/ftctechnh/ftc_app/issues) to see if the problem has already been reported. If so, add a comment to the existing issue instead of creating a new one. +- Perform a search of current [issues](https://github.com/FIRST-Tech-Challenge/FtcRobotController/issues) to see if the problem has already been reported. If so, add a comment to the existing issue instead of creating a new one. #### How Do I Submit A (Good) Bug Report? @@ -65,4 +65,4 @@ FIRST volunteers are awesome. You all have great ideas and we want to hear them Enhancements should be broadly applicable to a large majority of teams, should not force teams to change their workflow, and should provide real value to the mission of FIRST as it relates to engaging youth in engineering activities. -The best way to get momentum behind new features is to post a description of your idea in the forums. Build community support for it. The FTC Technology Team monitors the forums. We'll hear you and if there's a large enough call for the feature it's very likely to get put on the list for a future release. +The best way to get momentum behind new features is to post a description of your idea in the discussions section of this repository. Build community support for it. The FTC Technology Team monitors the discussions. We'll hear you and if there's a large enough call for the feature it's very likely to get put on the list for a future release. diff --git a/.gitignore b/.gitignore index 7d82b7e..b85aa2f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,8 +9,9 @@ # Files for the ART/Dalvik VM *.dex -# Java class files +# Java/JDK files *.class +*.hprof # Generated files bin/ @@ -40,17 +41,10 @@ captures/ # IntelliJ *.iml -.idea/workspace.xml -.idea/tasks.xml -.idea/gradle.xml -.idea/assetWizardSettings.xml -.idea/dictionaries -.idea/libraries -# Android Studio 3 in .gitignore file. -.idea/caches -.idea/modules.xml -# Comment next line if keeping position of elements in Navigation Editor is relevant for you -.idea/navEditor.xml +.idea/ + +# For Mac users +.DS_Store # Keystore files # Uncomment the following lines if you do not want to check your keystore files in. @@ -84,4 +78,4 @@ lint/intermediates/ lint/generated/ lint/outputs/ lint/tmp/ -# lint/reports/ +# lint/reports/ \ No newline at end of file diff --git a/FtcRobotController/build.gradle b/FtcRobotController/build.gradle index 7268b91..e25651f 100644 --- a/FtcRobotController/build.gradle +++ b/FtcRobotController/build.gradle @@ -8,7 +8,7 @@ apply plugin: 'com.android.library' android { defaultConfig { - minSdkVersion 23 + minSdkVersion 24 //noinspection ExpiredTargetSdkVersion targetSdkVersion 28 buildConfigField "String", "APP_BUILD_TIME", '"' + (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.ROOT).format(new Date())) + '"' @@ -17,8 +17,8 @@ android { compileSdkVersion 29 compileOptions { - sourceCompatibility JavaVersion.VERSION_1_7 - targetCompatibility JavaVersion.VERSION_1_7 + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 } namespace = 'com.qualcomm.ftcrobotcontroller' } diff --git a/FtcRobotController/src/main/AndroidManifest.xml b/FtcRobotController/src/main/AndroidManifest.xml index 075bba5..79cbfa1 100644 --- a/FtcRobotController/src/main/AndroidManifest.xml +++ b/FtcRobotController/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="50" + android:versionName="8.2"> diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTag.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTag.java new file mode 100644 index 0000000..e1a53f1 --- /dev/null +++ b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTag.java @@ -0,0 +1,192 @@ +/* Copyright (c) 2023 FIRST. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted (subject to the limitations in the disclaimer below) provided that + * the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * Neither the name of FIRST nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS + * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.firstinspires.ftc.robotcontroller.external.samples; + +import com.qualcomm.robotcore.eventloop.opmode.Disabled; +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; +import java.util.List; +import android.util.Size; +import org.firstinspires.ftc.robotcore.external.hardware.camera.BuiltinCameraDirection; +import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; +import org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit; +import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit; +import org.firstinspires.ftc.vision.VisionPortal; +import org.firstinspires.ftc.vision.apriltag.AprilTagDetection; +import org.firstinspires.ftc.vision.apriltag.AprilTagProcessor; +import org.firstinspires.ftc.vision.apriltag.AprilTagGameDatabase; + +/** + * This 2023-2024 OpMode illustrates the basics of AprilTag recognition and pose estimation, + * including Java Builder structures for specifying Vision parameters. + * + * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. + * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. + */ +@TeleOp(name = "Concept: AprilTag", group = "Concept") +@Disabled +public class ConceptAprilTag extends LinearOpMode { + + private static final boolean USE_WEBCAM = true; // true for webcam, false for phone camera + + /** + * {@link #aprilTag} is the variable to store our instance of the AprilTag processor. + */ + private AprilTagProcessor aprilTag; + + /** + * {@link #visionPortal} is the variable to store our instance of the vision portal. + */ + private VisionPortal visionPortal; + + @Override + public void runOpMode() { + + initAprilTag(); + + // Wait for the DS start button to be touched. + telemetry.addData("DS preview on/off", "3 dots, Camera Stream"); + telemetry.addData(">", "Touch Play to start OpMode"); + telemetry.update(); + waitForStart(); + + if (opModeIsActive()) { + while (opModeIsActive()) { + + telemetryAprilTag(); + + // Push telemetry to the Driver Station. + telemetry.update(); + + // Save CPU resources; can resume streaming when needed. + if (gamepad1.dpad_down) { + visionPortal.stopStreaming(); + } else if (gamepad1.dpad_up) { + visionPortal.resumeStreaming(); + } + + // Share the CPU. + sleep(20); + } + } + + // Save more CPU resources when camera is no longer needed. + visionPortal.close(); + + } // end method runOpMode() + + /** + * Initialize the AprilTag processor. + */ + private void initAprilTag() { + + // Create the AprilTag processor. + aprilTag = new AprilTagProcessor.Builder() + //.setDrawAxes(false) + //.setDrawCubeProjection(false) + //.setDrawTagOutline(true) + //.setTagFamily(AprilTagProcessor.TagFamily.TAG_36h11) + //.setTagLibrary(AprilTagGameDatabase.getCenterStageTagLibrary()) + //.setOutputUnits(DistanceUnit.INCH, AngleUnit.DEGREES) + + // == CAMERA CALIBRATION == + // If you do not manually specify calibration parameters, the SDK will attempt + // to load a predefined calibration for your camera. + //.setLensIntrinsics(578.272, 578.272, 402.145, 221.506) + + // ... these parameters are fx, fy, cx, cy. + + .build(); + + // Create the vision portal by using a builder. + VisionPortal.Builder builder = new VisionPortal.Builder(); + + // Set the camera (webcam vs. built-in RC phone camera). + if (USE_WEBCAM) { + builder.setCamera(hardwareMap.get(WebcamName.class, "Webcam 1")); + } else { + builder.setCamera(BuiltinCameraDirection.BACK); + } + + // Choose a camera resolution. Not all cameras support all resolutions. + //builder.setCameraResolution(new Size(640, 480)); + + // Enable the RC preview (LiveView). Set "false" to omit camera monitoring. + //builder.enableCameraMonitoring(true); + + // Set the stream format; MJPEG uses less bandwidth than default YUY2. + //builder.setStreamFormat(VisionPortal.StreamFormat.YUY2); + + // Choose whether or not LiveView stops if no processors are enabled. + // If set "true", monitor shows solid orange screen if no processors enabled. + // If set "false", monitor shows camera view without annotations. + //builder.setAutoStopLiveView(false); + + // Set and enable the processor. + builder.addProcessor(aprilTag); + + // Build the Vision Portal, using the above settings. + visionPortal = builder.build(); + + // Disable or re-enable the aprilTag processor at any time. + //visionPortal.setProcessorEnabled(aprilTag, true); + + } // end method initAprilTag() + + + /** + * Function to add telemetry about AprilTag detections. + */ + private void telemetryAprilTag() { + + List currentDetections = aprilTag.getDetections(); + telemetry.addData("# AprilTags Detected", currentDetections.size()); + + // Step through the list of detections and display info for each one. + for (AprilTagDetection detection : currentDetections) { + if (detection.metadata != null) { + telemetry.addLine(String.format("\n==== (ID %d) %s", detection.id, detection.metadata.name)); + telemetry.addLine(String.format("XYZ %6.1f %6.1f %6.1f (inch)", detection.ftcPose.x, detection.ftcPose.y, detection.ftcPose.z)); + telemetry.addLine(String.format("PRY %6.1f %6.1f %6.1f (deg)", detection.ftcPose.pitch, detection.ftcPose.roll, detection.ftcPose.yaw)); + telemetry.addLine(String.format("RBE %6.1f %6.1f %6.1f (inch, deg, deg)", detection.ftcPose.range, detection.ftcPose.bearing, detection.ftcPose.elevation)); + } else { + telemetry.addLine(String.format("\n==== (ID %d) Unknown", detection.id)); + telemetry.addLine(String.format("Center %6.0f %6.0f (pixels)", detection.center.x, detection.center.y)); + } + } // end for() loop + + // Add "key" information to telemetry + telemetry.addLine("\nkey:\nXYZ = X (Right), Y (Forward), Z (Up) dist."); + telemetry.addLine("PRY = Pitch, Roll & Yaw (XYZ Rotation)"); + telemetry.addLine("RBE = Range, Bearing & Elevation"); + + } // end method telemetryAprilTag() + +} // end class diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagEasy.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagEasy.java new file mode 100644 index 0000000..4913a10 --- /dev/null +++ b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagEasy.java @@ -0,0 +1,148 @@ +/* Copyright (c) 2023 FIRST. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted (subject to the limitations in the disclaimer below) provided that + * the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * Neither the name of FIRST nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS + * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.firstinspires.ftc.robotcontroller.external.samples; + +import com.qualcomm.robotcore.eventloop.opmode.Disabled; +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; +import java.util.List; +import org.firstinspires.ftc.robotcore.external.hardware.camera.BuiltinCameraDirection; +import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; +import org.firstinspires.ftc.vision.VisionPortal; +import org.firstinspires.ftc.vision.apriltag.AprilTagDetection; +import org.firstinspires.ftc.vision.apriltag.AprilTagProcessor; + +/** + * This 2023-2024 OpMode illustrates the basics of AprilTag recognition and pose estimation, using + * the easy way. + * + * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. + * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. + */ +@TeleOp(name = "Concept: AprilTag Easy", group = "Concept") +@Disabled +public class ConceptAprilTagEasy extends LinearOpMode { + + private static final boolean USE_WEBCAM = true; // true for webcam, false for phone camera + + /** + * {@link #aprilTag} is the variable to store our instance of the AprilTag processor. + */ + private AprilTagProcessor aprilTag; + + /** + * {@link #visionPortal} is the variable to store our instance of the vision portal. + */ + private VisionPortal visionPortal; + + @Override + public void runOpMode() { + + initAprilTag(); + + // Wait for the DS start button to be touched. + telemetry.addData("DS preview on/off", "3 dots, Camera Stream"); + telemetry.addData(">", "Touch Play to start OpMode"); + telemetry.update(); + waitForStart(); + + if (opModeIsActive()) { + while (opModeIsActive()) { + + telemetryAprilTag(); + + // Push telemetry to the Driver Station. + telemetry.update(); + + // Save CPU resources; can resume streaming when needed. + if (gamepad1.dpad_down) { + visionPortal.stopStreaming(); + } else if (gamepad1.dpad_up) { + visionPortal.resumeStreaming(); + } + + // Share the CPU. + sleep(20); + } + } + + // Save more CPU resources when camera is no longer needed. + visionPortal.close(); + + } // end method runOpMode() + + /** + * Initialize the AprilTag processor. + */ + private void initAprilTag() { + + // Create the AprilTag processor the easy way. + aprilTag = AprilTagProcessor.easyCreateWithDefaults(); + + // Create the vision portal the easy way. + if (USE_WEBCAM) { + visionPortal = VisionPortal.easyCreateWithDefaults( + hardwareMap.get(WebcamName.class, "Webcam 1"), aprilTag); + } else { + visionPortal = VisionPortal.easyCreateWithDefaults( + BuiltinCameraDirection.BACK, aprilTag); + } + + } // end method initAprilTag() + + /** + * Function to add telemetry about AprilTag detections. + */ + private void telemetryAprilTag() { + + List currentDetections = aprilTag.getDetections(); + telemetry.addData("# AprilTags Detected", currentDetections.size()); + + // Step through the list of detections and display info for each one. + for (AprilTagDetection detection : currentDetections) { + if (detection.metadata != null) { + telemetry.addLine(String.format("\n==== (ID %d) %s", detection.id, detection.metadata.name)); + telemetry.addLine(String.format("XYZ %6.1f %6.1f %6.1f (inch)", detection.ftcPose.x, detection.ftcPose.y, detection.ftcPose.z)); + telemetry.addLine(String.format("PRY %6.1f %6.1f %6.1f (deg)", detection.ftcPose.pitch, detection.ftcPose.roll, detection.ftcPose.yaw)); + telemetry.addLine(String.format("RBE %6.1f %6.1f %6.1f (inch, deg, deg)", detection.ftcPose.range, detection.ftcPose.bearing, detection.ftcPose.elevation)); + } else { + telemetry.addLine(String.format("\n==== (ID %d) Unknown", detection.id)); + telemetry.addLine(String.format("Center %6.0f %6.0f (pixels)", detection.center.x, detection.center.y)); + } + } // end for() loop + + // Add "key" information to telemetry + telemetry.addLine("\nkey:\nXYZ = X (Right), Y (Forward), Z (Up) dist."); + telemetry.addLine("PRY = Pitch, Roll & Yaw (XYZ Rotation)"); + telemetry.addLine("RBE = Range, Bearing & Elevation"); + + } // end method telemetryAprilTag() + +} // end class diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagOptimizeExposure.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagOptimizeExposure.java new file mode 100644 index 0000000..b36e4b5 --- /dev/null +++ b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagOptimizeExposure.java @@ -0,0 +1,248 @@ +/* Copyright (c) 2023 FIRST. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted (subject to the limitations in the disclaimer below) provided that + * the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * Neither the name of FIRST nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS + * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.firstinspires.ftc.robotcontroller.external.samples; + +import com.qualcomm.robotcore.eventloop.opmode.Disabled; +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; +import com.qualcomm.robotcore.util.Range; + +import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; +import org.firstinspires.ftc.robotcore.external.hardware.camera.controls.ExposureControl; +import org.firstinspires.ftc.robotcore.external.hardware.camera.controls.GainControl; + +import org.firstinspires.ftc.vision.VisionPortal; +import org.firstinspires.ftc.vision.apriltag.AprilTagDetection; +import org.firstinspires.ftc.vision.apriltag.AprilTagProcessor; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * This OpMode determines the best Exposure for minimizing image motion-blur on a Webcam + * Note that it is not possible to control the exposure for a Phone Camera, so if you are using a Phone for the Robot Controller + * this OpMode/Feature only applies to an externally connected Webcam + * + * The goal is to determine the smallest (shortest) Exposure value that still provides reliable Tag Detection. + * Starting with the minimum Exposure and maximum Gain, the exposure is slowly increased until the Tag is + * detected reliably from the likely operational distance. + * + * + * The best way to run this optimization is to view the camera preview screen while changing the exposure and gains. + * + * To do this, you need to view the RobotController screen directly (not from Driver Station) + * This can be done directly from a RC phone screen (if you are using an external Webcam), but for a Control Hub you must either plug an + * HDMI monitor into the Control Hub HDMI port, or use an external viewer program like ScrCpy (https://scrcpy.org/) + * + * Use Android Studio to Copy this Class, and Paste it into the TeamCode/src/main/java/org/firstinspires/ftc/teamcode folder. + * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. + */ + +@TeleOp(name="Optimize AprilTag Exposure", group = "Concept") +@Disabled +public class ConceptAprilTagOptimizeExposure extends LinearOpMode +{ + private VisionPortal visionPortal = null; // Used to manage the video source. + private AprilTagProcessor aprilTag; // Used for managing the AprilTag detection process. + private int myExposure ; + private int minExposure ; + private int maxExposure ; + private int myGain ; + private int minGain ; + private int maxGain ; + + boolean thisExpUp = false; + boolean thisExpDn = false; + boolean thisGainUp = false; + boolean thisGainDn = false; + + boolean lastExpUp = false; + boolean lastExpDn = false; + boolean lastGainUp = false; + boolean lastGainDn = false; + @Override public void runOpMode() + { + // Initialize the Apriltag Detection process + initAprilTag(); + + // Establish Min and Max Gains and Exposure. Then set a low exposure with high gain + getCameraSetting(); + myExposure = Math.min(5, minExposure); + myGain = maxGain; + setManualExposure(myExposure, myGain); + + // Wait for the match to begin. + telemetry.addData("Camera preview on/off", "3 dots, Camera Stream"); + telemetry.addData(">", "Touch Play to start OpMode"); + telemetry.update(); + waitForStart(); + + while (opModeIsActive()) + { + telemetry.addLine("Find lowest Exposure that gives reliable detection."); + telemetry.addLine("Use Left bump/trig to adjust Exposure."); + telemetry.addLine("Use Right bump/trig to adjust Gain.\n"); + + // Display how many Tags Detected + List currentDetections = aprilTag.getDetections(); + int numTags = currentDetections.size(); + if (numTags > 0 ) + telemetry.addData("Tag", "####### %d Detected ######", currentDetections.size()); + else + telemetry.addData("Tag", "----------- none - ----------"); + + telemetry.addData("Exposure","%d (%d - %d)", myExposure, minExposure, maxExposure); + telemetry.addData("Gain","%d (%d - %d)", myGain, minGain, maxGain); + telemetry.update(); + + // check to see if we need to change exposure or gain. + thisExpUp = gamepad1.left_bumper; + thisExpDn = gamepad1.left_trigger > 0.25; + thisGainUp = gamepad1.right_bumper; + thisGainDn = gamepad1.right_trigger > 0.25; + + // look for clicks to change exposure + if (thisExpUp && !lastExpUp) { + myExposure = Range.clip(myExposure + 1, minExposure, maxExposure); + setManualExposure(myExposure, myGain); + } else if (thisExpDn && !lastExpDn) { + myExposure = Range.clip(myExposure - 1, minExposure, maxExposure); + setManualExposure(myExposure, myGain); + } + + // look for clicks to change the gain + if (thisGainUp && !lastGainUp) { + myGain = Range.clip(myGain + 1, minGain, maxGain ); + setManualExposure(myExposure, myGain); + } else if (thisGainDn && !lastGainDn) { + myGain = Range.clip(myGain - 1, minGain, maxGain ); + setManualExposure(myExposure, myGain); + } + + lastExpUp = thisExpUp; + lastExpDn = thisExpDn; + lastGainUp = thisGainUp; + lastGainDn = thisGainDn; + + sleep(20); + } + } + + /** + * Initialize the AprilTag processor. + */ + private void initAprilTag() { + // Create the AprilTag processor by using a builder. + aprilTag = new AprilTagProcessor.Builder().build(); + + // Create the WEBCAM vision portal by using a builder. + visionPortal = new VisionPortal.Builder() + .setCamera(hardwareMap.get(WebcamName.class, "Webcam 1")) + .addProcessor(aprilTag) + .build(); + } + + /* + Manually set the camera gain and exposure. + Can only be called AFTER calling initAprilTag(); + Returns true if controls are set. + */ + private boolean setManualExposure(int exposureMS, int gain) { + // Ensure Vision Portal has been setup. + if (visionPortal == null) { + return false; + } + + // Wait for the camera to be open + if (visionPortal.getCameraState() != VisionPortal.CameraState.STREAMING) { + telemetry.addData("Camera", "Waiting"); + telemetry.update(); + while (!isStopRequested() && (visionPortal.getCameraState() != VisionPortal.CameraState.STREAMING)) { + sleep(20); + } + telemetry.addData("Camera", "Ready"); + telemetry.update(); + } + + // Set camera controls unless we are stopping. + if (!isStopRequested()) + { + // Set exposure. Make sure we are in Manual Mode for these values to take effect. + ExposureControl exposureControl = visionPortal.getCameraControl(ExposureControl.class); + if (exposureControl.getMode() != ExposureControl.Mode.Manual) { + exposureControl.setMode(ExposureControl.Mode.Manual); + sleep(50); + } + exposureControl.setExposure((long)exposureMS, TimeUnit.MILLISECONDS); + sleep(20); + + // Set Gain. + GainControl gainControl = visionPortal.getCameraControl(GainControl.class); + gainControl.setGain(gain); + sleep(20); + return (true); + } else { + return (false); + } + } + + /* + Read this camera's minimum and maximum Exposure and Gain settings. + Can only be called AFTER calling initAprilTag(); + */ + private void getCameraSetting() { + // Ensure Vision Portal has been setup. + if (visionPortal == null) { + return; + } + + // Wait for the camera to be open + if (visionPortal.getCameraState() != VisionPortal.CameraState.STREAMING) { + telemetry.addData("Camera", "Waiting"); + telemetry.update(); + while (!isStopRequested() && (visionPortal.getCameraState() != VisionPortal.CameraState.STREAMING)) { + sleep(20); + } + telemetry.addData("Camera", "Ready"); + telemetry.update(); + } + + // Get camera control values unless we are stopping. + if (!isStopRequested()) { + ExposureControl exposureControl = visionPortal.getCameraControl(ExposureControl.class); + minExposure = (int)exposureControl.getMinExposure(TimeUnit.MILLISECONDS) + 1; + maxExposure = (int)exposureControl.getMaxExposure(TimeUnit.MILLISECONDS); + + GainControl gainControl = visionPortal.getCameraControl(GainControl.class); + minGain = gainControl.getMinGain(); + maxGain = gainControl.getMaxGain(); + } + } +} diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagSwitchableCameras.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagSwitchableCameras.java new file mode 100644 index 0000000..d87e753 --- /dev/null +++ b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptAprilTagSwitchableCameras.java @@ -0,0 +1,195 @@ +/* Copyright (c) 2023 FIRST. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted (subject to the limitations in the disclaimer below) provided that + * the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * Neither the name of FIRST nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS + * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.firstinspires.ftc.robotcontroller.external.samples; + +import com.qualcomm.robotcore.eventloop.opmode.Disabled; +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; +import java.util.List; +import org.firstinspires.ftc.robotcore.external.ClassFactory; +import org.firstinspires.ftc.robotcore.external.hardware.camera.CameraName; +import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; +import org.firstinspires.ftc.vision.VisionPortal; +import org.firstinspires.ftc.vision.VisionPortal.CameraState; +import org.firstinspires.ftc.vision.apriltag.AprilTagDetection; +import org.firstinspires.ftc.vision.apriltag.AprilTagProcessor; + +/** + * This 2023-2024 OpMode illustrates the basics of AprilTag recognition and pose estimation, using + * two webcams. + * + * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. + * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. + */ +@TeleOp(name = "Concept: AprilTag Switchable Cameras", group = "Concept") +@Disabled +public class ConceptAprilTagSwitchableCameras extends LinearOpMode { + + /** + * Variables used for switching cameras. + */ + private WebcamName webcam1, webcam2; + private boolean oldLeftBumper; + private boolean oldRightBumper; + + /** + * {@link #aprilTag} is the variable to store our instance of the AprilTag processor. + */ + private AprilTagProcessor aprilTag; + + /** + * {@link #visionPortal} is the variable to store our instance of the vision portal. + */ + private VisionPortal visionPortal; + + @Override + public void runOpMode() { + + initAprilTag(); + + // Wait for the DS start button to be touched. + telemetry.addData("DS preview on/off", "3 dots, Camera Stream"); + telemetry.addData(">", "Touch Play to start OpMode"); + telemetry.update(); + waitForStart(); + + if (opModeIsActive()) { + while (opModeIsActive()) { + + telemetryCameraSwitching(); + telemetryAprilTag(); + + // Push telemetry to the Driver Station. + telemetry.update(); + + // Save CPU resources; can resume streaming when needed. + if (gamepad1.dpad_down) { + visionPortal.stopStreaming(); + } else if (gamepad1.dpad_up) { + visionPortal.resumeStreaming(); + } + + doCameraSwitching(); + + // Share the CPU. + sleep(20); + } + } + + // Save more CPU resources when camera is no longer needed. + visionPortal.close(); + + } // end runOpMode() + + /** + * Initialize the AprilTag processor. + */ + private void initAprilTag() { + + // Create the AprilTag processor by using a builder. + aprilTag = new AprilTagProcessor.Builder().build(); + + webcam1 = hardwareMap.get(WebcamName.class, "Webcam 1"); + webcam2 = hardwareMap.get(WebcamName.class, "Webcam 2"); + CameraName switchableCamera = ClassFactory.getInstance() + .getCameraManager().nameForSwitchableCamera(webcam1, webcam2); + + // Create the vision portal by using a builder. + visionPortal = new VisionPortal.Builder() + .setCamera(switchableCamera) + .addProcessor(aprilTag) + .build(); + + } // end method initAprilTag() + + /** + * Function to add telemetry about camera switching. + */ + private void telemetryCameraSwitching() { + + if (visionPortal.getActiveCamera().equals(webcam1)) { + telemetry.addData("activeCamera", "Webcam 1"); + telemetry.addData("Press RightBumper", "to switch to Webcam 2"); + } else { + telemetry.addData("activeCamera", "Webcam 2"); + telemetry.addData("Press LeftBumper", "to switch to Webcam 1"); + } + + } // end method telemetryCameraSwitching() + + /** + * Function to add telemetry about AprilTag detections. + */ + private void telemetryAprilTag() { + + List currentDetections = aprilTag.getDetections(); + telemetry.addData("# AprilTags Detected", currentDetections.size()); + + // Step through the list of detections and display info for each one. + for (AprilTagDetection detection : currentDetections) { + if (detection.metadata != null) { + telemetry.addLine(String.format("\n==== (ID %d) %s", detection.id, detection.metadata.name)); + telemetry.addLine(String.format("XYZ %6.1f %6.1f %6.1f (inch)", detection.ftcPose.x, detection.ftcPose.y, detection.ftcPose.z)); + telemetry.addLine(String.format("PRY %6.1f %6.1f %6.1f (deg)", detection.ftcPose.pitch, detection.ftcPose.roll, detection.ftcPose.yaw)); + telemetry.addLine(String.format("RBE %6.1f %6.1f %6.1f (inch, deg, deg)", detection.ftcPose.range, detection.ftcPose.bearing, detection.ftcPose.elevation)); + } else { + telemetry.addLine(String.format("\n==== (ID %d) Unknown", detection.id)); + telemetry.addLine(String.format("Center %6.0f %6.0f (pixels)", detection.center.x, detection.center.y)); + } + } // end for() loop + + // Add "key" information to telemetry + telemetry.addLine("\nkey:\nXYZ = X (Right), Y (Forward), Z (Up) dist."); + telemetry.addLine("PRY = Pitch, Roll & Yaw (XYZ Rotation)"); + telemetry.addLine("RBE = Range, Bearing & Elevation"); + + } // end method telemetryAprilTag() + + /** + * Function to set the active camera according to input from the gamepad. + */ + private void doCameraSwitching() { + if (visionPortal.getCameraState() == CameraState.STREAMING) { + // If the left bumper is pressed, use Webcam 1. + // If the right bumper is pressed, use Webcam 2. + boolean newLeftBumper = gamepad1.left_bumper; + boolean newRightBumper = gamepad1.right_bumper; + if (newLeftBumper && !oldLeftBumper) { + visionPortal.setActiveCamera(webcam1); + } else if (newRightBumper && !oldRightBumper) { + visionPortal.setActiveCamera(webcam2); + } + oldLeftBumper = newLeftBumper; + oldRightBumper = newRightBumper; + } + + } // end method doCameraSwitching() + +} // end class diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptDoubleVision.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptDoubleVision.java new file mode 100644 index 0000000..3bb6dcd --- /dev/null +++ b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptDoubleVision.java @@ -0,0 +1,201 @@ +/* Copyright (c) 2023 FIRST. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted (subject to the limitations in the disclaimer below) provided that + * the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * Neither the name of FIRST nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS + * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.firstinspires.ftc.robotcontroller.external.samples; + +import com.qualcomm.robotcore.eventloop.opmode.Disabled; +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; +import java.util.List; +import org.firstinspires.ftc.robotcore.external.hardware.camera.BuiltinCameraDirection; +import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; +import org.firstinspires.ftc.robotcore.external.tfod.Recognition; +import org.firstinspires.ftc.vision.VisionPortal; +import org.firstinspires.ftc.vision.apriltag.AprilTagDetection; +import org.firstinspires.ftc.vision.apriltag.AprilTagProcessor; +import org.firstinspires.ftc.vision.tfod.TfodProcessor; + +/** + * This 2023-2024 OpMode illustrates the basics of using both AprilTag recognition and TensorFlow + * Object Detection. + * + * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. + * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. + */ +@TeleOp(name = "Concept: Double Vision", group = "Concept") +@Disabled +public class ConceptDoubleVision extends LinearOpMode { + private static final boolean USE_WEBCAM = true; // true for webcam, false for phone camera + + /** + * {@link #aprilTag} is the variable to store our instance of the AprilTag processor. + */ + private AprilTagProcessor aprilTag; + + /** + * {@link #tfod} is the variable to store our instance of the TensorFlow Object Detection processor. + */ + private TfodProcessor tfod; + + /** + * {@link #myVisionPortal} is the variable to store our instance of the vision portal. + */ + private VisionPortal myVisionPortal; + + @Override + public void runOpMode() { + initDoubleVision(); + + // This OpMode loops continuously, allowing the user to switch between + // AprilTag and TensorFlow Object Detection (TFOD) image processors. + while (!isStopRequested()) { + + if (opModeInInit()) { + telemetry.addData("DS preview on/off","3 dots, Camera Stream"); + telemetry.addLine(); + telemetry.addLine("----------------------------------------"); + } + + if (myVisionPortal.getProcessorEnabled(aprilTag)) { + // User instructions: Dpad left or Dpad right. + telemetry.addLine("Dpad Left to disable AprilTag"); + telemetry.addLine(); + telemetryAprilTag(); + } else { + telemetry.addLine("Dpad Right to enable AprilTag"); + } + telemetry.addLine(); + telemetry.addLine("----------------------------------------"); + if (myVisionPortal.getProcessorEnabled(tfod)) { + telemetry.addLine("Dpad Down to disable TFOD"); + telemetry.addLine(); + telemetryTfod(); + } else { + telemetry.addLine("Dpad Up to enable TFOD"); + } + + // Push telemetry to the Driver Station. + telemetry.update(); + + if (gamepad1.dpad_left) { + myVisionPortal.setProcessorEnabled(aprilTag, false); + } else if (gamepad1.dpad_right) { + myVisionPortal.setProcessorEnabled(aprilTag, true); + } + if (gamepad1.dpad_down) { + myVisionPortal.setProcessorEnabled(tfod, false); + } else if (gamepad1.dpad_up) { + myVisionPortal.setProcessorEnabled(tfod, true); + } + + sleep(20); + + } // end while loop + + } // end method runOpMode() + + + /** + * Function to initialize AprilTag and TFOD. + */ + private void initDoubleVision() { + // ----------------------------------------------------------------------------------------- + // AprilTag Configuration + // ----------------------------------------------------------------------------------------- + + aprilTag = new AprilTagProcessor.Builder() + .build(); + + // ----------------------------------------------------------------------------------------- + // TFOD Configuration + // ----------------------------------------------------------------------------------------- + + tfod = new TfodProcessor.Builder() + .build(); + + // ----------------------------------------------------------------------------------------- + // Camera Configuration + // ----------------------------------------------------------------------------------------- + + if (USE_WEBCAM) { + myVisionPortal = new VisionPortal.Builder() + .setCamera(hardwareMap.get(WebcamName.class, "Webcam 1")) + .addProcessors(tfod, aprilTag) + .build(); + } else { + myVisionPortal = new VisionPortal.Builder() + .setCamera(BuiltinCameraDirection.BACK) + .addProcessors(tfod, aprilTag) + .build(); + } + } // end initDoubleVision() + + /** + * Function to add telemetry about AprilTag detections. + */ + private void telemetryAprilTag() { + List currentDetections = aprilTag.getDetections(); + telemetry.addData("# AprilTags Detected", currentDetections.size()); + + // Step through the list of detections and display info for each one. + for (AprilTagDetection detection : currentDetections) { + if (detection.metadata != null) { + telemetry.addLine(String.format("\n==== (ID %d) %s", detection.id, detection.metadata.name)); + telemetry.addLine(String.format("XYZ %6.1f %6.1f %6.1f (inch)", detection.ftcPose.x, detection.ftcPose.y, detection.ftcPose.z)); + telemetry.addLine(String.format("PRY %6.1f %6.1f %6.1f (deg)", detection.ftcPose.pitch, detection.ftcPose.roll, detection.ftcPose.yaw)); + telemetry.addLine(String.format("RBE %6.1f %6.1f %6.1f (inch, deg, deg)", detection.ftcPose.range, detection.ftcPose.bearing, detection.ftcPose.elevation)); + } else { + telemetry.addLine(String.format("\n==== (ID %d) Unknown", detection.id)); + telemetry.addLine(String.format("Center %6.0f %6.0f (pixels)", detection.center.x, detection.center.y)); + } + } // end for() loop + + } // end method telemetryAprilTag() + + /** + * Function to add telemetry about TensorFlow Object Detection (TFOD) recognitions. + */ + private void telemetryTfod() { + List currentRecognitions = tfod.getRecognitions(); + telemetry.addData("# Objects Detected", currentRecognitions.size()); + + // Step through the list of recognitions and display info for each one. + for (Recognition recognition : currentRecognitions) { + double x = (recognition.getLeft() + recognition.getRight()) / 2 ; + double y = (recognition.getTop() + recognition.getBottom()) / 2 ; + + telemetry.addData(""," "); + telemetry.addData("Image", "%s (%.0f %% Conf.)", recognition.getLabel(), recognition.getConfidence() * 100); + telemetry.addData("- Position", "%.0f / %.0f", x, y); + telemetry.addData("- Size", "%.0f x %.0f", recognition.getWidth(), recognition.getHeight()); + } // end for() loop + + } // end method telemetryTfod() + +} // end class diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetection.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetection.java index cb52ebd..01f423f 100644 --- a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetection.java +++ b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetection.java @@ -33,157 +33,149 @@ import com.qualcomm.robotcore.eventloop.opmode.Disabled; import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; import com.qualcomm.robotcore.eventloop.opmode.TeleOp; import java.util.List; -import org.firstinspires.ftc.robotcore.external.ClassFactory; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaLocalizer; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaLocalizer.CameraDirection; -import org.firstinspires.ftc.robotcore.external.tfod.TFObjectDetector; +import org.firstinspires.ftc.robotcore.external.hardware.camera.BuiltinCameraDirection; +import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; import org.firstinspires.ftc.robotcore.external.tfod.Recognition; +import org.firstinspires.ftc.vision.VisionPortal; +import org.firstinspires.ftc.vision.tfod.TfodProcessor; /** - * This 2022-2023 OpMode illustrates the basics of using the TensorFlow Object Detection API to - * determine which image is being presented to the robot. + * This 2023-2024 OpMode illustrates the basics of TensorFlow Object Detection, + * including Java Builder structures for specifying Vision parameters. * * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. - * - * IMPORTANT: In order to use this OpMode, you need to obtain your own Vuforia license key as - * is explained below. */ @TeleOp(name = "Concept: TensorFlow Object Detection", group = "Concept") @Disabled public class ConceptTensorFlowObjectDetection extends LinearOpMode { - /* - * Specify the source for the Tensor Flow Model. - * If the TensorFlowLite object model is included in the Robot Controller App as an "asset", - * the OpMode must to load it using loadModelFromAsset(). However, if a team generated model - * has been downloaded to the Robot Controller's SD FLASH memory, it must to be loaded using loadModelFromFile() - * Here we assume it's an Asset. Also see method initTfod() below . - */ - private static final String TFOD_MODEL_ASSET = "PowerPlay.tflite"; - // private static final String TFOD_MODEL_FILE = "/sdcard/FIRST/tflitemodels/CustomTeamModel.tflite"; - - private static final String[] LABELS = { - "1 Bolt", - "2 Bulb", - "3 Panel" - }; - - /* - * IMPORTANT: You need to obtain your own license key to use Vuforia. The string below with which - * 'parameters.vuforiaLicenseKey' is initialized is for illustration only, and will not function. - * A Vuforia 'Development' license key, can be obtained free of charge from the Vuforia developer - * web site at https://developer.vuforia.com/license-manager. - * - * Vuforia license keys are always 380 characters long, and look as if they contain mostly - * random data. As an example, here is a example of a fragment of a valid key: - * ... yIgIzTqZ4mWjk9wd3cZO9T1axEqzuhxoGlfOOI2dRzKS4T0hQ8kT ... - * Once you've obtained a license key, copy the string from the Vuforia web site - * and paste it in to your code on the next line, between the double quotes. - */ - private static final String VUFORIA_KEY = - " -- YOUR NEW VUFORIA KEY GOES HERE --- "; + private static final boolean USE_WEBCAM = true; // true for webcam, false for phone camera /** - * {@link #vuforia} is the variable we will use to store our instance of the Vuforia - * localization engine. + * {@link #tfod} is the variable to store our instance of the TensorFlow Object Detection processor. */ - private VuforiaLocalizer vuforia; + private TfodProcessor tfod; /** - * {@link #tfod} is the variable we will use to store our instance of the TensorFlow Object - * Detection engine. + * {@link #visionPortal} is the variable to store our instance of the vision portal. */ - private TFObjectDetector tfod; + private VisionPortal visionPortal; @Override public void runOpMode() { - // The TFObjectDetector uses the camera frames from the VuforiaLocalizer, so we create that - // first. - initVuforia(); + initTfod(); - /** - * Activate TensorFlow Object Detection before we wait for the start command. - * Do it here so that the Camera Stream window will have the TensorFlow annotations visible. - **/ - if (tfod != null) { - tfod.activate(); - - // The TensorFlow software will scale the input images from the camera to a lower resolution. - // This can result in lower detection accuracy at longer distances (> 55cm or 22"). - // If your target is at distance greater than 50 cm (20") you can increase 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 16/9). - tfod.setZoom(1.0, 16.0/9.0); - } - - /** Wait for the game to begin */ - telemetry.addData(">", "Press Play to start op mode"); + // Wait for the DS start button to be touched. + telemetry.addData("DS preview on/off", "3 dots, Camera Stream"); + telemetry.addData(">", "Touch Play to start OpMode"); telemetry.update(); waitForStart(); if (opModeIsActive()) { while (opModeIsActive()) { - if (tfod != null) { - // getUpdatedRecognitions() will return null if no new information is available since - // the last time that call was made. - List updatedRecognitions = tfod.getUpdatedRecognitions(); - if (updatedRecognitions != null) { - telemetry.addData("# Objects Detected", updatedRecognitions.size()); - // step through the list of recognitions and display image position/size information for each one - // Note: "Image number" refers to the randomized image orientation/number - for (Recognition recognition : updatedRecognitions) { - double col = (recognition.getLeft() + recognition.getRight()) / 2 ; - double row = (recognition.getTop() + recognition.getBottom()) / 2 ; - double width = Math.abs(recognition.getRight() - recognition.getLeft()) ; - double height = Math.abs(recognition.getTop() - recognition.getBottom()) ; + telemetryTfod(); - telemetry.addData(""," "); - telemetry.addData("Image", "%s (%.0f %% Conf.)", recognition.getLabel(), recognition.getConfidence() * 100 ); - telemetry.addData("- Position (Row/Col)","%.0f / %.0f", row, col); - telemetry.addData("- Size (Width/Height)","%.0f / %.0f", width, height); - } - telemetry.update(); - } + // Push telemetry to the Driver Station. + telemetry.update(); + + // Save CPU resources; can resume streaming when needed. + if (gamepad1.dpad_down) { + visionPortal.stopStreaming(); + } else if (gamepad1.dpad_up) { + visionPortal.resumeStreaming(); } + + // Share the CPU. + sleep(20); } } - } + + // Save more CPU resources when camera is no longer needed. + visionPortal.close(); + + } // end runOpMode() /** - * Initialize the Vuforia localization engine. - */ - private void initVuforia() { - /* - * Configure Vuforia by creating a Parameter object, and passing it to the Vuforia engine. - */ - VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(); - - parameters.vuforiaLicenseKey = VUFORIA_KEY; - parameters.cameraDirection = CameraDirection.BACK; - - // Instantiate the Vuforia engine - vuforia = ClassFactory.getInstance().createVuforia(parameters); - } - - /** - * Initialize the TensorFlow Object Detection engine. + * Initialize the TensorFlow Object Detection processor. */ private void initTfod() { - int tfodMonitorViewId = hardwareMap.appContext.getResources().getIdentifier( - "tfodMonitorViewId", "id", hardwareMap.appContext.getPackageName()); - TFObjectDetector.Parameters tfodParameters = new TFObjectDetector.Parameters(tfodMonitorViewId); - tfodParameters.minResultConfidence = 0.75f; - tfodParameters.isModelTensorFlow2 = true; - tfodParameters.inputSize = 300; - tfod = ClassFactory.getInstance().createTFObjectDetector(tfodParameters, vuforia); - // Use loadModelFromAsset() if the TF Model is built in as an asset by Android Studio - // Use loadModelFromFile() if you have downloaded a custom team model to the Robot Controller's FLASH. - tfod.loadModelFromAsset(TFOD_MODEL_ASSET, LABELS); - // tfod.loadModelFromFile(TFOD_MODEL_FILE, LABELS); - } -} + // Create the TensorFlow processor by using a builder. + tfod = new TfodProcessor.Builder() + + // Use setModelAssetName() if the TF Model is built in as an asset. + // Use setModelFileName() if you have downloaded a custom team model to the Robot Controller. + //.setModelAssetName(TFOD_MODEL_ASSET) + //.setModelFileName(TFOD_MODEL_FILE) + + //.setModelLabels(LABELS) + //.setIsModelTensorFlow2(true) + //.setIsModelQuantized(true) + //.setModelInputSize(300) + //.setModelAspectRatio(16.0 / 9.0) + + .build(); + + // Create the vision portal by using a builder. + VisionPortal.Builder builder = new VisionPortal.Builder(); + + // Set the camera (webcam vs. built-in RC phone camera). + if (USE_WEBCAM) { + builder.setCamera(hardwareMap.get(WebcamName.class, "Webcam 1")); + } else { + builder.setCamera(BuiltinCameraDirection.BACK); + } + + // Choose a camera resolution. Not all cameras support all resolutions. + //builder.setCameraResolution(new Size(640, 480)); + + // Enable the RC preview (LiveView). Set "false" to omit camera monitoring. + //builder.enableCameraMonitoring(true); + + // Set the stream format; MJPEG uses less bandwidth than default YUY2. + //builder.setStreamFormat(VisionPortal.StreamFormat.YUY2); + + // Choose whether or not LiveView stops if no processors are enabled. + // If set "true", monitor shows solid orange screen if no processors enabled. + // If set "false", monitor shows camera view without annotations. + //builder.setAutoStopLiveView(false); + + // Set and enable the processor. + builder.addProcessor(tfod); + + // Build the Vision Portal, using the above settings. + visionPortal = builder.build(); + + // Set confidence threshold for TFOD recognitions, at any time. + //tfod.setMinResultConfidence(0.75f); + + // Disable or re-enable the TFOD processor at any time. + //visionPortal.setProcessorEnabled(tfod, true); + + } // end method initTfod() + + /** + * Function to add telemetry about TensorFlow Object Detection (TFOD) recognitions. + */ + private void telemetryTfod() { + + List currentRecognitions = tfod.getRecognitions(); + telemetry.addData("# Objects Detected", currentRecognitions.size()); + + // Step through the list of recognitions and display info for each one. + for (Recognition recognition : currentRecognitions) { + double x = (recognition.getLeft() + recognition.getRight()) / 2 ; + double y = (recognition.getTop() + recognition.getBottom()) / 2 ; + + telemetry.addData(""," "); + telemetry.addData("Image", "%s (%.0f %% Conf.)", recognition.getLabel(), recognition.getConfidence() * 100); + telemetry.addData("- Position", "%.0f / %.0f", x, y); + telemetry.addData("- Size", "%.0f x %.0f", recognition.getWidth(), recognition.getHeight()); + } // end for() loop + + } // end method telemetryTfod() + +} // end class diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionEasy.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionEasy.java new file mode 100644 index 0000000..f397b0e --- /dev/null +++ b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionEasy.java @@ -0,0 +1,141 @@ +/* Copyright (c) 2019 FIRST. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted (subject to the limitations in the disclaimer below) provided that + * the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * Neither the name of FIRST nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS + * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.firstinspires.ftc.robotcontroller.external.samples; + +import com.qualcomm.robotcore.eventloop.opmode.Disabled; +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; +import java.util.List; +import org.firstinspires.ftc.robotcore.external.hardware.camera.BuiltinCameraDirection; +import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; +import org.firstinspires.ftc.robotcore.external.tfod.Recognition; +import org.firstinspires.ftc.vision.VisionPortal; +import org.firstinspires.ftc.vision.tfod.TfodProcessor; + +/** + * This 2023-2024 OpMode illustrates the basics of TensorFlow Object Detection, using + * the easiest way. + * + * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. + * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. + */ +@TeleOp(name = "Concept: TensorFlow Object Detection Easy", group = "Concept") +@Disabled +public class ConceptTensorFlowObjectDetectionEasy extends LinearOpMode { + + private static final boolean USE_WEBCAM = true; // true for webcam, false for phone camera + + /** + * {@link #tfod} is the variable to store our instance of the TensorFlow Object Detection processor. + */ + private TfodProcessor tfod; + + /** + * {@link #visionPortal} is the variable to store our instance of the vision portal. + */ + private VisionPortal visionPortal; + + @Override + public void runOpMode() { + + initTfod(); + + // Wait for the DS start button to be touched. + telemetry.addData("DS preview on/off", "3 dots, Camera Stream"); + telemetry.addData(">", "Touch Play to start OpMode"); + telemetry.update(); + waitForStart(); + + if (opModeIsActive()) { + while (opModeIsActive()) { + + telemetryTfod(); + + // Push telemetry to the Driver Station. + telemetry.update(); + + // Save CPU resources; can resume streaming when needed. + if (gamepad1.dpad_down) { + visionPortal.stopStreaming(); + } else if (gamepad1.dpad_up) { + visionPortal.resumeStreaming(); + } + + // Share the CPU. + sleep(20); + } + } + + // Save more CPU resources when camera is no longer needed. + visionPortal.close(); + + } // end runOpMode() + + /** + * Initialize the TensorFlow Object Detection processor. + */ + private void initTfod() { + + // Create the TensorFlow processor the easy way. + tfod = TfodProcessor.easyCreateWithDefaults(); + + // Create the vision portal the easy way. + if (USE_WEBCAM) { + visionPortal = VisionPortal.easyCreateWithDefaults( + hardwareMap.get(WebcamName.class, "Webcam 1"), tfod); + } else { + visionPortal = VisionPortal.easyCreateWithDefaults( + BuiltinCameraDirection.BACK, tfod); + } + + } // end method initTfod() + + /** + * Function to add telemetry about TensorFlow Object Detection (TFOD) recognitions. + */ + private void telemetryTfod() { + + List currentRecognitions = tfod.getRecognitions(); + telemetry.addData("# Objects Detected", currentRecognitions.size()); + + // Step through the list of recognitions and display info for each one. + for (Recognition recognition : currentRecognitions) { + double x = (recognition.getLeft() + recognition.getRight()) / 2 ; + double y = (recognition.getTop() + recognition.getBottom()) / 2 ; + + telemetry.addData(""," "); + telemetry.addData("Image", "%s (%.0f %% Conf.)", recognition.getLabel(), recognition.getConfidence() * 100); + telemetry.addData("- Position", "%.0f / %.0f", x, y); + telemetry.addData("- Size", "%.0f x %.0f", recognition.getWidth(), recognition.getHeight()); + } // end for() loop + + } // end method telemetryTfod() + +} // end class diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionSwitchableCameras.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionSwitchableCameras.java index eec021f..3440c18 100644 --- a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionSwitchableCameras.java +++ b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionSwitchableCameras.java @@ -34,191 +34,152 @@ import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; import com.qualcomm.robotcore.eventloop.opmode.TeleOp; import java.util.List; import org.firstinspires.ftc.robotcore.external.ClassFactory; -import org.firstinspires.ftc.robotcore.external.hardware.camera.SwitchableCamera; +import org.firstinspires.ftc.robotcore.external.hardware.camera.CameraName; import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaLocalizer; -import org.firstinspires.ftc.robotcore.external.tfod.TFObjectDetector; import org.firstinspires.ftc.robotcore.external.tfod.Recognition; +import org.firstinspires.ftc.vision.VisionPortal; +import org.firstinspires.ftc.vision.VisionPortal.CameraState; +import org.firstinspires.ftc.vision.tfod.TfodProcessor; /** - * This 2022-2023 OpMode illustrates the basics of using the TensorFlow Object Detection API to - * determine which image is being presented to the robot. + * This 2023-2024 OpMode illustrates the basics of TensorFlow Object Detection, using + * two webcams. * * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. - * Remove or comment out the @Disabled line to add this opmode to the Driver Station OpMode list. - * - * IMPORTANT: In order to use this OpMode, you need to obtain your own Vuforia license key as - * is explained below. + * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. */ @TeleOp(name = "Concept: TensorFlow Object Detection Switchable Cameras", group = "Concept") @Disabled public class ConceptTensorFlowObjectDetectionSwitchableCameras extends LinearOpMode { - /* - * Specify the source for the Tensor Flow Model. - * If the TensorFlowLite object model is included in the Robot Controller App as an "asset", - * the OpMode must to load it using loadModelFromAsset(). However, if a team generated model - * has been downloaded to the Robot Controller's SD FLASH memory, it must to be loaded using loadModelFromFile() - * Here we assume it's an Asset. Also see method initTfod() below . - */ - private static final String TFOD_MODEL_ASSET = "PowerPlay.tflite"; - // private static final String TFOD_MODEL_FILE = "/sdcard/FIRST/tflitemodels/CustomTeamModel.tflite"; - - private static final String[] LABELS = { - "1 Bolt", - "2 Bulb", - "3 Panel" - }; - - /* - * IMPORTANT: You need to obtain your own license key to use Vuforia. The string below with which - * 'parameters.vuforiaLicenseKey' is initialized is for illustration only, and will not function. - * A Vuforia 'Development' license key, can be obtained free of charge from the Vuforia developer - * web site at https://developer.vuforia.com/license-manager. - * - * Vuforia license keys are always 380 characters long, and look as if they contain mostly - * random data. As an example, here is a example of a fragment of a valid key: - * ... yIgIzTqZ4mWjk9wd3cZO9T1axEqzuhxoGlfOOI2dRzKS4T0hQ8kT ... - * Once you've obtained a license key, copy the string from the Vuforia web site - * and paste it in to your code on the next line, between the double quotes. - */ - private static final String VUFORIA_KEY = - " -- YOUR NEW VUFORIA KEY GOES HERE --- "; - - /** - * {@link #vuforia} is the variable we will use to store our instance of the Vuforia - * localization engine. - */ - private VuforiaLocalizer vuforia; - /** * Variables used for switching cameras. */ private WebcamName webcam1, webcam2; - private SwitchableCamera switchableCamera; private boolean oldLeftBumper; private boolean oldRightBumper; /** - * {@link #tfod} is the variable we will use to store our instance of the TensorFlow Object - * Detection engine. + * {@link #tfod} is the variable to store our instance of the TensorFlow Object Detection processor. */ - private TFObjectDetector tfod; + private TfodProcessor tfod; + + /** + * {@link #visionPortal} is the variable to store our instance of the vision portal. + */ + private VisionPortal visionPortal; @Override public void runOpMode() { - // The TFObjectDetector uses the camera frames from the VuforiaLocalizer, so we create that - // first. - initVuforia(); + initTfod(); - /** - * Activate TensorFlow Object Detection before we wait for the start command. - * Do it here so that the Camera Stream window will have the TensorFlow annotations visible. - **/ - if (tfod != null) { - tfod.activate(); - - // The TensorFlow software will scale the input images from the camera to a lower resolution. - // This can result in lower detection accuracy at longer distances (> 55cm or 22"). - // If your target is at distance greater than 50 cm (20") you can increase 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 16/9). - tfod.setZoom(1.0, 16.0/9.0); - } - - /** Wait for the game to begin */ - telemetry.addData(">", "Press Play to start op mode"); + // Wait for the DS start button to be touched. + telemetry.addData("DS preview on/off", "3 dots, Camera Stream"); + telemetry.addData(">", "Touch Play to start OpMode"); telemetry.update(); waitForStart(); if (opModeIsActive()) { while (opModeIsActive()) { - if (tfod != null) { - doCameraSwitching(); - List recognitions = tfod.getRecognitions(); - telemetry.addData("# Objects Detected", recognitions.size()); - // step through the list of recognitions and display image size and position - // Note: "Image number" refers to the randomized image orientation/number - for (Recognition recognition : recognitions) { - double col = (recognition.getLeft() + recognition.getRight()) / 2 ; - double row = (recognition.getTop() + recognition.getBottom()) / 2 ; - double width = Math.abs(recognition.getRight() - recognition.getLeft()) ; - double height = Math.abs(recognition.getTop() - recognition.getBottom()) ; - telemetry.addData(""," "); - telemetry.addData("Image", "%s (%.0f %% Conf.)", recognition.getLabel(), recognition.getConfidence() * 100 ); - telemetry.addData("- Position (Row/Col)","%.0f / %.0f", row, col); - telemetry.addData("- Size (Width/Height)","%.0f / %.0f", width, height); - } - telemetry.update(); + telemetryCameraSwitching(); + telemetryTfod(); + + // Push telemetry to the Driver Station. + telemetry.update(); + + // Save CPU resources; can resume streaming when needed. + if (gamepad1.dpad_down) { + visionPortal.stopStreaming(); + } else if (gamepad1.dpad_up) { + visionPortal.resumeStreaming(); } + + doCameraSwitching(); + + // Share the CPU. + sleep(20); } } - } + + // Save more CPU resources when camera is no longer needed. + visionPortal.close(); + + } // end runOpMode() /** - * Initialize the Vuforia localization engine. - */ - private void initVuforia() { - /* - * Configure Vuforia by creating a Parameter object, and passing it to the Vuforia engine. - */ - VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(); - - parameters.vuforiaLicenseKey = VUFORIA_KEY; - - // Indicate that we wish to be able to switch cameras. - webcam1 = hardwareMap.get(WebcamName.class, "Webcam 1"); - webcam2 = hardwareMap.get(WebcamName.class, "Webcam 2"); - parameters.cameraName = ClassFactory.getInstance().getCameraManager().nameForSwitchableCamera(webcam1, webcam2); - - // Instantiate the Vuforia engine - vuforia = ClassFactory.getInstance().createVuforia(parameters); - - // Set the active camera to Webcam 1. - switchableCamera = (SwitchableCamera) vuforia.getCamera(); - switchableCamera.setActiveCamera(webcam1); - } - - /** - * Initialize the TensorFlow Object Detection engine. + * Initialize the TensorFlow Object Detection processor. */ private void initTfod() { - int tfodMonitorViewId = hardwareMap.appContext.getResources().getIdentifier( - "tfodMonitorViewId", "id", hardwareMap.appContext.getPackageName()); - TFObjectDetector.Parameters tfodParameters = new TFObjectDetector.Parameters(tfodMonitorViewId); - tfodParameters.minResultConfidence = 0.75f; - tfodParameters.isModelTensorFlow2 = true; - tfodParameters.inputSize = 300; - tfod = ClassFactory.getInstance().createTFObjectDetector(tfodParameters, vuforia); - // Use loadModelFromAsset() if the TF Model is built in as an asset by Android Studio - // Use loadModelFromFile() if you have downloaded a custom team model to the Robot Controller's FLASH. - tfod.loadModelFromAsset(TFOD_MODEL_ASSET, LABELS); - // tfod.loadModelFromFile(TFOD_MODEL_FILE, LABELS); - } + // Create the TensorFlow processor by using a builder. + tfod = new TfodProcessor.Builder().build(); - private void doCameraSwitching() { - // If the left bumper is pressed, use Webcam 1. - // If the right bumper is pressed, use Webcam 2. - boolean newLeftBumper = gamepad1.left_bumper; - boolean newRightBumper = gamepad1.right_bumper; - if (newLeftBumper && !oldLeftBumper) { - switchableCamera.setActiveCamera(webcam1); - } else if (newRightBumper && !oldRightBumper) { - switchableCamera.setActiveCamera(webcam2); - } - oldLeftBumper = newLeftBumper; - oldRightBumper = newRightBumper; + webcam1 = hardwareMap.get(WebcamName.class, "Webcam 1"); + webcam2 = hardwareMap.get(WebcamName.class, "Webcam 2"); + CameraName switchableCamera = ClassFactory.getInstance() + .getCameraManager().nameForSwitchableCamera(webcam1, webcam2); - if (switchableCamera.getActiveCamera().equals(webcam1)) { + // Create the vision portal by using a builder. + visionPortal = new VisionPortal.Builder() + .setCamera(switchableCamera) + .addProcessor(tfod) + .build(); + + } // end method initTfod() + + /** + * Function to add telemetry about camera switching. + */ + private void telemetryCameraSwitching() { + if (visionPortal.getActiveCamera().equals(webcam1)) { telemetry.addData("activeCamera", "Webcam 1"); telemetry.addData("Press RightBumper", "to switch to Webcam 2"); } else { telemetry.addData("activeCamera", "Webcam 2"); telemetry.addData("Press LeftBumper", "to switch to Webcam 1"); } - } -} + } // end method telemetryCameraSwitching() + + /** + * Function to add telemetry about TensorFlow Object Detection (TFOD) recognitions. + */ + private void telemetryTfod() { + + List currentRecognitions = tfod.getRecognitions(); + telemetry.addData("# Objects Detected", currentRecognitions.size()); + + // Step through the list of recognitions and display info for each one. + for (Recognition recognition : currentRecognitions) { + double x = (recognition.getLeft() + recognition.getRight()) / 2 ; + double y = (recognition.getTop() + recognition.getBottom()) / 2 ; + + telemetry.addData(""," "); + telemetry.addData("Image", "%s (%.0f %% Conf.)", recognition.getLabel(), recognition.getConfidence() * 100); + telemetry.addData("- Position", "%.0f / %.0f", x, y); + telemetry.addData("- Size", "%.0f x %.0f", recognition.getWidth(), recognition.getHeight()); + } // end for() loop + + } // end method telemetryTfod() + + /** + * Function to set the active camera according to input from the gamepad. + */ + private void doCameraSwitching() { + if (visionPortal.getCameraState() == CameraState.STREAMING) { + // If the left bumper is pressed, use Webcam 1. + // If the right bumper is pressed, use Webcam 2. + boolean newLeftBumper = gamepad1.left_bumper; + boolean newRightBumper = gamepad1.right_bumper; + if (newLeftBumper && !oldLeftBumper) { + visionPortal.setActiveCamera(webcam1); + } else if (newRightBumper && !oldRightBumper) { + visionPortal.setActiveCamera(webcam2); + } + oldLeftBumper = newLeftBumper; + oldRightBumper = newRightBumper; + } + } // end method doCameraSwitching() + +} // end class diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionWebcam.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionWebcam.java deleted file mode 100644 index 78bfef9..0000000 --- a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptTensorFlowObjectDetectionWebcam.java +++ /dev/null @@ -1,190 +0,0 @@ -/* Copyright (c) 2019 FIRST. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted (subject to the limitations in the disclaimer below) provided that - * the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * Neither the name of FIRST nor the names of its contributors may be used to endorse or - * promote products derived from this software without specific prior written permission. - * - * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS - * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package org.firstinspires.ftc.robotcontroller.external.samples; - -import com.qualcomm.robotcore.eventloop.opmode.Disabled; -import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; -import com.qualcomm.robotcore.eventloop.opmode.TeleOp; -import java.util.List; -import org.firstinspires.ftc.robotcore.external.ClassFactory; -import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaLocalizer; -import org.firstinspires.ftc.robotcore.external.tfod.TFObjectDetector; -import org.firstinspires.ftc.robotcore.external.tfod.Recognition; - -/** - * This 2022-2023 OpMode illustrates the basics of using the TensorFlow Object Detection API to - * determine which image is being presented to the robot. - * - * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. - * Remove or comment out the @Disabled line to add this opmode to the Driver Station OpMode list. - * - * IMPORTANT: In order to use this OpMode, you need to obtain your own Vuforia license key as - * is explained below. - */ -@TeleOp(name = "Concept: TensorFlow Object Detection Webcam", group = "Concept") -@Disabled -public class ConceptTensorFlowObjectDetectionWebcam extends LinearOpMode { - - /* - * Specify the source for the Tensor Flow Model. - * If the TensorFlowLite object model is included in the Robot Controller App as an "asset", - * the OpMode must to load it using loadModelFromAsset(). However, if a team generated model - * has been downloaded to the Robot Controller's SD FLASH memory, it must to be loaded using loadModelFromFile() - * Here we assume it's an Asset. Also see method initTfod() below . - */ - private static final String TFOD_MODEL_ASSET = "PowerPlay.tflite"; - // private static final String TFOD_MODEL_FILE = "/sdcard/FIRST/tflitemodels/CustomTeamModel.tflite"; - - - private static final String[] LABELS = { - "1 Bolt", - "2 Bulb", - "3 Panel" - }; - - /* - * IMPORTANT: You need to obtain your own license key to use Vuforia. The string below with which - * 'parameters.vuforiaLicenseKey' is initialized is for illustration only, and will not function. - * A Vuforia 'Development' license key, can be obtained free of charge from the Vuforia developer - * web site at https://developer.vuforia.com/license-manager. - * - * Vuforia license keys are always 380 characters long, and look as if they contain mostly - * random data. As an example, here is a example of a fragment of a valid key: - * ... yIgIzTqZ4mWjk9wd3cZO9T1axEqzuhxoGlfOOI2dRzKS4T0hQ8kT ... - * Once you've obtained a license key, copy the string from the Vuforia web site - * and paste it in to your code on the next line, between the double quotes. - */ - private static final String VUFORIA_KEY = - " -- YOUR NEW VUFORIA KEY GOES HERE --- "; - - /** - * {@link #vuforia} is the variable we will use to store our instance of the Vuforia - * localization engine. - */ - private VuforiaLocalizer vuforia; - - /** - * {@link #tfod} is the variable we will use to store our instance of the TensorFlow Object - * Detection engine. - */ - private TFObjectDetector tfod; - - @Override - public void runOpMode() { - // The TFObjectDetector uses the camera frames from the VuforiaLocalizer, so we create that - // first. - initVuforia(); - initTfod(); - - /** - * Activate TensorFlow Object Detection before we wait for the start command. - * Do it here so that the Camera Stream window will have the TensorFlow annotations visible. - **/ - if (tfod != null) { - tfod.activate(); - - // The TensorFlow software will scale the input images from the camera to a lower resolution. - // This can result in lower detection accuracy at longer distances (> 55cm or 22"). - // If your target is at distance greater than 50 cm (20") you can increase 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 16/9). - tfod.setZoom(1.0, 16.0/9.0); - } - - /** Wait for the game to begin */ - telemetry.addData(">", "Press Play to start op mode"); - telemetry.update(); - waitForStart(); - - if (opModeIsActive()) { - while (opModeIsActive()) { - if (tfod != null) { - // getUpdatedRecognitions() will return null if no new information is available since - // the last time that call was made. - List updatedRecognitions = tfod.getUpdatedRecognitions(); - if (updatedRecognitions != null) { - telemetry.addData("# Objects Detected", updatedRecognitions.size()); - - // step through the list of recognitions and display image position/size information for each one - // Note: "Image number" refers to the randomized image orientation/number - for (Recognition recognition : updatedRecognitions) { - double col = (recognition.getLeft() + recognition.getRight()) / 2 ; - double row = (recognition.getTop() + recognition.getBottom()) / 2 ; - double width = Math.abs(recognition.getRight() - recognition.getLeft()) ; - double height = Math.abs(recognition.getTop() - recognition.getBottom()) ; - - telemetry.addData(""," "); - telemetry.addData("Image", "%s (%.0f %% Conf.)", recognition.getLabel(), recognition.getConfidence() * 100 ); - telemetry.addData("- Position (Row/Col)","%.0f / %.0f", row, col); - telemetry.addData("- Size (Width/Height)","%.0f / %.0f", width, height); - } - telemetry.update(); - } - } - } - } - } - - /** - * Initialize the Vuforia localization engine. - */ - private void initVuforia() { - /* - * Configure Vuforia by creating a Parameter object, and passing it to the Vuforia engine. - */ - VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(); - - parameters.vuforiaLicenseKey = VUFORIA_KEY; - parameters.cameraName = hardwareMap.get(WebcamName.class, "Webcam 1"); - - // Instantiate the Vuforia engine - vuforia = ClassFactory.getInstance().createVuforia(parameters); - } - - /** - * Initialize the TensorFlow Object Detection engine. - */ - private void initTfod() { - int tfodMonitorViewId = hardwareMap.appContext.getResources().getIdentifier( - "tfodMonitorViewId", "id", hardwareMap.appContext.getPackageName()); - TFObjectDetector.Parameters tfodParameters = new TFObjectDetector.Parameters(tfodMonitorViewId); - tfodParameters.minResultConfidence = 0.75f; - tfodParameters.isModelTensorFlow2 = true; - tfodParameters.inputSize = 300; - tfod = ClassFactory.getInstance().createTFObjectDetector(tfodParameters, vuforia); - - // Use loadModelFromAsset() if the TF Model is built in as an asset by Android Studio - // Use loadModelFromFile() if you have downloaded a custom team model to the Robot Controller's FLASH. - tfod.loadModelFromAsset(TFOD_MODEL_ASSET, LABELS); - // tfod.loadModelFromFile(TFOD_MODEL_FILE, LABELS); - } -} diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuMarkIdentification.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuMarkIdentification.java deleted file mode 100644 index 3bdb1af..0000000 --- a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuMarkIdentification.java +++ /dev/null @@ -1,186 +0,0 @@ -/* Copyright (c) 2017 FIRST. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted (subject to the limitations in the disclaimer below) provided that - * the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * Neither the name of FIRST nor the names of its contributors may be used to endorse or - * promote products derived from this software without specific prior written permission. - * - * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS - * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package org.firstinspires.ftc.robotcontroller.external.samples; - -import com.qualcomm.robotcore.eventloop.opmode.TeleOp; -import com.qualcomm.robotcore.eventloop.opmode.Disabled; -import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; - -import org.firstinspires.ftc.robotcore.external.ClassFactory; -import org.firstinspires.ftc.robotcore.external.matrices.OpenGLMatrix; -import org.firstinspires.ftc.robotcore.external.matrices.VectorF; -import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit; -import org.firstinspires.ftc.robotcore.external.navigation.AxesOrder; -import org.firstinspires.ftc.robotcore.external.navigation.AxesReference; -import org.firstinspires.ftc.robotcore.external.navigation.Orientation; -import org.firstinspires.ftc.robotcore.external.navigation.RelicRecoveryVuMark; -import org.firstinspires.ftc.robotcore.external.navigation.VuMarkInstanceId; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaLocalizer; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackable; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackableDefaultListener; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackables; - -/** - * This OpMode illustrates the basics of using the Vuforia engine to determine - * the identity of Vuforia VuMarks encountered on the field. The code is structured as - * a LinearOpMode. It shares much structure with {@link ConceptVuforiaFieldNavigation}; we do not here - * duplicate the core Vuforia documentation found there, but rather instead focus on the - * differences between the use of Vuforia for navigation vs VuMark identification. - * - * @see ConceptVuforiaFieldNavigation - * @see VuforiaLocalizer - * @see VuforiaTrackableDefaultListener - * see ftc_app/doc/tutorial/FTC_FieldCoordinateSystemDefinition.pdf - * - * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. - * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. - * - * IMPORTANT: In order to use this OpMode, you need to obtain your own Vuforia license key as - * is explained below. - */ - -@TeleOp(name="Concept: VuMark Id", group ="Concept") -@Disabled -public class ConceptVuMarkIdentification extends LinearOpMode { - - public static final String TAG = "Vuforia VuMark Sample"; - - OpenGLMatrix lastLocation = null; - - /** - * {@link #vuforia} is the variable we will use to store our instance of the Vuforia - * localization engine. - */ - VuforiaLocalizer vuforia; - - @Override public void runOpMode() { - - /* - * To start up Vuforia, tell it the view that we wish to use for camera monitor (on the RC phone); - */ - int cameraMonitorViewId = hardwareMap.appContext.getResources().getIdentifier("cameraMonitorViewId", "id", hardwareMap.appContext.getPackageName()); - VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(cameraMonitorViewId); - - // OR... Do Not Activate the Camera Monitor View, to save power - // VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(); - - /* - * IMPORTANT: You need to obtain your own license key to use Vuforia. The string below with which - * 'parameters.vuforiaLicenseKey' is initialized is for illustration only, and will not function. - * A Vuforia 'Development' license key, can be obtained free of charge from the Vuforia developer - * web site at https://developer.vuforia.com/license-manager. - * - * Vuforia license keys are always 380 characters long, and look as if they contain mostly - * random data. As an example, here is a example of a fragment of a valid key: - * ... yIgIzTqZ4mWjk9wd3cZO9T1axEqzuhxoGlfOOI2dRzKS4T0hQ8kT ... - * Once you've obtained a license key, copy the string from the Vuforia web site - * and paste it in to your code on the next line, between the double quotes. - */ - parameters.vuforiaLicenseKey = " -- YOUR NEW VUFORIA KEY GOES HERE --- "; - - /* - * We also indicate which camera on the RC that we wish to use. - * Here we chose the back (HiRes) camera (for greater range), but - * for a competition robot, the front camera might be more convenient. - */ - parameters.cameraDirection = VuforiaLocalizer.CameraDirection.BACK; - - /** - * Instantiate the Vuforia engine - */ - vuforia = ClassFactory.getInstance().createVuforia(parameters); - - - /** - * Load the data set containing the VuMarks for Relic Recovery. There's only one trackable - * in this data set: all three of the VuMarks in the game were created from this one template, - * but differ in their instance id information. - * @see VuMarkInstanceId - */ - VuforiaTrackables relicTrackables = this.vuforia.loadTrackablesFromAsset("RelicVuMark"); - VuforiaTrackable relicTemplate = relicTrackables.get(0); - relicTemplate.setName("relicVuMarkTemplate"); // can help in debugging; otherwise not necessary - - telemetry.addData(">", "Press Play to start"); - telemetry.update(); - waitForStart(); - - relicTrackables.activate(); - - while (opModeIsActive()) { - - /** - * See if any of the instances of {@link relicTemplate} are currently visible. - * {@link RelicRecoveryVuMark} is an enum which can have the following values: - * UNKNOWN, LEFT, CENTER, and RIGHT. When a VuMark is visible, something other than - * UNKNOWN will be returned by {@link RelicRecoveryVuMark#from(VuforiaTrackable)}. - */ - RelicRecoveryVuMark vuMark = RelicRecoveryVuMark.from(relicTemplate); - if (vuMark != RelicRecoveryVuMark.UNKNOWN) { - - /* Found an instance of the template. In the actual game, you will probably - * loop until this condition occurs, then move on to act accordingly depending - * on which VuMark was visible. */ - telemetry.addData("VuMark", "%s visible", vuMark); - - /* For fun, we also exhibit the navigational pose. In the Relic Recovery game, - * it is perhaps unlikely that you will actually need to act on this pose information, but - * we illustrate it nevertheless, for completeness. */ - OpenGLMatrix pose = ((VuforiaTrackableDefaultListener)relicTemplate.getListener()).getPose(); - telemetry.addData("Pose", format(pose)); - - /* We further illustrate how to decompose the pose into useful rotational and - * translational components */ - if (pose != null) { - VectorF trans = pose.getTranslation(); - Orientation rot = Orientation.getOrientation(pose, AxesReference.EXTRINSIC, AxesOrder.XYZ, AngleUnit.DEGREES); - - // Extract the X, Y, and Z components of the offset of the target relative to the robot - double tX = trans.get(0); - double tY = trans.get(1); - double tZ = trans.get(2); - - // Extract the rotational components of the target relative to the robot - double rX = rot.firstAngle; - double rY = rot.secondAngle; - double rZ = rot.thirdAngle; - } - } - else { - telemetry.addData("VuMark", "not visible"); - } - - telemetry.update(); - } - } - - String format(OpenGLMatrix transformationMatrix) { - return (transformationMatrix != null) ? transformationMatrix.formatAsTransform() : "null"; - } -} diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuMarkIdentificationWebcam.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuMarkIdentificationWebcam.java deleted file mode 100644 index 14d2aff..0000000 --- a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuMarkIdentificationWebcam.java +++ /dev/null @@ -1,194 +0,0 @@ -/* Copyright (c) 2017 FIRST. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted (subject to the limitations in the disclaimer below) provided that - * the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * Neither the name of FIRST nor the names of its contributors may be used to endorse or - * promote products derived from this software without specific prior written permission. - * - * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS - * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package org.firstinspires.ftc.robotcontroller.external.samples; - -import com.qualcomm.robotcore.eventloop.opmode.TeleOp; -import com.qualcomm.robotcore.eventloop.opmode.Disabled; -import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; - -import org.firstinspires.ftc.robotcore.external.ClassFactory; -import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; -import org.firstinspires.ftc.robotcore.external.matrices.OpenGLMatrix; -import org.firstinspires.ftc.robotcore.external.matrices.VectorF; -import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit; -import org.firstinspires.ftc.robotcore.external.navigation.AxesOrder; -import org.firstinspires.ftc.robotcore.external.navigation.AxesReference; -import org.firstinspires.ftc.robotcore.external.navigation.Orientation; -import org.firstinspires.ftc.robotcore.external.navigation.RelicRecoveryVuMark; -import org.firstinspires.ftc.robotcore.external.navigation.VuMarkInstanceId; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaLocalizer; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackable; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackableDefaultListener; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackables; - -/** - * This OpMode illustrates the basics of using the Vuforia engine to determine - * the identity of Vuforia VuMarks encountered on the field. The code is structured as - * a LinearOpMode. It shares much structure with {@link ConceptVuforiaFieldNavigationWebcam}; we do not here - * duplicate the core Vuforia documentation found there, but rather instead focus on the - * differences between the use of Vuforia for navigation vs VuMark identification. - * - * @see ConceptVuforiaFieldNavigationWebcam - * @see VuforiaLocalizer - * @see VuforiaTrackableDefaultListener - * see ftc_app/doc/tutorial/FTC_FieldCoordinateSystemDefinition.pdf - * - * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. - * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. - * - * IMPORTANT: In order to use this OpMode, you need to obtain your own Vuforia license key as - * is explained below - */ - -@TeleOp(name="Concept: VuMark Id Webcam", group ="Concept") -@Disabled -public class ConceptVuMarkIdentificationWebcam extends LinearOpMode { - - public static final String TAG = "Vuforia VuMark Sample"; - - OpenGLMatrix lastLocation = null; - - /** - * {@link #vuforia} is the variable we will use to store our instance of the Vuforia - * localization engine. - */ - VuforiaLocalizer vuforia; - - /** - * This is the webcam we are to use. As with other hardware devices such as motors and - * servos, this device is identified using the robot configuration tool in the FTC application. - */ - WebcamName webcamName; - - @Override public void runOpMode() { - - /* - * Retrieve the camera we are to use. - */ - webcamName = hardwareMap.get(WebcamName.class, "Webcam 1"); - - /* - * To start up Vuforia, tell it the view that we wish to use for camera monitor (on the RC phone); - * If no camera monitor is desired, use the parameterless constructor instead (commented out below). - */ - int cameraMonitorViewId = hardwareMap.appContext.getResources().getIdentifier("cameraMonitorViewId", "id", hardwareMap.appContext.getPackageName()); - VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(cameraMonitorViewId); - - // OR... Do Not Activate the Camera Monitor View, to save power - // VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(); - - /* - * IMPORTANT: You need to obtain your own license key to use Vuforia. The string below with which - * 'parameters.vuforiaLicenseKey' is initialized is for illustration only, and will not function. - * A Vuforia 'Development' license key, can be obtained free of charge from the Vuforia developer - * web site at https://developer.vuforia.com/license-manager. - * - * Vuforia license keys are always 380 characters long, and look as if they contain mostly - * random data. As an example, here is a example of a fragment of a valid key: - * ... yIgIzTqZ4mWjk9wd3cZO9T1axEqzuhxoGlfOOI2dRzKS4T0hQ8kT ... - * Once you've obtained a license key, copy the string from the Vuforia web site - * and paste it in to your code on the next line, between the double quotes. - */ - parameters.vuforiaLicenseKey = " -- YOUR NEW VUFORIA KEY GOES HERE --- "; - - - /** - * We also indicate which camera on the RC we wish to use. For pedagogical purposes, - * we use the same logic as in {@link ConceptVuforiaNavigationWebcam}. - */ - parameters.cameraName = webcamName; - this.vuforia = ClassFactory.getInstance().createVuforia(parameters); - - /** - * Load the data set containing the VuMarks for Relic Recovery. There's only one trackable - * in this data set: all three of the VuMarks in the game were created from this one template, - * but differ in their instance id information. - * @see VuMarkInstanceId - */ - VuforiaTrackables relicTrackables = this.vuforia.loadTrackablesFromAsset("RelicVuMark"); - VuforiaTrackable relicTemplate = relicTrackables.get(0); - relicTemplate.setName("relicVuMarkTemplate"); // can help in debugging; otherwise not necessary - - telemetry.addData(">", "Press Play to start"); - telemetry.update(); - waitForStart(); - - relicTrackables.activate(); - - while (opModeIsActive()) { - - /** - * See if any of the instances of {@link relicTemplate} are currently visible. - * {@link RelicRecoveryVuMark} is an enum which can have the following values: - * UNKNOWN, LEFT, CENTER, and RIGHT. When a VuMark is visible, something other than - * UNKNOWN will be returned by {@link RelicRecoveryVuMark#from(VuforiaTrackable)}. - */ - RelicRecoveryVuMark vuMark = RelicRecoveryVuMark.from(relicTemplate); - if (vuMark != RelicRecoveryVuMark.UNKNOWN) { - - /* Found an instance of the template. In the actual game, you will probably - * loop until this condition occurs, then move on to act accordingly depending - * on which VuMark was visible. */ - telemetry.addData("VuMark", "%s visible", vuMark); - - /* For fun, we also exhibit the navigational pose. In the Relic Recovery game, - * it is perhaps unlikely that you will actually need to act on this pose information, but - * we illustrate it nevertheless, for completeness. */ - OpenGLMatrix pose = ((VuforiaTrackableDefaultListener)relicTemplate.getListener()).getFtcCameraFromTarget(); - telemetry.addData("Pose", format(pose)); - - /* We further illustrate how to decompose the pose into useful rotational and - * translational components */ - if (pose != null) { - VectorF trans = pose.getTranslation(); - Orientation rot = Orientation.getOrientation(pose, AxesReference.EXTRINSIC, AxesOrder.XYZ, AngleUnit.DEGREES); - - // Extract the X, Y, and Z components of the offset of the target relative to the robot - double tX = trans.get(0); - double tY = trans.get(1); - double tZ = trans.get(2); - - // Extract the rotational components of the target relative to the robot - double rX = rot.firstAngle; - double rY = rot.secondAngle; - double rZ = rot.thirdAngle; - } - } - else { - telemetry.addData("VuMark", "not visible"); - } - - telemetry.update(); - } - } - - String format(OpenGLMatrix transformationMatrix) { - return (transformationMatrix != null) ? transformationMatrix.formatAsTransform() : "null"; - } -} diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaDriveToTargetWebcam.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaDriveToTargetWebcam.java deleted file mode 100644 index d41ada1..0000000 --- a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaDriveToTargetWebcam.java +++ /dev/null @@ -1,203 +0,0 @@ -package org.firstinspires.ftc.robotcontroller.external.samples; - -import com.qualcomm.robotcore.eventloop.opmode.Disabled; -import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; -import com.qualcomm.robotcore.eventloop.opmode.TeleOp; -import com.qualcomm.robotcore.hardware.DcMotor; -import com.qualcomm.robotcore.util.Range; - -import org.firstinspires.ftc.robotcore.external.ClassFactory; -import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; -import org.firstinspires.ftc.robotcore.external.matrices.OpenGLMatrix; -import org.firstinspires.ftc.robotcore.external.matrices.VectorF; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaLocalizer; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackable; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackableDefaultListener; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackables; - -/** - * This OpMode illustrates using a webcam to locate and drive towards ANY Vuforia target. - * The code assumes a basic two-wheel Robot Configuration with motors named left_drive and right_drive. - * The motor directions must be set so a positive drive goes forward and a positive turn rotates to the right. - * - * Under manual control, the left stick will move forward/back, and the right stick will turn left/right. - * This is called POV Joystick mode, different than Tank Drive (where each joystick controls a wheel). - * Manually drive the robot until it displays Target data on the Driver Station. - * Press and hold the *Left Bumper* to enable the automatic "Drive to target" mode. - * Release the Left Bumper to return to manual driving mode. - * - * Use DESIRED_DISTANCE to set how close you want the robot to get to the target. - * Speed and Turn sensitivity can be adjusted using the SPEED_GAIN and TURN_GAIN constants. - * - * For more Vuforia details, or to adapt this OpMode for a phone camera, view the - * ConceptVuforiaFieldNavigation and ConceptVuforiaFieldNavigationWebcam samples. - * - * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. - * Remove or comment out the @Disabled line to add this opmode to the Driver Station OpMode list. - * - * IMPORTANT: In order to use this OpMode, you need to obtain your own Vuforia license key as - * is explained below. - */ - -@TeleOp(name="Drive To Target", group = "Concept") -@Disabled -public class ConceptVuforiaDriveToTargetWebcam extends LinearOpMode -{ - // Adjust these numbers to suit your robot. - final double DESIRED_DISTANCE = 8.0; // this is how close the camera should get to the target (inches) - // The GAIN constants set the relationship between the measured position error, - // and how much power is applied to the drive motors. Drive = Error * Gain - // Make these values smaller for smoother control. - final double SPEED_GAIN = 0.02 ; // Speed Control "Gain". eg: Ramp up to 50% power at a 25 inch error. (0.50 / 25.0) - final double TURN_GAIN = 0.01 ; // Turn Control "Gain". eg: Ramp up to 25% power at a 25 degree error. (0.25 / 25.0) - - final double MM_PER_INCH = 25.40 ; // Metric conversion - - /* - * IMPORTANT: You need to obtain your own license key to use Vuforia. The string below with which - * 'parameters.vuforiaLicenseKey' is initialized is for illustration only, and will not function. - * A Vuforia 'Development' license key, can be obtained free of charge from the Vuforia developer - * web site at https://developer.vuforia.com/license-manager. - * - * Vuforia license keys are always 380 characters long, and look as if they contain mostly - * random data. As an example, here is a example of a fragment of a valid key: - * ... yIgIzTqZ4mWjk9wd3cZO9T1axEqzuhxoGlfOOI2dRzKS4T0hQ8kT ... - * Once you've obtained a license key, copy the string from the Vuforia web site - * and paste it in to your code on the next line, between the double quotes. - */ - private static final String VUFORIA_KEY = - " --- YOUR NEW VUFORIA KEY GOES HERE --- "; - - VuforiaLocalizer vuforia = null; - OpenGLMatrix targetPose = null; - String targetName = ""; - - private DcMotor leftDrive = null; - private DcMotor rightDrive = null; - - @Override public void runOpMode() - { - /* - * Configure Vuforia by creating a Parameter object, and passing it to the Vuforia engine. - * To get an on-phone camera preview, use the code below. - * If no camera preview is desired, use the parameter-less constructor instead (commented out below). - */ - int cameraMonitorViewId = hardwareMap.appContext.getResources().getIdentifier("cameraMonitorViewId", "id", hardwareMap.appContext.getPackageName()); - VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(cameraMonitorViewId); - // VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(); - - parameters.vuforiaLicenseKey = VUFORIA_KEY; - - // Turn off Extended tracking. Set this true if you want Vuforia to track beyond the target. - parameters.useExtendedTracking = false; - - // Connect to the camera we are to use. This name must match what is set up in Robot Configuration - parameters.cameraName = hardwareMap.get(WebcamName.class, "Webcam 1"); - this.vuforia = ClassFactory.getInstance().createVuforia(parameters); - - // Load the trackable objects from the Assets file, and give them meaningful names - VuforiaTrackables targetsPowerPlay = this.vuforia.loadTrackablesFromAsset("PowerPlay"); - targetsPowerPlay.get(0).setName("Red Audience Wall"); - targetsPowerPlay.get(1).setName("Red Rear Wall"); - targetsPowerPlay.get(2).setName("Blue Audience Wall"); - targetsPowerPlay.get(3).setName("Blue Rear Wall"); - - // Start tracking targets in the background - targetsPowerPlay.activate(); - - // Initialize the hardware variables. Note that the strings used here as parameters - // to 'get' must correspond to the names assigned during the robot configuration - // step (using the FTC Robot Controller app on the phone). - leftDrive = hardwareMap.get(DcMotor.class, "left_drive"); - rightDrive = hardwareMap.get(DcMotor.class, "right_drive"); - - // To drive forward, most robots need the motor on one side to be reversed, because the axles point in opposite directions. - // When run, this OpMode should start both motors driving forward. So adjust these two lines based on your first test drive. - // Note: The settings here assume direct drive on left and right wheels. Gear Reduction or 90 Deg drives may require direction flips - leftDrive.setDirection(DcMotor.Direction.REVERSE); - rightDrive.setDirection(DcMotor.Direction.FORWARD); - - telemetry.addData(">", "Press Play to start"); - telemetry.update(); - - waitForStart(); - - boolean targetFound = false; // Set to true when a target is detected by Vuforia - double targetRange = 0; // Distance from camera to target in Inches - double targetBearing = 0; // Robot Heading, relative to target. Positive degrees means target is to the right. - double drive = 0; // Desired forward power (-1 to +1) - double turn = 0; // Desired turning power (-1 to +1) - - while (opModeIsActive()) - { - // Look for first visible target, and save its pose. - targetFound = false; - for (VuforiaTrackable trackable : targetsPowerPlay) - { - if (((VuforiaTrackableDefaultListener) trackable.getListener()).isVisible()) - { - targetPose = ((VuforiaTrackableDefaultListener)trackable.getListener()).getVuforiaCameraFromTarget(); - - // if we have a target, process the "pose" to determine the position of the target relative to the robot. - if (targetPose != null) - { - targetFound = true; - targetName = trackable.getName(); - VectorF trans = targetPose.getTranslation(); - - // Extract the X & Y components of the offset of the target relative to the robot - double targetX = trans.get(0) / MM_PER_INCH; // Image X axis - double targetY = trans.get(2) / MM_PER_INCH; // Image Z axis - - // target range is based on distance from robot position to origin (right triangle). - targetRange = Math.hypot(targetX, targetY); - - // target bearing is based on angle formed between the X axis and the target range line - targetBearing = Math.toDegrees(Math.asin(targetX / targetRange)); - - break; // jump out of target tracking loop if we find a target. - } - } - } - - // Tell the driver what we see, and what to do. - if (targetFound) { - telemetry.addData(">","HOLD Left-Bumper to Drive to Target\n"); - telemetry.addData("Target", " %s", targetName); - telemetry.addData("Range", "%5.1f inches", targetRange); - telemetry.addData("Bearing","%3.0f degrees", targetBearing); - } else { - telemetry.addData(">","Drive using joystick to find target\n"); - } - - // Drive to target Automatically if Left Bumper is being pressed, AND we have found a target. - if (gamepad1.left_bumper && targetFound) { - - // Determine heading and range error so we can use them to control the robot automatically. - double rangeError = (targetRange - DESIRED_DISTANCE); - double headingError = targetBearing; - - // Use the speed and turn "gains" to calculate how we want the robot to move. - drive = rangeError * SPEED_GAIN; - turn = headingError * TURN_GAIN ; - - telemetry.addData("Auto","Drive %5.2f, Turn %5.2f", drive, turn); - } else { - - // drive using manual POV Joystick mode. - drive = -gamepad1.left_stick_y / 2.0; // Reduce drive rate to 50%. - turn = gamepad1.right_stick_x / 4.0; // Reduce turn rate to 25%. - telemetry.addData("Manual","Drive %5.2f, Turn %5.2f", drive, turn); - } - telemetry.update(); - - // Calculate left and right wheel powers and send to them to the motors. - double leftPower = Range.clip(drive + turn, -1.0, 1.0) ; - double rightPower = Range.clip(drive - turn, -1.0, 1.0) ; - leftDrive.setPower(leftPower); - rightDrive.setPower(rightPower); - - sleep(10); - } - } -} diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaFieldNavigation.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaFieldNavigation.java deleted file mode 100644 index 84f2e7b..0000000 --- a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaFieldNavigation.java +++ /dev/null @@ -1,283 +0,0 @@ -/* Copyright (c) 2019 FIRST. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted (subject to the limitations in the disclaimer below) provided that - * the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * Neither the name of FIRST nor the names of its contributors may be used to endorse or - * promote products derived from this software without specific prior written permission. - * - * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS - * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package org.firstinspires.ftc.robotcontroller.external.samples; - -import com.qualcomm.robotcore.eventloop.opmode.Disabled; -import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; -import com.qualcomm.robotcore.eventloop.opmode.TeleOp; - -import org.firstinspires.ftc.robotcore.external.ClassFactory; -import org.firstinspires.ftc.robotcore.external.matrices.OpenGLMatrix; -import org.firstinspires.ftc.robotcore.external.matrices.VectorF; -import org.firstinspires.ftc.robotcore.external.navigation.Orientation; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaLocalizer; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackable; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackableDefaultListener; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackables; - -import java.util.ArrayList; -import java.util.List; - -import static org.firstinspires.ftc.robotcore.external.navigation.AngleUnit.DEGREES; -import static org.firstinspires.ftc.robotcore.external.navigation.AxesOrder.XYZ; -import static org.firstinspires.ftc.robotcore.external.navigation.AxesOrder.YZX; -import static org.firstinspires.ftc.robotcore.external.navigation.AxesReference.EXTRINSIC; -import static org.firstinspires.ftc.robotcore.external.navigation.VuforiaLocalizer.CameraDirection.BACK; - -/** - * This OpMode illustrates using the Vuforia localizer to determine positioning and orientation of - * robot on the FTC field using the RC phone's camera. The code is structured as a LinearOpMode - * - * Note: If you are using a WEBCAM see ConceptVuforiaFieldNavigationWebcam.java - * - * When images are located, Vuforia is able to determine the position and orientation of the - * image relative to the camera. This sample code then combines that information with a - * knowledge of where the target images are on the field, to determine the location of the camera. - * - * Finally, the location of the camera on the robot is used to determine the - * robot's location and orientation on the field. - * - * To learn more about the FTC field coordinate model, see FTC_FieldCoordinateSystemDefinition.pdf in this folder - * - * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. - * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. - * - * IMPORTANT: In order to use this OpMode, you need to obtain your own Vuforia license key as - * is explained below. - */ - -@TeleOp(name="Vuforia Field Nav", group ="Concept") -@Disabled -public class ConceptVuforiaFieldNavigation extends LinearOpMode { - - // IMPORTANT: For Phone Camera, set 1) the camera source and 2) the orientation, based on how your phone is mounted: - // 1) Camera Source. Valid choices are: BACK (behind screen) or FRONT (selfie side) - // 2) Phone Orientation. Choices are: PHONE_IS_PORTRAIT = true (portrait) or PHONE_IS_PORTRAIT = false (landscape) - - private static final VuforiaLocalizer.CameraDirection CAMERA_CHOICE = BACK; - private static final boolean PHONE_IS_PORTRAIT = false ; - - /* - * IMPORTANT: You need to obtain your own license key to use Vuforia. The string below with which - * 'parameters.vuforiaLicenseKey' is initialized is for illustration only, and will not function. - * A Vuforia 'Development' license key, can be obtained free of charge from the Vuforia developer - * web site at https://developer.vuforia.com/license-manager. - * - * Vuforia license keys are always 380 characters long, and look as if they contain mostly - * random data. As an example, here is a example of a fragment of a valid key: - * ... yIgIzTqZ4mWjk9wd3cZO9T1axEqzuhxoGlfOOI2dRzKS4T0hQ8kT ... - * Once you've obtained a license key, copy the string from the Vuforia web site - * and paste it in to your code on the next line, between the double quotes. - */ - private static final String VUFORIA_KEY = - " -- YOUR NEW VUFORIA KEY GOES HERE --- "; - - // Since ImageTarget trackables use mm to specifiy their dimensions, we must use mm for all the physical dimension. - // We will define some constants and conversions here. These are useful for the FTC competition field. - private static final float mmPerInch = 25.4f; - private static final float mmTargetHeight = 6 * mmPerInch; // the height of the center of the target image above the floor - private static final float halfField = 72 * mmPerInch; - private static final float halfTile = 12 * mmPerInch; - private static final float oneAndHalfTile = 36 * mmPerInch; - - // Class Members - private OpenGLMatrix lastLocation = null; - private VuforiaLocalizer vuforia = null; - private VuforiaTrackables targets = null ; - - private boolean targetVisible = false; - private float phoneXRotate = 0; - private float phoneYRotate = 0; - private float phoneZRotate = 0; - - @Override public void runOpMode() { - /* - * Configure Vuforia by creating a Parameter object, and passing it to the Vuforia engine. - * To get an on-phone camera preview, use the code below. - * If no camera preview is desired, use the parameter-less constructor instead (commented out below). - */ - int cameraMonitorViewId = hardwareMap.appContext.getResources().getIdentifier("cameraMonitorViewId", "id", hardwareMap.appContext.getPackageName()); - VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(cameraMonitorViewId); - // VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(); - - parameters.vuforiaLicenseKey = VUFORIA_KEY; - parameters.cameraDirection = CAMERA_CHOICE; - - // Turn off Extended tracking. Set this true if you want Vuforia to track beyond the target. - parameters.useExtendedTracking = false; - - // Instantiate the Vuforia engine - vuforia = ClassFactory.getInstance().createVuforia(parameters); - - // Load the trackable assets. - targets = this.vuforia.loadTrackablesFromAsset("PowerPlay"); - - // For convenience, gather together all the trackable objects in one easily-iterable collection */ - List allTrackables = new ArrayList(); - allTrackables.addAll(targets); - - /** - * In order for localization to work, we need to tell the system where each target is on the field, and - * where the phone resides on the robot. These specifications are in the form of transformation matrices. - * Transformation matrices are a central, important concept in the math here involved in localization. - * See Transformation Matrix - * for detailed information. Commonly, you'll encounter transformation matrices as instances - * of the {@link OpenGLMatrix} class. - * - * If you are standing in the Red Alliance Station looking towards the center of the field, - * - The X axis runs from your left to the right. (positive from the center to the right) - * - The Y axis runs from the Red Alliance Station towards the other side of the field - * where the Blue Alliance Station is. (Positive is from the center, towards the BlueAlliance station) - * - The Z axis runs from the floor, upwards towards the ceiling. (Positive is above the floor) - * - * Before being transformed, each target image is conceptually located at the origin of the field's - * coordinate system (the center of the field), facing up. - */ - - // Name and locate each trackable object - identifyTarget(0, "Red Audience Wall", -halfField, -oneAndHalfTile, mmTargetHeight, 90, 0, 90); - identifyTarget(1, "Red Rear Wall", halfField, -oneAndHalfTile, mmTargetHeight, 90, 0, -90); - identifyTarget(2, "Blue Audience Wall", -halfField, oneAndHalfTile, mmTargetHeight, 90, 0, 90); - identifyTarget(3, "Blue Rear Wall", halfField, oneAndHalfTile, mmTargetHeight, 90, 0, -90); - - /* - * Create a transformation matrix describing where the phone is on the robot. - * - * NOTE !!!! It's very important that you turn OFF your phone's Auto-Screen-Rotation option. - * Lock it into Portrait for these numbers to work. - * - * Info: The coordinate frame for the robot looks the same as the field. - * The robot's "forward" direction is facing out along X axis, with the LEFT side facing out along the Y axis. - * Z is UP on the robot. This equates to a heading angle of Zero degrees. - * - * The phone starts out lying flat, with the screen facing Up and with the physical top of the phone - * pointing to the LEFT side of the Robot. - * The two examples below assume that the camera is facing forward out the front of the robot. - */ - - // We need to rotate the camera around its long axis to bring the correct camera forward. - if (CAMERA_CHOICE == BACK) { - phoneYRotate = -90; - } else { - phoneYRotate = 90; - } - - // Rotate the phone vertical about the X axis if it's in portrait mode - if (PHONE_IS_PORTRAIT) { - phoneXRotate = 90 ; - } - - // Next, translate the camera lens to where it is on the robot. - // In this example, it is centered on the robot (left-to-right and front-to-back), and 6 inches above ground level. - final float CAMERA_FORWARD_DISPLACEMENT = 0.0f * mmPerInch; // eg: Enter the forward distance from the center of the robot to the camera lens - final float CAMERA_VERTICAL_DISPLACEMENT = 6.0f * mmPerInch; // eg: Camera is 6 Inches above ground - final float CAMERA_LEFT_DISPLACEMENT = 0.0f * mmPerInch; // eg: Enter the left distance from the center of the robot to the camera lens - - OpenGLMatrix robotFromCamera = OpenGLMatrix - .translation(CAMERA_FORWARD_DISPLACEMENT, CAMERA_LEFT_DISPLACEMENT, CAMERA_VERTICAL_DISPLACEMENT) - .multiplied(Orientation.getRotationMatrix(EXTRINSIC, YZX, DEGREES, phoneYRotate, phoneZRotate, phoneXRotate)); - - /** Let all the trackable listeners know where the phone is. */ - for (VuforiaTrackable trackable : allTrackables) { - ((VuforiaTrackableDefaultListener) trackable.getListener()).setPhoneInformation(robotFromCamera, parameters.cameraDirection); - } - - /* - * WARNING: - * In this sample, we do not wait for PLAY to be pressed. Target Tracking is started immediately when INIT is pressed. - * This sequence is used to enable the new remote DS Camera Stream feature to be used with this sample. - * CONSEQUENTLY do not put any driving commands in this loop. - * To restore the normal opmode structure, just un-comment the following line: - */ - - // waitForStart(); - - /* Note: To use the remote camera preview: - * AFTER you hit Init on the Driver Station, use the "options menu" to select "Camera Stream" - * Tap the preview window to receive a fresh image. - * It is not permitted to transition to RUN while the camera preview window is active. - * Either press STOP to exit the OpMode, or use the "options menu" again, and select "Camera Stream" to close the preview window. - */ - - targets.activate(); - while (!isStopRequested()) { - - // check all the trackable targets to see which one (if any) is visible. - targetVisible = false; - for (VuforiaTrackable trackable : allTrackables) { - if (((VuforiaTrackableDefaultListener)trackable.getListener()).isVisible()) { - telemetry.addData("Visible Target", trackable.getName()); - targetVisible = true; - - // getUpdatedRobotLocation() will return null if no new information is available since - // the last time that call was made, or if the trackable is not currently visible. - OpenGLMatrix robotLocationTransform = ((VuforiaTrackableDefaultListener)trackable.getListener()).getUpdatedRobotLocation(); - if (robotLocationTransform != null) { - lastLocation = robotLocationTransform; - } - break; - } - } - - // Provide feedback as to where the robot is located (if we know). - if (targetVisible) { - // express position (translation) of robot in inches. - VectorF translation = lastLocation.getTranslation(); - telemetry.addData("Pos (inches)", "{X, Y, Z} = %.1f, %.1f, %.1f", - translation.get(0) / mmPerInch, translation.get(1) / mmPerInch, translation.get(2) / mmPerInch); - - // express the rotation of the robot in degrees. - Orientation rotation = Orientation.getOrientation(lastLocation, EXTRINSIC, XYZ, DEGREES); - telemetry.addData("Rot (deg)", "{Roll, Pitch, Heading} = %.0f, %.0f, %.0f", rotation.firstAngle, rotation.secondAngle, rotation.thirdAngle); - } - else { - telemetry.addData("Visible Target", "none"); - } - telemetry.update(); - } - - // Disable Tracking when we are done; - targets.deactivate(); - } - - /*** - * Identify a target by naming it, and setting its position and orientation on the field - * @param targetIndex - * @param targetName - * @param dx, dy, dz Target offsets in x,y,z axes - * @param rx, ry, rz Target rotations in x,y,z axes - */ - void identifyTarget(int targetIndex, String targetName, float dx, float dy, float dz, float rx, float ry, float rz) { - VuforiaTrackable aTarget = targets.get(targetIndex); - aTarget.setName(targetName); - aTarget.setLocation(OpenGLMatrix.translation(dx, dy, dz) - .multiplied(Orientation.getRotationMatrix(EXTRINSIC, XYZ, DEGREES, rx, ry, rz))); - } -} diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaFieldNavigationWebcam.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaFieldNavigationWebcam.java deleted file mode 100644 index 6316c48..0000000 --- a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/ConceptVuforiaFieldNavigationWebcam.java +++ /dev/null @@ -1,274 +0,0 @@ -/* Copyright (c) 2019 FIRST. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted (subject to the limitations in the disclaimer below) provided that - * the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * Neither the name of FIRST nor the names of its contributors may be used to endorse or - * promote products derived from this software without specific prior written permission. - * - * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS - * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package org.firstinspires.ftc.robotcontroller.external.samples; - -import com.qualcomm.robotcore.eventloop.opmode.Disabled; -import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; -import com.qualcomm.robotcore.eventloop.opmode.TeleOp; - -import org.firstinspires.ftc.robotcore.external.ClassFactory; -import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; -import org.firstinspires.ftc.robotcore.external.matrices.OpenGLMatrix; -import org.firstinspires.ftc.robotcore.external.matrices.VectorF; -import org.firstinspires.ftc.robotcore.external.navigation.Orientation; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaLocalizer; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackable; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackableDefaultListener; -import org.firstinspires.ftc.robotcore.external.navigation.VuforiaTrackables; - -import java.util.ArrayList; -import java.util.List; - -import static org.firstinspires.ftc.robotcore.external.navigation.AngleUnit.DEGREES; -import static org.firstinspires.ftc.robotcore.external.navigation.AxesOrder.XYZ; -import static org.firstinspires.ftc.robotcore.external.navigation.AxesOrder.XZY; -import static org.firstinspires.ftc.robotcore.external.navigation.AxesReference.EXTRINSIC; - -/** - * This OpMode illustrates using the Vuforia localizer to determine positioning and orientation of - * robot on the FTC field using a WEBCAM. The code is structured as a LinearOpMode - * - * NOTE: If you are running on a Phone with a built-in camera, use the ConceptVuforiaFieldNavigation example instead of this one. - * NOTE: It is possible to switch between multiple WebCams (eg: one for the left side and one for the right). - * For a related example of how to do this, see ConceptTensorFlowObjectDetectionSwitchableCameras - * - * When images are located, Vuforia is able to determine the position and orientation of the - * image relative to the camera. This sample code then combines that information with a - * knowledge of where the target images are on the field, to determine the location of the camera. - * - * Finally, the location of the camera on the robot is used to determine the - * robot's location and orientation on the field. - * - * To learn more about the FTC field coordinate model, see FTC_FieldCoordinateSystemDefinition.pdf in this folder - * - * Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name. - * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. - * - * IMPORTANT: In order to use this OpMode, you need to obtain your own Vuforia license key as - * is explained below. - */ - -@TeleOp(name="Vuforia Field Nav Webcam", group ="Concept") -@Disabled -public class ConceptVuforiaFieldNavigationWebcam extends LinearOpMode { - - /* - * IMPORTANT: You need to obtain your own license key to use Vuforia. The string below with which - * 'parameters.vuforiaLicenseKey' is initialized is for illustration only, and will not function. - * A Vuforia 'Development' license key, can be obtained free of charge from the Vuforia developer - * web site at https://developer.vuforia.com/license-manager. - * - * Vuforia license keys are always 380 characters long, and look as if they contain mostly - * random data. As an example, here is a example of a fragment of a valid key: - * ... yIgIzTqZ4mWjk9wd3cZO9T1axEqzuhxoGlfOOI2dRzKS4T0hQ8kT ... - * Once you've obtained a license key, copy the string from the Vuforia web site - * and paste it in to your code on the next line, between the double quotes. - */ - private static final String VUFORIA_KEY = - " --- YOUR NEW VUFORIA KEY GOES HERE --- "; - - // Since ImageTarget trackables use mm to specifiy their dimensions, we must use mm for all the physical dimension. - // We will define some constants and conversions here - private static final float mmPerInch = 25.4f; - private static final float mmTargetHeight = 6 * mmPerInch; // the height of the center of the target image above the floor - private static final float halfField = 72 * mmPerInch; - private static final float halfTile = 12 * mmPerInch; - private static final float oneAndHalfTile = 36 * mmPerInch; - - // Class Members - private OpenGLMatrix lastLocation = null; - private VuforiaLocalizer vuforia = null; - private VuforiaTrackables targets = null ; - private WebcamName webcamName = null; - - private boolean targetVisible = false; - - @Override public void runOpMode() { - // Connect to the camera we are to use. This name must match what is set up in Robot Configuration - webcamName = hardwareMap.get(WebcamName.class, "Webcam 1"); - - /* - * Configure Vuforia by creating a Parameter object, and passing it to the Vuforia engine. - * We can pass Vuforia the handle to a camera preview resource (on the RC screen); - * If no camera-preview is desired, use the parameter-less constructor instead (commented out below). - * Note: A preview window is required if you want to view the camera stream on the Driver Station Phone. - */ - int cameraMonitorViewId = hardwareMap.appContext.getResources().getIdentifier("cameraMonitorViewId", "id", hardwareMap.appContext.getPackageName()); - VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(cameraMonitorViewId); - // VuforiaLocalizer.Parameters parameters = new VuforiaLocalizer.Parameters(); - - parameters.vuforiaLicenseKey = VUFORIA_KEY; - - // We also indicate which camera we wish to use. - parameters.cameraName = webcamName; - - // Turn off Extended tracking. Set this true if you want Vuforia to track beyond the target. - parameters.useExtendedTracking = false; - - // Instantiate the Vuforia engine - vuforia = ClassFactory.getInstance().createVuforia(parameters); - - // Load the data sets for the trackable objects. These particular data - // sets are stored in the 'assets' part of our application. - targets = this.vuforia.loadTrackablesFromAsset("PowerPlay"); - - // For convenience, gather together all the trackable objects in one easily-iterable collection */ - List allTrackables = new ArrayList(); - allTrackables.addAll(targets); - - /** - * In order for localization to work, we need to tell the system where each target is on the field, and - * where the phone resides on the robot. These specifications are in the form of transformation matrices. - * Transformation matrices are a central, important concept in the math here involved in localization. - * See Transformation Matrix - * for detailed information. Commonly, you'll encounter transformation matrices as instances - * of the {@link OpenGLMatrix} class. - * - * If you are standing in the Red Alliance Station looking towards the center of the field, - * - The X axis runs from your left to the right. (positive from the center to the right) - * - The Y axis runs from the Red Alliance Station towards the other side of the field - * where the Blue Alliance Station is. (Positive is from the center, towards the BlueAlliance station) - * - The Z axis runs from the floor, upwards towards the ceiling. (Positive is above the floor) - * - * Before being transformed, each target image is conceptually located at the origin of the field's - * coordinate system (the center of the field), facing up. - */ - - // Name and locate each trackable object - identifyTarget(0, "Red Audience Wall", -halfField, -oneAndHalfTile, mmTargetHeight, 90, 0, 90); - identifyTarget(1, "Red Rear Wall", halfField, -oneAndHalfTile, mmTargetHeight, 90, 0, -90); - identifyTarget(2, "Blue Audience Wall", -halfField, oneAndHalfTile, mmTargetHeight, 90, 0, 90); - identifyTarget(3, "Blue Rear Wall", halfField, oneAndHalfTile, mmTargetHeight, 90, 0, -90); - - /* - * Create a transformation matrix describing where the camera is on the robot. - * - * Info: The coordinate frame for the robot looks the same as the field. - * The robot's "forward" direction is facing out along X axis, with the LEFT side facing out along the Y axis. - * Z is UP on the robot. This equates to a bearing angle of Zero degrees. - * - * For a WebCam, the default starting orientation of the camera is looking UP (pointing in the Z direction), - * with the wide (horizontal) axis of the camera aligned with the X axis, and - * the Narrow (vertical) axis of the camera aligned with the Y axis - * - * But, this example assumes that the camera is actually facing forward out the front of the robot. - * So, the "default" camera position requires two rotations to get it oriented correctly. - * 1) First it must be rotated +90 degrees around the X axis to get it horizontal (its now facing out the right side of the robot) - * 2) Next it must be be rotated +90 degrees (counter-clockwise) around the Z axis to face forward. - * - * Finally the camera can be translated to its actual mounting position on the robot. - * In this example, it is centered on the robot (left-to-right and front-to-back), and 6 inches above ground level. - */ - - final float CAMERA_FORWARD_DISPLACEMENT = 0.0f * mmPerInch; // eg: Enter the forward distance from the center of the robot to the camera lens - final float CAMERA_VERTICAL_DISPLACEMENT = 6.0f * mmPerInch; // eg: Camera is 6 Inches above ground - final float CAMERA_LEFT_DISPLACEMENT = 0.0f * mmPerInch; // eg: Enter the left distance from the center of the robot to the camera lens - - OpenGLMatrix cameraLocationOnRobot = OpenGLMatrix - .translation(CAMERA_FORWARD_DISPLACEMENT, CAMERA_LEFT_DISPLACEMENT, CAMERA_VERTICAL_DISPLACEMENT) - .multiplied(Orientation.getRotationMatrix(EXTRINSIC, XZY, DEGREES, 90, 90, 0)); - - /** Let all the trackable listeners know where the camera is. */ - for (VuforiaTrackable trackable : allTrackables) { - ((VuforiaTrackableDefaultListener) trackable.getListener()).setCameraLocationOnRobot(parameters.cameraName, cameraLocationOnRobot); - } - - /* - * WARNING: - * In this sample, we do not wait for PLAY to be pressed. Target Tracking is started immediately when INIT is pressed. - * This sequence is used to enable the new remote DS Camera Preview feature to be used with this sample. - * CONSEQUENTLY do not put any driving commands in this loop. - * To restore the normal opmode structure, just un-comment the following line: - */ - - // waitForStart(); - - /* Note: To use the remote camera preview: - * AFTER you hit Init on the Driver Station, use the "options menu" to select "Camera Stream" - * Tap the preview window to receive a fresh image. - * It is not permitted to transition to RUN while the camera preview window is active. - * Either press STOP to exit the OpMode, or use the "options menu" again, and select "Camera Stream" to close the preview window. - */ - - targets.activate(); - while (!isStopRequested()) { - - // check all the trackable targets to see which one (if any) is visible. - targetVisible = false; - for (VuforiaTrackable trackable : allTrackables) { - if (((VuforiaTrackableDefaultListener)trackable.getListener()).isVisible()) { - telemetry.addData("Visible Target", trackable.getName()); - targetVisible = true; - - // getUpdatedRobotLocation() will return null if no new information is available since - // the last time that call was made, or if the trackable is not currently visible. - OpenGLMatrix robotLocationTransform = ((VuforiaTrackableDefaultListener)trackable.getListener()).getUpdatedRobotLocation(); - if (robotLocationTransform != null) { - lastLocation = robotLocationTransform; - } - break; - } - } - - // Provide feedback as to where the robot is located (if we know). - if (targetVisible) { - // express position (translation) of robot in inches. - VectorF translation = lastLocation.getTranslation(); - telemetry.addData("Pos (inches)", "{X, Y, Z} = %.1f, %.1f, %.1f", - translation.get(0) / mmPerInch, translation.get(1) / mmPerInch, translation.get(2) / mmPerInch); - - // express the rotation of the robot in degrees. - Orientation rotation = Orientation.getOrientation(lastLocation, EXTRINSIC, XYZ, DEGREES); - telemetry.addData("Rot (deg)", "{Roll, Pitch, Heading} = %.0f, %.0f, %.0f", rotation.firstAngle, rotation.secondAngle, rotation.thirdAngle); - } - else { - telemetry.addData("Visible Target", "none"); - } - telemetry.update(); - } - - // Disable Tracking when we are done; - targets.deactivate(); - } - - /*** - * Identify a target by naming it, and setting its position and orientation on the field - * @param targetIndex - * @param targetName - * @param dx, dy, dz Target offsets in x,y,z axes - * @param rx, ry, rz Target rotations in x,y,z axes - */ - void identifyTarget(int targetIndex, String targetName, float dx, float dy, float dz, float rx, float ry, float rz) { - VuforiaTrackable aTarget = targets.get(targetIndex); - aTarget.setName(targetName); - aTarget.setLocation(OpenGLMatrix.translation(dx, dy, dz) - .multiplied(Orientation.getRotationMatrix(EXTRINSIC, XYZ, DEGREES, rx, ry, rz))); - } -} diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/FTC_FieldCoordinateSystemDefinition.pdf b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/FTC_FieldCoordinateSystemDefinition.pdf deleted file mode 100644 index c424d4783c8c4ecfe4ca47c19364d819d4ab38aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496836 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

-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 |*Bbm)E&k-J{G}HBwSD-<)&HYp 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

Q@(Docf3si9K)-wom&pYISU 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%0A0E$Bf=T@G{SRXc{(;Zu@+UByD@{wMC?6 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

|wu+WjBO1-UZ8k%lz2p~0C3pY(=%1p& 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 `}YQI|GIXVrB}d#?Ne4`t;rP&`Ft#n?Af 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", "Touch Play to start OpMode"); + telemetry.update(); + waitForStart(); + + while (opModeIsActive()) + { + targetFound = false; + desiredTag = null; + + // Step through the list of detected tags and look for a matching tag + List currentDetections = aprilTag.getDetections(); + for (AprilTagDetection detection : currentDetections) { + if ((detection.metadata != null) + && ((DESIRED_TAG_ID >= 0) || (detection.id == DESIRED_TAG_ID)) ){ + targetFound = true; + desiredTag = detection; + break; // don't look any further. + } + } + + // Tell the driver what we see, and what to do. + if (targetFound) { + telemetry.addData(">","HOLD Left-Bumper to Drive to Target\n"); + telemetry.addData("Target", "ID %d (%s)", desiredTag.id, desiredTag.metadata.name); + telemetry.addData("Range", "%5.1f inches", desiredTag.ftcPose.range); + telemetry.addData("Bearing","%3.0f degrees", desiredTag.ftcPose.bearing); + telemetry.addData("Yaw","%3.0f degrees", desiredTag.ftcPose.yaw); + } else { + telemetry.addData(">","Drive using joystick to find target\n"); + } + + // If Left Bumper is being pressed, AND we have found the desired target, Drive to target Automatically . + if (gamepad1.left_bumper && targetFound) { + + // Determine heading, range and Yaw (tag image rotation) error so we can use them to control the robot automatically. + double rangeError = (desiredTag.ftcPose.range - DESIRED_DISTANCE); + double headingError = desiredTag.ftcPose.bearing; + double yawError = desiredTag.ftcPose.yaw; + + // Use the speed and turn "gains" to calculate how we want the robot to move. + drive = Range.clip(rangeError * SPEED_GAIN, -MAX_AUTO_SPEED, MAX_AUTO_SPEED); + turn = Range.clip(headingError * TURN_GAIN, -MAX_AUTO_TURN, MAX_AUTO_TURN) ; + strafe = Range.clip(-yawError * STRAFE_GAIN, -MAX_AUTO_STRAFE, MAX_AUTO_STRAFE); + + telemetry.addData("Auto","Drive %5.2f, Strafe %5.2f, Turn %5.2f ", drive, strafe, turn); + } else { + + // drive using manual POV Joystick mode. Slow things down to make the robot more controlable. + drive = -gamepad1.left_stick_y / 2.0; // Reduce drive rate to 50%. + strafe = -gamepad1.left_stick_x / 2.0; // Reduce strafe rate to 50%. + turn = -gamepad1.right_stick_x / 3.0; // Reduce turn rate to 33%. + telemetry.addData("Manual","Drive %5.2f, Strafe %5.2f, Turn %5.2f ", drive, strafe, turn); + } + telemetry.update(); + + // Apply desired axes motions to the drivetrain. + moveRobot(drive, strafe, turn); + sleep(10); + } + } + + /** + * Move robot according to desired axes motions + * Positive X is forward + * Positive Y is strafe left + * Positive Yaw is counter-clockwise + */ + public void moveRobot(double x, double y, double yaw) { + // Calculate wheel powers. + double leftFrontPower = x -y -yaw; + double rightFrontPower = x +y +yaw; + double leftBackPower = x +y -yaw; + double rightBackPower = x -y +yaw; + + // Normalize wheel powers to be less than 1.0 + double max = Math.max(Math.abs(leftFrontPower), Math.abs(rightFrontPower)); + max = Math.max(max, Math.abs(leftBackPower)); + max = Math.max(max, Math.abs(rightBackPower)); + + if (max > 1.0) { + leftFrontPower /= max; + rightFrontPower /= max; + leftBackPower /= max; + rightBackPower /= max; + } + + // Send powers to the wheels. + leftFrontDrive.setPower(leftFrontPower); + rightFrontDrive.setPower(rightFrontPower); + leftBackDrive.setPower(leftBackPower); + rightBackDrive.setPower(rightBackPower); + } + + /** + * Initialize the AprilTag processor. + */ + private void initAprilTag() { + // Create the AprilTag processor by using a builder. + aprilTag = new AprilTagProcessor.Builder().build(); + + // Create the vision portal by using a builder. + if (USE_WEBCAM) { + visionPortal = new VisionPortal.Builder() + .setCamera(hardwareMap.get(WebcamName.class, "Webcam 1")) + .addProcessor(aprilTag) + .build(); + } else { + visionPortal = new VisionPortal.Builder() + .setCamera(BuiltinCameraDirection.BACK) + .addProcessor(aprilTag) + .build(); + } + } + + /* + Manually set the camera gain and exposure. + This can only be called AFTER calling initAprilTag(), and only works for Webcams; + */ + private void setManualExposure(int exposureMS, int gain) { + // Wait for the camera to be open, then use the controls + + if (visionPortal == null) { + return; + } + + // Make sure camera is streaming before we try to set the exposure controls + if (visionPortal.getCameraState() != VisionPortal.CameraState.STREAMING) { + telemetry.addData("Camera", "Waiting"); + telemetry.update(); + while (!isStopRequested() && (visionPortal.getCameraState() != VisionPortal.CameraState.STREAMING)) { + sleep(20); + } + telemetry.addData("Camera", "Ready"); + telemetry.update(); + } + + // Set camera controls unless we are stopping. + if (!isStopRequested()) + { + ExposureControl exposureControl = visionPortal.getCameraControl(ExposureControl.class); + if (exposureControl.getMode() != ExposureControl.Mode.Manual) { + exposureControl.setMode(ExposureControl.Mode.Manual); + sleep(50); + } + exposureControl.setExposure((long)exposureMS, TimeUnit.MILLISECONDS); + sleep(20); + GainControl gainControl = visionPortal.getCameraControl(GainControl.class); + gainControl.setGain(gain); + sleep(20); + } + } +} diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/RobotAutoDriveToAprilTagTank.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/RobotAutoDriveToAprilTagTank.java new file mode 100644 index 0000000..da6097c --- /dev/null +++ b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/RobotAutoDriveToAprilTagTank.java @@ -0,0 +1,271 @@ +/* Copyright (c) 2023 FIRST. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted (subject to the limitations in the disclaimer below) provided that + * the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * Neither the name of FIRST nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS + * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.firstinspires.ftc.robotcontroller.external.samples; + +import com.qualcomm.robotcore.eventloop.opmode.Disabled; +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; +import com.qualcomm.robotcore.hardware.DcMotor; +import com.qualcomm.robotcore.util.Range; + +import org.firstinspires.ftc.robotcore.external.hardware.camera.BuiltinCameraDirection; +import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; +import org.firstinspires.ftc.robotcore.external.hardware.camera.controls.ExposureControl; +import org.firstinspires.ftc.robotcore.external.hardware.camera.controls.GainControl; +import org.firstinspires.ftc.vision.VisionPortal; +import org.firstinspires.ftc.vision.apriltag.AprilTagDetection; +import org.firstinspires.ftc.vision.apriltag.AprilTagProcessor; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * This OpMode illustrates using a camera to locate and drive towards a specific AprilTag. + * The code assumes a basic two-wheel (Tank) Robot Drivetrain + * + * The driving goal is to rotate to keep the tag centered in the camera, while driving towards the tag to achieve the desired distance. + * To reduce any motion blur (which will interrupt the detection process) the Camera exposure is reduced to a very low value (5mS) + * You can determine the best exposure and gain values by using the ConceptAprilTagOptimizeExposure OpMode in this Samples folder. + * + * The code assumes a Robot Configuration with motors named left_drive and right_drive. + * The motor directions must be set so a positive power goes forward on both wheels; + * This sample assumes that the default AprilTag Library (usually for the current season) is being loaded by default + * so you should choose to approach a valid tag ID (usually starting at 0) + * + * Under manual control, the left stick will move forward/back, and the right stick will rotate the robot. + * This is called POV Joystick mode, different than Tank Drive (where each joystick controls a wheel). + * + * Manually drive the robot until it displays Target data on the Driver Station. + * Press and hold the *Left Bumper* to enable the automatic "Drive to target" mode. + * Release the Left Bumper to return to manual driving mode. + * + * Under "Drive To Target" mode, the robot has two goals: + * 1) Turn the robot to always keep the Tag centered on the camera frame. (Use the Target Bearing to turn the robot.) + * 2) Drive towards the Tag to get to the desired distance. (Use Tag Range to drive the robot forward/backward) + * + * Use DESIRED_DISTANCE to set how close you want the robot to get to the target. + * Speed and Turn sensitivity can be adjusted using the SPEED_GAIN and TURN_GAIN constants. + * + * Use Android Studio to Copy this Class, and Paste it into the TeamCode/src/main/java/org/firstinspires/ftc/teamcode folder. + * Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list. + * + */ + +@TeleOp(name="Tank Drive To AprilTag", group = "Concept") +@Disabled +public class RobotAutoDriveToAprilTagTank extends LinearOpMode +{ + // Adjust these numbers to suit your robot. + final double DESIRED_DISTANCE = 12.0; // this is how close the camera should get to the target (inches) + + // Set the GAIN constants to control the relationship between the measured position error, and how much power is + // applied to the drive motors to correct the error. + // Drive = Error * Gain Make these values smaller for smoother control, or larger for a more aggressive response. + final double SPEED_GAIN = 0.02 ; // Speed Control "Gain". eg: Ramp up to 50% power at a 25 inch error. (0.50 / 25.0) + final double TURN_GAIN = 0.01 ; // Turn Control "Gain". eg: Ramp up to 25% power at a 25 degree error. (0.25 / 25.0) + + final double MAX_AUTO_SPEED = 0.5; // Clip the approach speed to this max value (adjust for your robot) + final double MAX_AUTO_TURN = 0.25; // Clip the turn speed to this max value (adjust for your robot) + + private DcMotor leftDrive = null; // Used to control the left drive wheel + private DcMotor rightDrive = null; // Used to control the right drive wheel + + private static final boolean USE_WEBCAM = true; // Set true to use a webcam, or false for a phone camera + private static final int DESIRED_TAG_ID = 0; // Choose the tag you want to approach or set to -1 for ANY tag. + private VisionPortal visionPortal; // Used to manage the video source. + private AprilTagProcessor aprilTag; // Used for managing the AprilTag detection process. + private AprilTagDetection desiredTag = null; // Used to hold the data for a detected AprilTag + + @Override public void runOpMode() + { + boolean targetFound = false; // Set to true when an AprilTag target is detected + double drive = 0; // Desired forward power/speed (-1 to +1) +ve is forward + double turn = 0; // Desired turning power/speed (-1 to +1) +ve is CounterClockwise + + // Initialize the Apriltag Detection process + initAprilTag(); + + // Initialize the hardware variables. Note that the strings used here as parameters + // to 'get' must match the names assigned during the robot configuration. + // step (using the FTC Robot Controller app on the phone). + leftDrive = hardwareMap.get(DcMotor.class, "left_drive"); + rightDrive = hardwareMap.get(DcMotor.class, "right_drive"); + + // To drive forward, most robots need the motor on one side to be reversed because the axles point in opposite directions. + // When run, this OpMode should start both motors driving forward. So adjust these two lines based on your first test drive. + // Note: The settings here assume direct drive on left and right wheels. Single Gear Reduction or 90 Deg drives may require direction flips + leftDrive.setDirection(DcMotor.Direction.REVERSE); + rightDrive.setDirection(DcMotor.Direction.FORWARD); + + if (USE_WEBCAM) + setManualExposure(6, 250); // Use low exposure time to reduce motion blur + + // Wait for the driver to press Start + telemetry.addData("Camera preview on/off", "3 dots, Camera Stream"); + telemetry.addData(">", "Touch Play to start OpMode"); + telemetry.update(); + waitForStart(); + + while (opModeIsActive()) + { + targetFound = false; + desiredTag = null; + + // Step through the list of detected tags and look for a matching tag + List currentDetections = aprilTag.getDetections(); + for (AprilTagDetection detection : currentDetections) { + if ((detection.metadata != null) + && ((DESIRED_TAG_ID >= 0) || (detection.id == DESIRED_TAG_ID)) ){ + targetFound = true; + desiredTag = detection; + break; // don't look any further. + } + } + + // Tell the driver what we see, and what to do. + if (targetFound) { + telemetry.addData(">","HOLD Left-Bumper to Drive to Target\n"); + telemetry.addData("Target", "ID %d (%s)", desiredTag.id, desiredTag.metadata.name); + telemetry.addData("Range", "%5.1f inches", desiredTag.ftcPose.range); + telemetry.addData("Bearing","%3.0f degrees", desiredTag.ftcPose.bearing); + } else { + telemetry.addData(">","Drive using joystick to find target\n"); + } + + // If Left Bumper is being pressed, AND we have found the desired target, Drive to target Automatically . + if (gamepad1.left_bumper && targetFound) { + + // Determine heading and range error so we can use them to control the robot automatically. + double rangeError = (desiredTag.ftcPose.range - DESIRED_DISTANCE); + double headingError = desiredTag.ftcPose.bearing; + + // Use the speed and turn "gains" to calculate how we want the robot to move. Clip it to the maximum + drive = Range.clip(rangeError * SPEED_GAIN, -MAX_AUTO_SPEED, MAX_AUTO_SPEED); + turn = Range.clip(headingError * TURN_GAIN, -MAX_AUTO_TURN, MAX_AUTO_TURN) ; + + telemetry.addData("Auto","Drive %5.2f, Turn %5.2f", drive, turn); + } else { + + // drive using manual POV Joystick mode. + drive = -gamepad1.left_stick_y / 2.0; // Reduce drive rate to 50%. + turn = -gamepad1.right_stick_x / 4.0; // Reduce turn rate to 25%. + telemetry.addData("Manual","Drive %5.2f, Turn %5.2f", drive, turn); + } + telemetry.update(); + + // Apply desired axes motions to the drivetrain. + moveRobot(drive, turn); + sleep(10); + } + } + + /** + * Move robot according to desired axes motions + * Positive X is forward + * Positive Yaw is counter-clockwise + */ + public void moveRobot(double x, double yaw) { + // Calculate left and right wheel powers. + double leftPower = x - yaw; + double rightPower = x + yaw; + + // Normalize wheel powers to be less than 1.0 + double max = Math.max(Math.abs(leftPower), Math.abs(rightPower)); + if (max >1.0) { + leftPower /= max; + rightPower /= max; + } + + // Send powers to the wheels. + leftDrive.setPower(leftPower); + rightDrive.setPower(rightPower); + } + + /** + * Initialize the AprilTag processor. + */ + private void initAprilTag() { + // Create the AprilTag processor by using a builder. + aprilTag = new AprilTagProcessor.Builder().build(); + + // Create the vision portal by using a builder. + if (USE_WEBCAM) { + visionPortal = new VisionPortal.Builder() + .setCamera(hardwareMap.get(WebcamName.class, "Webcam 1")) + .addProcessor(aprilTag) + .build(); + } else { + visionPortal = new VisionPortal.Builder() + .setCamera(BuiltinCameraDirection.BACK) + .addProcessor(aprilTag) + .build(); + } + } + + /* + Manually set the camera gain and exposure. + This can only be called AFTER calling initAprilTag(), and only works for Webcams; + */ + private void setManualExposure(int exposureMS, int gain) { + // Wait for the camera to be open, then use the controls + + if (visionPortal == null) { + return; + } + + // Make sure camera is streaming before we try to set the exposure controls + if (visionPortal.getCameraState() != VisionPortal.CameraState.STREAMING) { + telemetry.addData("Camera", "Waiting"); + telemetry.update(); + while (!isStopRequested() && (visionPortal.getCameraState() != VisionPortal.CameraState.STREAMING)) { + sleep(20); + } + telemetry.addData("Camera", "Ready"); + telemetry.update(); + } + + // Set camera controls unless we are stopping. + if (!isStopRequested()) + { + ExposureControl exposureControl = visionPortal.getCameraControl(ExposureControl.class); + if (exposureControl.getMode() != ExposureControl.Mode.Manual) { + exposureControl.setMode(ExposureControl.Mode.Manual); + sleep(50); + } + exposureControl.setExposure((long)exposureMS, TimeUnit.MILLISECONDS); + sleep(20); + GainControl gainControl = visionPortal.getCameraControl(GainControl.class); + gainControl.setGain(gain); + sleep(20); + telemetry.addData("Camera", "Ready"); + telemetry.update(); + } + } +} diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/UtilityCameraFrameCapture.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/UtilityCameraFrameCapture.java new file mode 100644 index 0000000..a7a99f5 --- /dev/null +++ b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples/UtilityCameraFrameCapture.java @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2023 FIRST + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted (subject to the limitations in the disclaimer below) provided that + * the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * Neither the name of FIRST nor the names of its contributors may be used to + * endorse or promote products derived from this software without specific prior + * written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS + * LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.firstinspires.ftc.robotcontroller.external.samples; + +import android.util.Size; + +import com.qualcomm.robotcore.eventloop.opmode.Disabled; +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; + +import org.firstinspires.ftc.robotcore.external.hardware.camera.BuiltinCameraDirection; +import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName; +import org.firstinspires.ftc.vision.VisionPortal; + +import java.util.Locale; + +/** + * This Utility OpMode helps calibrate a webcam or RC phone camera, useful for AprilTag pose estimation + * with the FTC VisionPortal. It captures a camera frame (image) and stores it on the Robot Controller + * (Control Hub or RC phone), with each press of the gamepad button X (or Square). + * Full calibration instructions are here: + * + * https://ftc-docs.firstinspires.org/camera-calibration + * + * In Android Studio, copy this class into your "teamcode" folder with a new name. + * Remove or comment out the @Disabled line to add this file to the Driver Station OpMode list. + * + * In OnBot Java, use "Add File" to add this file from the list of Samples. + */ + +@TeleOp(name = "Utility: Camera Frame Capture", group = "Utility") +@Disabled +public class UtilityCameraFrameCapture extends LinearOpMode +{ + /* + * EDIT THESE PARAMETERS AS NEEDED + */ + final boolean USING_WEBCAM = false; + final BuiltinCameraDirection INTERNAL_CAM_DIR = BuiltinCameraDirection.BACK; + final int RESOLUTION_WIDTH = 640; + final int RESOLUTION_HEIGHT = 480; + + // Internal state + boolean lastX; + int frameCount; + long capReqTime; + + @Override + public void runOpMode() + { + VisionPortal portal; + + if (USING_WEBCAM) + { + portal = new VisionPortal.Builder() + .setCamera(hardwareMap.get(WebcamName.class, "Webcam 1")) + .setCameraResolution(new Size(RESOLUTION_WIDTH, RESOLUTION_HEIGHT)) + .build(); + } + else + { + portal = new VisionPortal.Builder() + .setCamera(INTERNAL_CAM_DIR) + .setCameraResolution(new Size(RESOLUTION_WIDTH, RESOLUTION_HEIGHT)) + .build(); + } + + while (!isStopRequested()) + { + boolean x = gamepad1.x; + + if (x && !lastX) + { + portal.saveNextFrameRaw(String.format(Locale.US, "CameraFrameCapture-%06d", frameCount++)); + capReqTime = System.currentTimeMillis(); + } + + lastX = x; + + telemetry.addLine("######## Camera Capture Utility ########"); + telemetry.addLine(String.format(Locale.US, " > Resolution: %dx%d", RESOLUTION_WIDTH, RESOLUTION_HEIGHT)); + telemetry.addLine(" > Press X (or Square) to capture a frame"); + telemetry.addData(" > Camera Status", portal.getCameraState()); + + if (capReqTime != 0) + { + telemetry.addLine("\nCaptured Frame!"); + } + + if (capReqTime != 0 && System.currentTimeMillis() - capReqTime > 1000) + { + capReqTime = 0; + } + + telemetry.update(); + } + } +} diff --git a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/internal/FtcRobotControllerActivity.java b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/internal/FtcRobotControllerActivity.java index 327d3ec..3f1f77c 100644 --- a/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/internal/FtcRobotControllerActivity.java +++ b/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/internal/FtcRobotControllerActivity.java @@ -625,8 +625,8 @@ public class FtcRobotControllerActivity extends Activity } /** - * Updates the orientation of monitorContainer (which contains cameraMonitorView and - * tfodMonitorView) based on the given configuration. Makes the children split the space. + * Updates the orientation of monitorContainer (which contains cameraMonitorView) + * based on the given configuration. Makes the children split the space. */ private void updateMonitorLayout(Configuration configuration) { LinearLayout monitorContainer = (LinearLayout) findViewById(R.id.monitorContainer); diff --git a/FtcRobotController/src/main/res/layout/activity_ftc_controller.xml b/FtcRobotController/src/main/res/layout/activity_ftc_controller.xml index 935bb2b..6524f94 100644 --- a/FtcRobotController/src/main/res/layout/activity_ftc_controller.xml +++ b/FtcRobotController/src/main/res/layout/activity_ftc_controller.xml @@ -140,13 +140,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. android:layout_weight="1" android:orientation="vertical" /> - diff --git a/README.md b/README.md index 9cd75e7..23c5e7b 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,11 @@ This repository contains the public FTC SDK for the POWERPLAY (2022-2023) compet ## 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. +## Requirements +To use this Android Studio project, you will need Android Studio 2021.2 (codename Chipmunk) or later. + +To program your robot in Blocks or OnBot Java, you do not need Android Studio. + ## 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://ftc-docs.firstinspires.org/programming_resources/blocks/Blocks-Tutorial.html) to get familiar with how to use the control system: @@ -54,12 +59,69 @@ The readme.md file located in the [/TeamCode/src/main/java/org/firstinspires/ftc # Release Information +## Version 8.2 (20230707-131020) + +### Breaking changes +* Non-linear (iterative) Op Modes are no longer allowed to manipulate actuators in their `stop()` method. Attempts to do so will be ignored and logged. + * When an Op Mode attempts to illegally manipulate an actuator, the Robot Controller will print a log message + including the text `CANCELLED_FOR_SAFETY`. + * Additionally, LinearOpModes are no longer able to regain the ability to manipulate actuators by removing their + thread's interrupt or using another thread. +* Removes support for Android version 6.0 (Marshmallow). The minSdkVersion is now 24. +* Increases the Robocol version. + * This means an 8.2 or later Robot Controller or Driver Station will not be able to communicate with an 8.1 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. +* FTC_FieldCoordinateSystemDefinition.pdf has been moved. It is still in the git history, but has been removed from the git snapshot corresponding with the 8.2 tag. The official version now lives at [Field Coordinate System](https://ftc-docs.firstinspires.org/field-coordinate-system). +* `LynxUsbDevice.addConfiguredModule()` and `LynxUsbDevice.getConfiguredModule()` have been replaced with `LynxUsbDevice.getOrAddModule()`. + +### New features +* Adds new `VisionPortal` API for computer vision + * **This API may be subject to change for final kickoff release!** + * Several new samples added. + * Adds support for detecting AprilTags. + * `VisionPortal` is the new entry point for both AprilTag and TFOD processing. + * Vuforia will be removed in a future release. + * Updated TensorFlow dependencies. + * Added support for webcam camera controls to blocks. + * Previous blocks for Vuforia and TensorFlow Object Detection are obsolete. +* Related documentation for associated technologies can be found at + * [AprilTag Introduction](https://ftc-docs.firstinspires.org/apriltag-intro) + * [AprilTag SDK Guide](https://ftc-docs.firstinspires.org/apriltag-sdk) + * [AprilTag Detection Values](https://ftc-docs.firstinspires.org/apriltag-detection-values) + * [AprilTag Test Images](https://ftc-docs.firstinspires.org/apriltag-test-images) + * [Camera Calibration](https://ftc-docs.firstinspires.org/camera-calibration) +* Adds Driver Station support for Logitech Dual Action and Sony PS5 DualSense gamepads. + * This **does not** include support for the Sony PS5 DualSense Edge gamepad. + * Always refer to Game Manual 1 to determine gamepad legality in competition. +* Adds support for MJPEG payload streaming to UVC driver (external JPEG decompression routine required for use). +* Shows a hint on the Driver Station UI about how to bind a gamepad when buttons are pressed or the sticks are moved on an unbound gamepad. +* Adds option for fullscreening "Camera Stream" on Driver Station. +* OnBotJava source code is automatically saved as a ZIP file on every build with a rolling window of the last 30 builds kept; allows recovering source code from previous builds if code is accidentally deleted or corrupted. +* Adds support for changing the addresses of Expansion Hubs that are not connected directly via USB. + * The Expansion Hub Address Change screen now has an Apply button that changes the addresses without leaving the screen. + * Addresses that are assigned to other hubs connected to the same USB connection or Control Hub are no longer able to be selected. +* Increases maximum size of Blocks inline comments to 100 characters +* Saves position of open Blocks comment balloons +* Adds new AprilTag Driving samples: RobotDriveToAprilTagTank & RobotDriveToAprilTagOmni +* Adds Sample to illustrate optimizing camera exposure for AprilTags: ConceptAprilTagOptimizeExposure + +### Bug Fixes +* Corrects inspection screen to report app version using the SDK version defined in the libraries instead of the version specified in `AndroidManifest.xml`. This corrects the case where the app could show matching versions numbers to the user but still state that the versions did not match. + * If the version specified in `AndroidManifest.xml` does not match the SDK version, an SDK version entry will be displayed on the Manage webpage. +* Fixes no error being displayed when saving a configuration file with duplicate names from the Driver Station. +* Fixes a deadlock in the UVC driver which manifested in https://github.com/OpenFTC/EasyOpenCV/issues/57. +* Fixes a deadlock in the UVC driver that could occur when hot-plugging cameras. +* Fixes UVC driver compatibility with Arducam OV9281 global shutter camera. +* Fixes Emergency Stop condition when an OnBotJava build with duplicate Op Mode names occurs. +* Fixes known causes of "Attempted use of a closed LynxModule instance" logspam. +* Fixes the visual identification LED pattern when configuring Expansion Hubs connected via RS-485. + ## Version 8.1.1 (20221201-150726) This is a bug fix only release to address the following four issues. -* [Issue #495](https://github.com/FIRST-Tech-Challenge/FtcRobotController/issues/495) - Can't create new blocks opmodes. -* [Issue #492](https://github.com/FIRST-Tech-Challenge/FtcRobotController/issues/492) - Remove the final modifier from the OpMode's Telemetry object. +* [Issue #492](https://github.com/FIRST-Tech-Challenge/FtcRobotController/issues/492) - Can't create new blocks opmodes. +* [Issue #495](https://github.com/FIRST-Tech-Challenge/FtcRobotController/issues/495) - Remove the final modifier from the OpMode's Telemetry object. * [Issue #500](https://github.com/FIRST-Tech-Challenge/FtcRobotController/issues/500) - Some devices cannot be configured when the Driver Station app has been updated to 8.1 * Updating either the Robot Controller app or the Driver Station app to 8.1.1 or later will fix this issue. * The Modern Robotics touch sensor was configurable as a Digital Device. It can only be used as an Analog Device. diff --git a/build.common.gradle b/build.common.gradle index 0c19292..1eee6fd 100644 --- a/build.common.gradle +++ b/build.common.gradle @@ -54,7 +54,7 @@ android { defaultConfig { signingConfig signingConfigs.debug applicationId 'com.qualcomm.ftcrobotcontroller' - minSdkVersion 23 + minSdkVersion 24 //noinspection ExpiredTargetSdkVersion targetSdkVersion 28 @@ -122,8 +122,5 @@ android { } repositories { - flatDir { - dirs rootProject.file('libs') - } } diff --git a/build.dependencies.gradle b/build.dependencies.gradle index a108f41..82e0708 100644 --- a/build.dependencies.gradle +++ b/build.dependencies.gradle @@ -1,22 +1,21 @@ repositories { mavenCentral() google() // Needed for androidx - flatDir { - dirs rootProject.file('libs') - } } dependencies { - implementation 'org.firstinspires.ftc:Inspection:8.1.1' - implementation 'org.firstinspires.ftc:Blocks:8.1.1' - implementation 'org.firstinspires.ftc:Tfod:8.1.1' - implementation 'org.firstinspires.ftc:RobotCore:8.1.1' - implementation 'org.firstinspires.ftc:RobotServer:8.1.1' - implementation 'org.firstinspires.ftc:OnBotJava:8.1.1' - implementation 'org.firstinspires.ftc:Hardware:8.1.1' - implementation 'org.firstinspires.ftc:FtcCommon:8.1.1' - implementation 'org.tensorflow:tensorflow-lite-task-vision:0.2.0' + implementation 'org.firstinspires.ftc:Inspection:8.2.0' + implementation 'org.firstinspires.ftc:Blocks:8.2.0' + implementation 'org.firstinspires.ftc:Tfod:8.2.0' + implementation 'org.firstinspires.ftc:RobotCore:8.2.0' + implementation 'org.firstinspires.ftc:RobotServer:8.2.0' + implementation 'org.firstinspires.ftc:OnBotJava:8.2.0' + implementation 'org.firstinspires.ftc:Hardware:8.2.0' + implementation 'org.firstinspires.ftc:FtcCommon:8.2.0' + implementation 'org.tensorflow:tensorflow-lite-task-vision:0.4.3' + runtimeOnly 'org.tensorflow:tensorflow-lite:2.12.0' implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'org.firstinspires.ftc:gameAssets-PowerPlay:1.0.0' + implementation 'org.firstinspires.ftc:Vision:8.2.0' } diff --git a/build.gradle b/build.gradle index 2ce4e62..8969a41 100644 --- a/build.gradle +++ b/build.gradle @@ -10,6 +10,7 @@ buildscript { google() } dependencies { + // Note for FTC Teams: Do not modify this yourself. classpath 'com.android.tools.build:gradle:7.2.0' } } @@ -25,8 +26,4 @@ allprojects { repositories { mavenCentral() - - flatDir { - dirs '../libs' - } }