Код делится на следующие разделы:
- /func - Раздел с вспомогательными функциями
- / - Классы, которые используются только для хранения в них статичных переменных
- /classes - Классы с вспомогательными функциями
- /superclasses - Классы-родители для классов, с вспомогательными функциями
- /modules - Раздел с классами, относящиеся к роботу
- / - Классы, реализующие модули с робота
- /superclasses - Три класса: абстрактный родитель для всех классов "модулей" (Module.java), класс, хранящий базовые переменные (RobotPack.java) и класс, создающий все модули в себе (RobotPortal.java)
- /camera - Классы, относящиеся к камерам и компьютерному зрению
- /basic - Классы, реализующие камеры как модули с робота
- /pipelines - Классы, наследующие OpenCvPipeline
- /concepts - Реализация методов, связанных с компьютерным зрением
- /scenes - Режимы OpMode
- /superclasses - Абстрактные классы, собирающие все необходимое для режимов OpMode: создает RobotPortal.java и все неоходимые классы из func
- /auto - Автономы
- /field - Итоговые
- /test - Отладочные
- /tele - ТелеОпы
- /field - Итоговые
- /test - Отладочные
/
Alliance.java - Класс, который используется как enum для цветов альянса, т. е. имеет в себе две статичгные переменные: BLUE (=0) и RED (=1)
/classes
DrivePD.java - Класс, для езды по экодерам по двум осям
DrivePD_1ENC_M.java - Класс, для езды по энкодерам по одной оси
DrivePD_OLD.java - Класс, для езды по энкодерам по двум осям с стабилизацией поворота
DriverHelper.java - Класс, содержащий измененные классы модулей, с облегченным управлением
LiftPD.java - Класс, с PD-регулятором для лифта
LiftPID.java - Класс, с PID-регулятором для лифта
RotatePD.java - Класс, с PD-регулятором поворота по гироскопу
VerySync.java - Класс, с синхронным PD-регулятором, для поворота в телеопе
/superclasses
PD.java - Класс для быстрого развертывания PD-регулятора, создается в каждом PD-регуляторе, описанном выше PID.java - Класс для быстрого развертывания PID-регулятора, создается в каждом PID-регуляторе, описанном выше
/
Ascent.java - Класс модуля робота для модуля восхождения
Grab.java - Класс модуля робота для модуля захвата
IMU.java - Класс модуля робота для датчика гироскопа встроенного в Control Hub старых ревизий (BNO055IMU)
IMUv2.java - Класс модуля робота для датчика гироскопа встроенного в Contorl Hub новых ревизий (BHI260IMU)
Lift.java - Класс модуля робота для модуля подъема
RGBps.java - Класс модуля робота для создания радужной подсветки на геймпаде PlayStation Wheelbase.java - Класс модуля робота для модуля колесной базы
/superclasses
Module.java - Абстрактный класс для модулей робота, сохраняет в себе RobotPack.java и заставляет модули реализовывать метод initModule()
RobotPack.java - Класс, который хранит в себе базовые переменные: LinearOpMode, HardWareMap, Telemetry и Gamepad'ы
RobotPortal.java - Класс, который создает и инициализирует классы модулей робота
/camera
/basic
CameraOut.java - Класс модуля робота для камеры, которая используется для считывания AprilTag
/pipelines
Pipeline.java - Наследник OpenCvPipeline, использовался для тестирования
AprilTagDetectionPipeline.java - наследник OpenCvPipeline, обнаруживает AprilTag, рисует прямоугольник, и сохраняет результат обнаружения в публичную переменную. Использует детектор от openftc
/concepts
CamLocalization.java - Класс с реализацией локализации по камере
CalibrationForCamLocalization.java - In development...
/superclasses
AutonomousPack.java - Абстрактный класс-наследник LinearOpMode, создает RobotPortal.java, DrivePD.java и RotatePD.java, имеет в себе классическую реализацию автонома: вызывает метод doSetup() до начала автонома и абстрактный метод doActions() после начала автонома
TeleOpPack.java - Абстрактный класс-наследник LinearOpMode, создает RobotPortal.java, имеет в себе классическую реализацию телеопа: вызывает метод doSetup() до начала телеопа, единожды вызывает метод doSetupMovings() после начала телеопа, и до конца телеопа вызывает абстрактный метод doActions()
/auto
/field
parkautobluetimer.java - Автоном для парковки в зону наблюдения по таймеру
parkautoredtimer.java - Автоном для езды налево по таймеру
parkprobeblueencoder.java - In development...
parkunitimerv2.java - Автоном для парковки в зону наблюдения по таймеру
/test
CameraTest123.java - Автоном для отладки компьютерного зрения
testdrive123.java - Автоном для отладки езды в автономе
testdrive321.java - Автоном для отладки езды в автономе
testrtate123.java - Автоном для отладки поворота
/tele
/field
teleop.java - Обычный телеоп
teleopwithdh.java - Телеоп с DriverHelper.java
/test
liftsetup.java - Телеоп для отладки регулятора лифта
testdrive2.java - Телеоп для меканум колес
testteleop123.java - Телеоп для отладки энкодеров колес
verytest.java - Телеоп для отладки чего-либо
- Установить последнюю версию FTC контроллера
- Закинуть этот проект в
/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/ - Открыть
build.dependencies.gradleи добавить вrepositories { }строчку:
maven { url = 'https://maven.brott.dev/' }- В этом же файле добавить в
dependencies { }строчку:
implementation 'com.acmerobotics.dashboard:dashboard:0.4.16'- Прожать
Sync Project with Gradle FilesиMake Selected Modules - Гойда!