Advertisement
Guest User

auto

a guest
Feb 28th, 2020
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.86 KB | None | 0 0
  1. package org.firstinspires.ftc.teamcode;
  2.  
  3. import com.acmerobotics.dashboard.FtcDashboard;
  4. import com.acmerobotics.dashboard.config.Config;
  5. import com.acmerobotics.roadrunner.geometry.Pose2d;
  6. import com.acmerobotics.roadrunner.geometry.Vector2d;
  7. import com.acmerobotics.roadrunner.path.LineSegment;
  8. import com.acmerobotics.roadrunner.path.heading.ConstantInterpolator;
  9. import com.acmerobotics.roadrunner.trajectory.Trajectory;
  10. import com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder;
  11. import com.acmerobotics.roadrunner.trajectory.TrajectoryLoader;
  12. import com.disnodeteam.dogecv.detectors.skystone.SkystoneDetector;
  13. import com.disnodeteam.dogecv.filters.GrayscaleFilter;
  14. import com.disnodeteam.dogecv.filters.LeviColorFilter;
  15. import com.qualcomm.robotcore.eventloop.opmode.Autonomous;
  16. import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
  17. import com.qualcomm.robotcore.util.ElapsedTime;
  18.  
  19. import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName;
  20. import org.firstinspires.ftc.teamcode.drive.mecanum.SampleMecanumDriveREV;
  21. import org.firstinspires.ftc.teamcode.drive.mecanum.SampleMecanumDriveREVOptimized;
  22. import org.firstinspires.ftc.teamcode.util.AssetsTrajectoryLoader;
  23. import org.openftc.easyopencv.OpenCvCameraRotation;
  24. import org.openftc.easyopencv.OpenCvWebcam;
  25.  
  26. import java.io.File;
  27. import java.io.IOException;
  28.  
  29. import static org.firstinspires.ftc.teamcode.OpenCvShit.yellowt;
  30.  
  31. /*
  32.  * This is a simple routine to test translational drive capabilities.
  33.  */
  34. @Config
  35. @Autonomous(name ="RR si OpenCv",group = "drive")
  36.  
  37. public class RR_OpenCv extends LinearOpMode {
  38.     public static double DISTANCE = 30;
  39.     private OpenCvWebcam webcam;
  40.     private SkystoneDetector skystoneDetector;
  41.     public static double yellow = 100;
  42.     public static int gray = 40;
  43.     public static String position = null;
  44.     public ElapsedTime runtime = new ElapsedTime();
  45.  
  46.  
  47.  
  48.     @Override
  49.     public void runOpMode() throws InterruptedException {
  50.         SampleMecanumDriveREVOptimized robot = new SampleMecanumDriveREVOptimized(hardwareMap);
  51.         webcam = new OpenCvWebcam(hardwareMap.get(WebcamName.class,"camera porno"));
  52.         webcam.openCameraDevice();
  53.         skystoneDetector = new SkystoneDetector();
  54.         skystoneDetector.blackFilter = new GrayscaleFilter(0, gray);
  55.         skystoneDetector.yellowFilter = new LeviColorFilter(LeviColorFilter.ColorPreset.YELLOW, yellow);
  56.         webcam.setPipeline(skystoneDetector);
  57.         webcam.startStreaming(640,480, OpenCvCameraRotation.UPRIGHT);
  58.         FtcDashboard ftcDashboard = FtcDashboard.getInstance();
  59.         ftcDashboard.startCameraStream(webcam, 30);
  60.  
  61.  
  62.         waitForStart();
  63.  
  64.  
  65.         if (isStopRequested()) return;
  66.         robot.led.enableLed(false);
  67.         position = detecteaza(robot);
  68.         runtime.reset();
  69.         while (runtime.seconds() < 1.5){
  70.             telemetry.addData("pozitie: ", position);
  71.             telemetry.update();
  72.         }
  73.         if(position == "dreapta") tr_dr(robot);
  74.         else if(position == "mijloc") tr_mij(robot);
  75.         else tr_stg(robot);
  76.  
  77.     }
  78.  
  79.     //cod detectare skystone
  80.  
  81.     public String detecteaza(SampleMecanumDriveREVOptimized robot){
  82.         double x_position =0 , y_position= 0;
  83.         sleep(200);
  84.  
  85.         runtime.reset();
  86.         while (runtime.seconds() < 2.0){
  87.             x_position = skystoneDetector.getScreenPosition().x;
  88.             y_position = skystoneDetector.getScreenPosition().y;
  89.         }
  90.  
  91.         if( x_position < 330){
  92.             return "stanga";
  93.         }else if( x_position > 380 && x_position< 500){
  94.             return "mijloc";
  95.         }else return "dreapta";
  96.     }
  97.  
  98.     public void tr_dr(SampleMecanumDriveREVOptimized robot){
  99.  
  100.     }
  101.     public void tr_mij(SampleMecanumDriveREVOptimized robot){
  102.  
  103.     }
  104.     public void tr_stg(SampleMecanumDriveREVOptimized robot){
  105.         Trajectory traj0 = robot.trajectoryBuilder()
  106.                 .back(7.5)
  107.                 .strafeLeft(55)
  108.                 .build();
  109.         Trajectory traj1 = robot.trajectoryBuilder()
  110.                 .reverse()
  111.                 .strafeRight(6.5)
  112.                 .reverse()
  113.                 .back(135)
  114.                 .strafeLeft(6)
  115.                 .build();
  116.         Trajectory traj2 = robot.trajectoryBuilder()
  117.                 .strafeRight(2.5)
  118.                 .forward(200)
  119.                 .build();
  120.  
  121.         robot.brat.setPosition(0);
  122.         robot.claw.setPosition(0.5);//in sus
  123.         sleep(500);
  124.         robot.followTrajectorySync(traj0);
  125.         robot.claw.setPosition(0);
  126.         sleep(650);
  127.         robot.brat.setPosition(0.5);
  128.         sleep(400);
  129.         robot.followTrajectorySync(traj1);
  130.         robot.brat.setPosition(0.05);
  131.         sleep(200);
  132.         robot.claw.setPosition(0.6);
  133.         robot.brat.setPosition(0.5);
  134.         sleep(600);
  135.         robot.followTrajectorySync(traj2);
  136.  
  137.     }
  138.  
  139.  
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement