УВЕДОМЛЕНИЕ
Этот репозиторий содержит общедоступный SDK FTC для сезона соревнований INTO THE DEEP (2024–2025 гг.).
Добро пожаловать!
Этот репозиторий GitHub содержит исходный код, который используется для создания приложения Android для управления роботом, участвующим в соревнованиях FIRST Tech Challenge. Чтобы использовать этот SDK, загрузите/клонируйте весь проект на свой локальный компьютер.
Требования
Чтобы использовать этот проект Android Studio, вам понадобится Android Studio 2021.2 (кодовое имя Chipmunk) или более поздняя версия.
Чтобы запрограммировать своего робота в Blocks или OnBot Java, вам не нужна Android Studio.
Начиная
Если вы новичок в робототехнике или впервые участвуете в FIRST Tech Challenge, вам следует рассмотреть возможность просмотра Учебного пособия FTC Blocks, чтобы ознакомиться с тем, как использовать систему управления:
Интернет-руководство по блокированию FTC
Даже если вы опытный Java-программист, полезно начать с руководства по блокам FTC, а затем перейти к Java-инструменту OnBot или к Android Studio.
Загрузка проекта
Если вы программист Android Studio, есть несколько способов загрузить этот репозиторий. Обратите внимание: если вы используете Java-инструмент Blocks или OnBot для программирования своего робота, вам не нужно загружать этот репозиторий.
- Если вы являетесь пользователем git, вы можете клонировать самую последнюю версию репозитория:
git-клон https://github.com/FIRST-Tech-Challenge/FtcRobotController.git
Или, если хотите, вы можете использовать кнопку «Загрузить Zip», доступную на главной странице репозитория. Загрузка проекта в виде файла .ZIP позволит сохранить управляемый размер загружаемого файла.
Вы также можете загрузить папку проекта (в виде архивного файла .zip или .tar.gz) из подраздела «Загрузки» на странице «Релизы» для этого репозитория.
Страница «Релизы» также содержит готовые APK-файлы.
После того, как вы загрузили и распаковали (при необходимости) папку, вы можете использовать Android Studio для ее импорта («Импортировать проект (Eclipse ADT, Gradle и т. д.)»).
Получение помощи
Пользовательская документация и руководства
FIRST поддерживает онлайн-документацию с информацией и учебными пособиями по использованию программного обеспечения FIRST Tech Challenge и системы управления роботами. Вы можете получить доступ к этой документации, используя следующую ссылку:
Документация FIRST Tech Challenge
Обратите внимание, что онлайн-документация — это «вечнозеленый» документ, который постоянно обновляется и редактируется. Он содержит самую актуальную информацию о программном обеспечении и системе управления FIRST Tech Challenge.
Справочный материал Javadoc
Справочная документация Javadoc для FTC SDK теперь доступна в Интернете. Нажмите на следующую ссылку, чтобы просмотреть документацию FTC SDK Javadoc в виде действующего веб-сайта:
Документация FTC Javadoc
Интернет-форум пользователей
По техническим вопросам, касающимся системы управления или FTC SDK, посетите сайт сообщества FIRST Tech Challenge:
Сообщество FIRST Tech Challenge
Примеры режимов работы
Этот проект содержит большой выбор примеров OpModes (примеров кода роботов), которые можно вырезать и вставить в папку /teamcode для использования в исходном виде или изменить в соответствии с потребностями вашей команды.
Папка образцов: /FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples
Файл readme.md, расположенный в папке /TeamCode/src/main/java/org/firstinspires/ftc/teamcode, содержит объяснение примера соглашения об именовании и инструкции о том, как скопировать их в пространство вашего собственного проекта.
Информация о выпуске
Версия 10.1 (20240919-122750)
Улучшения
- Добавляет новые
VisionProcessor
на базе OpenCV (которые можно подключить к VisionPortal на языке Java или Blocks), чтобы помочь командам реализовать обработку цвета с помощью компьютерного зрения в игре INTO THE DEEP.-
ColorBlobLocatorProcessor
реализует обнаружение цветных «капель» OpenCV. Новый пример программы ConceptVisionColorLocator
демонстрирует ее использование.- Предлагается выбор между заранее заданными цветовыми диапазонами или созданием собственного в цветовом пространстве RGB, HSV или YCrCb.
- Предусмотрена возможность ограничить обнаружение определенной областью интереса на экране.
- Предусмотрены функции для применения морфинга эрозии/дилатации к пороговой маске.
- Предусмотрены функции сортировки и фильтрации возвращаемых данных.
-
PredominantColorProcessor
позволяет использовать область камеры в качестве «датчика цвета дальнего действия» для определения преобладающего цвета этой области. Новый пример программы ConceptVisionColorSensor
демонстрирует ее использование.- Определенный преобладающий цвет выбирается из дискретного набора цветовых «образцов», аналогично датчику цвета MINDSTORMS NXT.
- Документацию по этой функции обработки цвета можно найти здесь: https://ftc-docs.firstinspires.org/color-processing.
- Добавлены примеры программ блоков для датчиков цвета: RobotAutoDriveToLine и SensorColor.
- Обновлена функция самопроверки, позволяющая идентифицировать несовпадающие версии программного обеспечения RC/DS как «предостережение», а не как «сбой».
Исправления ошибок
- Исправляет регрессию преобразования AngularVelocity.
Версия 10.0 (20240828-111152)
Критические изменения
- Классы Java и блоки для обнаружения объектов TensorFlow были удалены.
-
AngularVelocity.unit
, который имел тип AngleUnit
был переименован в AngularVelocity.angleUnit
типа UnnormalizedAngleUnit
Улучшения
- Добавлен образец цифрового индикатора REV - ConceptRevLED
- Добавлена поддержка светодиодной палочки Sparkfun QWIIC.
- Для прямого подключения вам понадобится этот кабель
- Добавляет ConceptLEDStick OpMode
- Добавляет блоки для цветов: черного, синего, голубого, темно-серого, серого, зеленого, светло-серого, пурпурного, красного, белого и желтого.
- Добавляет блок «оценить, но игнорировать результат», который выполняет подключенный блок и игнорирует результат. Позволяет вызвать функцию и игнорировать возвращаемое значение.
- Добавлен драйвер I2C для сонара-дальномера Maxbotix Maxsonar I2CXL.
- Добавляет блоки для setPwmEnable, setPwmDisable и isPwmEnabled для сервоприводов и сервоприводов CR.
- В редакторе блоков: n в поле комментария аннотации ExportToBlocks отображается как разрыв строки.
- В телеметрии появился новый метод setNumDecimalPlaces.
- Телеметрия теперь форматирует двойные и плавающие значения (не внутри объектов, а отдельно).
- Добавляет поддержку Limelight 3A.
- Добавляет начальную поддержку REV Servo Hub.
- Контроллер робота и станция водителя необходимо обновить до версии 10.0, чтобы сервоконцентраторы можно было настроить как сервоконцентраторы. Если приложение на любом из устройств устарело, сервоконцентратор будет отображаться как концентратор расширения, и некоторые функции не будут работать должным образом. Вам следует подождать с созданием конфигурации, включающей сервоконцентратор, пока приложения Driver Station и Robot Controller не будут обновлены до версии 10.0.
- Обновление прошивки сервоконцентратора и изменение его адреса в настоящее время можно выполнить только с помощью аппаратного клиента REV.
- Добавлена поддержка 9-осевого IMU REV (REV-31-3332).
- 9-осевой IMU REV поддерживается только универсальным интерфейсом IMU.
- Добавляет Java-класс
Rev9AxisImuOrientationOnRobot
. - Если вы мысленно замените порт I2C этого IMU портами USB Control Hub,
RevHubOrientationOnRobot
также будет совместим с этим датчиком. - Добавляет блоки для Rev9AxisImuOrientationOnRobot, включая RevHubImuOrientationOnRobot.xyzOrientation и RevHubImuOrientationOnRobot.zyxOrientation.
- Добавляет образцы блоков SensorRev9AxisIMUOrthogonal и SensorRev9AxisIMUNonOrthogonal.
- Улучшает поддержку блоков для RevHubImuOrientationOnRobot.
- Добавляет блоки для RevHubImuOrientationOnRobot.xyzOrientation и RevHubImuOrientationOnRobot.zyxOrientation.
- Добавляет образцы блоков SensorHubIMUOrthogonal (заменяет SensorIMU) и SensorHubIMUNonOrthogonal.
- Обновляет версии EasyOpenCV, AprilTag, OpenCV и
libjpeg-turbo
- Добавляет блоки для максимума и минимума, которые принимают два числа.
- Добавляет блоки OpModes ConceptRevSPARKMini, RobotAutoDriveByEncoder, RobotAutoDriveByGyro, RobotAutoDriveByTime, RobotAutoDriveToAprilTagOmni и RobotAutoDriveToAprilTagTank.
- Два режима работы с одинаковым именем теперь автоматически переименовываются с указанием имени, за которым следует «-» и имени класса, что позволяет им обоим находиться на устройстве.
- Показывает имя активной конфигурации на странице «Управление» консоли контроллера робота.
- Обновлена библиотека AprilTag для INTO THE DEEP. Примечательно, что
getCurrentGameTagLibrary()
теперь возвращает теги INTO THE DEEP. - Добавляет блоки для Telemetry.setMsTransmissionInterval и Telemetry.getMsTransmissionInterval.
- Добавляет образец блоков SensorOctoQuad.
Исправления ошибок
- Исправлена ошибка, из-за которой блоки RevBlinkinLedDriver находились в разделе «Исполнители» на панели инструментов редактора блоков. Теперь они являются «Другими устройствами».
- Устранена ошибка, из-за которой
Exception
, возникшие в пользовательском коде после того, как станция водителя запросила остановку, автоматически обрабатывались. - Исправлена ошибка, из-за которой, если вы запрашивали
AngularVelocity
в единицах измерения, отличных от тех, в которых устройство сообщало об этом, оно нормализовало ее между -PI и PI для радианов и -180 и 180 для градусов.
Версия 9.2 (20240701-085519)
Важные примечания
- Классы Java и блоки для обнаружения объектов TensorFlow устарели и будут удалены в версии 10.0.
- Образцы, использующие обнаружение объектов TensorFlow, были удалены.
Улучшения
- Добавляет пояснительный текст к невыполненным элементам проверки. Чтобы просмотреть поясняющий текст, коснитесь красного значка предупреждения о невыполненном элементе.
- В редакторе блоков: добавлен новый тип блока набора переменных, который устанавливает переменную, а также возвращает новое значение.
- Изменяет поведение элементов управления камерой для SwitchableCamera. Теперь каждый метод (например, getExposure, getMinExposure, getMaxExposure, setExposure для ExposureControl) действует на активную в данный момент камеру.
- Добавлена поддержка геймпада, совместимого с REV USB PS4 (REV-31-2983).
- Добавляет ConceptAprilTagMultiPortal OpMode
- Добавлена поддержка квадратурного энкодера OctoQuad и модуля интерфейса ширины импульса.
- Добавляет аннотацию ExportAprilTagLibraryToBlocks, указывающую, что статический метод, возвращающий AprilTagLibrary, экспортируется в среду программирования Blocks. Соответствующий блок появится в панели инструментов «Блоки» вместе со встроенными библиотеками тегов.
- Добавляет блоки OpMode ConceptAprilTagOptimizeExposure.
- Добавлена поддержка датчика одометрии оптического отслеживания SparkFun.
Исправления ошибок
- Исправления № 942, из-за которых VisionPortal.close() мог вызвать ошибку IndexOutOfBoundsError.
- Исправлена ошибка в редакторе блоков, из-за которой свернутые функциональные блоки отображали предупреждение «Свернутые блоки содержат предупреждения». когда режим Blocks OpMode снова открывается.
- Исправлена ошибка, из-за которой редактор блоков не предупреждал вас о наличии несохраненных изменений при попытке выйти. Эта ошибка возникла из-за изменения поведения в Chrome 119.
- Проблема № 764. Функция Get Gain Control возвращает нулевой указатель для переключаемой камеры.
- Исправлена ошибка, из-за которой правильная мертвая зона для некоторых геймпадов не применялась при включении расширенных функций геймпада.
Версия 9.1 (20240215-115542)
Улучшения
- Устраняет проблему с блоками: если пользователь закрывает всплывающее окно с предупреждением о блоке, оно все равно будет закрыто при следующем открытии проекта в редакторе блоков.
- В редакторе блоков предупреждение об отсутствующих аппаратных устройствах не отображается, если все блоки, использующие отсутствующие аппаратные устройства, отключены.
- Добавляет блоки для поддержки сравнения значений свойств CRServo.Direction, DCMotor.Direction, DCMotor.Mode, DCMotor.ZeroPowerBehavior, DigitalChannel.Mode, GyroSensor.HeadingMode, IrSeekerSensor.Mode и Servo.Direction в соответствующий блок перечисления.
- Улучшает автоматический импорт OnBotJava для правильного импорта классов при использовании в определенных ситуациях.
- Улучшает автозаполнение OnBotJava, чтобы в большинстве случаев обеспечить лучшие варианты завершения.
- Это устраняет проблему, из-за которой автозаполнение завершалось неудачно, если был определен метод с двумя или более формальными параметрами.
- В OnBotJava добавлена поддержка свертывания кода для развертывания и свертывания разделов кода.
- В OnBotJava заголовок авторских прав теперь автоматически сворачивается при загрузке новых файлов.
- Для всех примеров Blocks OpMode вступительные комментарии были перенесены во всплывающее окно комментариев RunOpMode.
- Команда «Очистить блоки» в редакторе блоков теперь размещает функциональные блоки так, чтобы их всплывающие подсказки с комментариями не перекрывали другие функциональные блоки.
- Добавлен пример блоков OpMode SensorTouch.
- Добавлен пример Java OpMode SensorDigitalTouch.
- Несколько улучшений VisionPortal
- Добавляет возможность контролировать, запускается ли поток автоматически после вызова
.build()
в VisionPortal Builder. - Добавляет возможность контролировать, отображается ли наложение статистики обработки зрения или нет.
- VisionPortals теперь реализует интерфейс
CameraStreamSource
, позволяющий пользователям нескольких порталов выбирать, какой портал направляется к DS в INIT, путем вызова CameraStreamServer.getInstance().setSource(visionPortal). Можно выбрать с помощью геймпада между сеансами Camera Stream. - Добавьте опцию в
AprilTagProcessor
для подавления предупреждений о калибровке. - Улучшены предупреждения о калибровке камеры.
- Если калибровка масштабирована, будет указано разрешение, с которого она была масштабирована.
- Если существуют калибровки с неправильным соотношением сторон, будут указаны откалиброванные разрешения.
- Устраняет состояние гонки, которое приводило к сбою приложения при вызове
stopStreaming()
за которым сразу же следовал close()
на VisionPortal. - Исправляет IllegalStateException при вызове
stopStreaming()
сразу после создания VisionPortal. - В новые методы Java добавлены аналоги блоков FTC:
- VisionPortal.Builder.setAutoStartStreamOnBuild
- VisionPortal.Builder.setShowStatsOverlay
- AprilTagProcessor.Builder.setSuppressCalibrationWarnings
- CameraStreamServer.setSource
Исправления ошибок
- Устраняет проблему, из-за которой OnBotJava не применяет настройки размера шрифта к редактору.
- Обновляет зависимость EasyOpenCV до версии 1.7.1.
- Исправлена невозможность использования EasyOpenCV CameraFactory в OnBotJava.
- Исправляет полный сбой приложения RC, когда пользовательский конвейер выдает исключение.
- Исправлен весь сбой приложения RC, когда аннотатор пользовательского холста выдает исключение.
- Используйте современное отображение трассировки стека при обработке пользовательских исключений вместо устаревшего телеметрического сообщения ESTOP.
Версия 9.0.1 (20230929-083754)
Улучшения
- Обновляет образцы AprilTag, включая децимацию и дополнительные комментарии. Также исправляет вводящие в заблуждение предупреждения об идентификаторе тега.
- Увеличен максимальный размер встроенных комментариев блоков до 140 символов.
- Добавляет образец блоков BasicOmniOpMode.
- Обновлена библиотека CENTERSTAGE, кватернионы ориентации AprilTag.
- Обновлен пример Java ConceptTensorFlowObjectDetection.java, включивший недостающие элементы, необходимые для поддержки пользовательских моделей.
Исправления ошибок
- Устранена проблема, из-за которой после 1 октября Driver Station сообщала об устаревшей версии 9.0 и предлагала пользователю выполнить обновление.
Версия 9.0 (20230830-154348)
Критические изменения
- Удаляет Вуфорию
- Поля в объектах
AprilTagDetection
и AprilTagPose(ftc/raw)
теперь являются final
- Метод компоновщика VisionPortal
setCameraMonitorViewId()
был переименован в setLiveViewContainerId()
а enableCameraMonitoring()
переименован в enableLiveView()
Улучшения
- Добавляет поддержку датчика зрения DFRobot HuskyLens.
- Команды блоков теперь могут выполнять калибровку веб-камеры.
- Добавлен блок для System.currentTimeMillis (в разделе «Утилиты/Время»).
- Добавлен блок для VisionPortal.saveNextFrameRaw (в разделе Vision/VisionPortal).
- Добавлен новый образец OpMode блоков под названием UtilityCameraFrameCapture.
- Образец RobotDriveByGyro был обновлен для использования нового универсального интерфейса IMU. Теперь он поддерживает оба типа IMU.
- Из панели инструментов редактора блоков удалены некоторые подверженные ошибкам блоки ElapsedTime. Это не критическое изменение: старые OpModes блоков, которые используют эти блоки, по-прежнему будут работать как в редакторе блоков, так и во время выполнения.
- Стандартизирует форму «OpMode» для термина «OpMode».
- Предпочтительным способом обозначения OpMode, которые конкретно расширяют
LinearOpMode
(включая блочные OpMode), является «линейный OpMode». - Предпочтительным способом ссылки на OpModes, которые непосредственно расширяют
OpMode
является «итеративный OpMode».
- Переработаны комментарии Javadoc
OpMode
и LinearOpMode
, чтобы их было легче читать и они содержали больше деталей. - Вносит незначительные улучшения в примеры Java.
- Комментарии Javadoc в примерах, которые могли плохо отображаться в Android Studio, были преобразованы в стандартные многострочные комментарии.
- Улучшена согласованность между образцами.
- Образец SensorDigitalTouch был заменен новым образцом SensorTouch, который использует интерфейс
TouchSensor
вместо DigitalChannel
. - Образцы ConceptCompassCalibration, SensorMRCompass и SensorMRIRSeeker были удалены, поскольку они бесполезны для современных соревнований FTC.
Исправления ошибок
- Исправлена ошибка, из-за которой геймпады PlayStation нельзя было использовать в режиме Bluetooth. Bluetooth НЕ разрешен для соревнований, но может быть полезен для использования устройства DS во время зарядки или на информационно-просветительском мероприятии.
- Устранена ошибка, из-за которой значение даты изменения рабочего режима блоков могло измениться на 31 декабря 1969 года, если Control Hub перезагружается во время редактирования рабочего режима блоков.
- Исправлена функция автоматического предварительного выбора TeleOp (не работала в версии 8.2).
- Устраняет ошибку, из-за которой передача целого числа, например 123, в блок Telemetry.addData, который принимает число, отображается в телеметрии как 123,0.
- Устраняет проблемы автозаполнения OnBotJava:
- Автозаполнение неправильно предоставляло значения для текущего класса при автозаполнении локальной переменной.
- Автозаполнение
hardwareMap
неправильно включало бы записи лямбда-класса
- Исправлена ошибка, из-за которой OnBotJava не импортировал классы автоматически.
- Исправлена ошибка, из-за которой вкладки OnBotJava не закрывались при удалении их файла.
- Исправлено обновление представления проекта, которое не происходило при переименовании файла в OnBotJava.
- Исправлен пункт контекстного меню "Загрузить" для внешних библиотек в интерфейсе OnBotJava.
- Устранена проблема, из-за которой телеметрия Driver Station периодически зависала при установке моноширинного режима.
- Исправлено снижение производительности для некоторых операций REV Hub, которое было представлено в версии 8.2.
- Исправлена логика сравнения TagID в примерах DriveToTag.
Версия 8.2 (20230707-131020)
Критические изменения
- Нелинейным (итеративным) режимам эксплуатации больше не разрешается манипулировать исполнительными механизмами в методе
stop()
. Попытки сделать это будут игнорироваться и регистрироваться.- Когда OpMode пытается незаконно манипулировать приводом, контроллер робота распечатывает сообщение журнала, включающее текст
CANCELLED_FOR_SAFETY
. - Кроме того, LinearOpModes больше не могут восстановить способность манипулировать исполнительными механизмами, удалив прерывание своего потока или используя другой поток.
- Удалена поддержка Android версии 6.0 (Marshmallow). MinSdkVersion теперь равен 24.
- Увеличивает версию Робокола.
- Это означает, что контроллер робота или станция водителя версии 8.2 или более поздней версии не сможет взаимодействовать с станцией водителя или контроллером робота версии 8.1 или более ранней версии.
- Если вы забудете обновить оба приложения одновременно, появится сообщение об ошибке с указанием того, какое приложение старше и его следует обновить.
- FTC_FieldCoordinateSystemDefinition.pdf был перемещен. Он все еще находится в истории git, но был удален из снимка git, соответствующего тегу 8.2. Официальная версия теперь находится в системе координат поля.
-
LynxUsbDevice.addConfiguredModule()
и LynxUsbDevice.getConfiguredModule()
были заменены на LynxUsbDevice.getOrAddModule()
. - Старые блоки для обнаружения объектов Vuforia и TensorFlow устарели и были удалены из панели инструментов редактора блоков. Существующие блоки OpModes, содержащие старые блоки для обнаружения объектов Vuforia или TensorFlow, можно открыть в редакторе блоков, но запустить их не получится.
Новые возможности
- Добавляет новый API
VisionPortal
для компьютерного зрения.- Этот API может быть изменен в финальной версии!
- Добавлено несколько новых образцов.
- Добавляет поддержку обнаружения AprilTags.
-
VisionPortal
— это новая точка входа для обработки AprilTag и TFOD. - Vuforia будет удалена в будущем выпуске.
- Обновлены зависимости TensorFlow.
- В блоки добавлена поддержка элементов управления веб-камерой.
- На панели инструментов редактора блоков теперь есть категория «Видение», расположенная непосредственно над категорией «Утилиты».
- Соответствующую документацию по соответствующим технологиям можно найти по адресу
- АпрельТег Введение
- Руководство по AprilTag SDK
- Значения обнаружения AprilTag
- Тестовые изображения AprilTag
- Калибровка камеры
- Добавлена поддержка Driver Station для геймпадов Logitech Dual Action и Sony PS5 DualSense.
- Сюда не входит поддержка геймпада Sony PS5 DualSense Edge.
- Всегда обращайтесь к Руководству по игре 1, чтобы определить законность геймпада в соревнованиях.
- Добавляет поддержку потоковой передачи полезных данных MJPEG в драйвер UVC (для использования требуется внешняя процедура распаковки JPEG).
- Показывает в пользовательском интерфейсе Driver Station подсказку о том, как привязать геймпад при нажатии кнопок или перемещении джойстиков на несвязанном геймпаде.
- Добавляет возможность полноэкранного просмотра «Потока камеры» на Driver Station.
- Исходный код OnBotJava автоматически сохраняется в виде ZIP-файла при каждой сборке с сохранением скользящего окна последних 30 сборок; позволяет восстановить исходный код из предыдущих сборок, если код был случайно удален или поврежден.
- Добавляет поддержку изменения адресов концентраторов расширения, которые не подключены напрямую через USB.
- На экране «Изменение адреса концентратора расширения» теперь есть кнопка «Применить», позволяющая изменять адреса, не выходя из экрана.
- Адреса, назначенные другим концентраторам, подключенным к тому же USB-соединению или Control Hub, больше нельзя выбрать.
- Увеличен максимальный размер встроенных комментариев блоков до 100 символов.
- Сохраняет положение открытых блоков комментариев.
- Добавляет новые образцы AprilTag Driving: RobotDriveToAprilTagTank и RobotDriveToAprilTagOmni.
- Добавляет пример, иллюстрирующий оптимизацию экспозиции камеры для AprilTags: ConceptAprilTagOptimizeExposure.
Исправления ошибок
- Исправляет экран проверки, чтобы сообщать о версии приложения, используя версию SDK, определенную в библиотеках, вместо версии, указанной в
AndroidManifest.xml
. Это исправляет случай, когда приложение могло показывать пользователю совпадающие номера версий, но при этом сообщать, что версии не совпадают.- Если версия, указанная в
AndroidManifest.xml
не соответствует версии SDK, запись о версии SDK будет отображаться на веб-странице управления.
- Исправлено отсутствие отображения ошибок при сохранении файла конфигурации с повторяющимися именами из Driver Station.
- Устраняет взаимоблокировку в драйвере UVC, которая проявлялась в OpenFTC/EasyOpenCV#57.
- Устраняет взаимоблокировку в драйвере UVC, которая могла возникнуть при горячем подключении камер.
- Исправлена совместимость драйвера UVC с камерой с глобальным затвором Arducam OV9281.
- Исправляет состояние аварийной остановки при возникновении сборки OnBotJava с повторяющимися именами OpMode.
- Устраняет известные причины спама в журналах «Попытка использования закрытого экземпляра LynxModule».
- Исправлена индикация светодиодов визуальной идентификации при настройке концентраторов расширения, подключенных через RS-485.
Версия 8.1.1 (20221201-150726)
Это выпуск, предназначенный только для исправления ошибок и направленный на устранение следующих четырех проблем.
- Проблема № 492 — Невозможно создать новые режимы операций блоков.
- Проблема № 495. Удалите последний модификатор из объекта телеметрии OpMode.
- Проблема № 500. Некоторые устройства невозможно настроить, если приложение Driver Station обновлено до версии 8.1.
- Обновление приложения Robot Controller или Driver Station до версии 8.1.1 или более поздней версии устранит эту проблему.
- Сенсорный датчик Modern Robotics можно было настроить как цифровое устройство. Его можно использовать только как аналоговое устройство.
Версия 8.1 (20221121-115119)
Критические изменения
- Устаревшие поля
OpMode
msStuckDetectInit
, msStuckDetectInitLoop
, msStuckDetectStart
, msStuckDetectLoop
и msStuckDetectStop
.- OpModes больше не имеет ограничения по времени для
init()
, init_loop()
, start()
или loop()
, поэтому поля, соответствующие этим методам, больше не используются. -
stop()
по-прежнему имеет ограничение по времени, но теперь оно жестко запрограммировано на 1 секунду и не может быть изменено с помощью msStuckDetectStop
.
- Устаревшие методы
OpMode
internalPreInit()
, internalPostInitLoop()
и internalPostLoop()
.- Итеративные
OpMode
будут продолжать вызывать эти методы в случае, если они были переопределены. - Эти методы вообще не будут вызываться для
LinearOpMode
.
- Устаревший (и перестающий учитывать)
DeviceProperties.xmlTagAliases
.
Улучшения
- Добавляет новый интерфейс
IMU
в Blocks и Java, который можно использовать как с исходным IMU BNO055, включенным во все старые концентраторы управления и концентраторы расширения, так и с новым альтернативным IMU BHI260AP.- Вы можете определить, какой тип IMU находится в вашем Control Hub, перейдя на страницу «Управление» веб-интерфейса.
- Чтобы узнать, как использовать новый интерфейс
IMU
, см. https://ftc-docs.firstinspires.org/programming_resources/imu/imu.html. Образец блоков SensorIMU
также был обновлен для использования нового интерфейса IMU
, и были добавлены следующие примеры Java:-
SensorIMUOrthogonal
- Используйте этот образец, если концентратор REV установлен параллельно или перпендикулярно нижней части робота.
-
SensorIMUNonOrthogonal
- Используйте этот образец, если ваш REV Hub установлен на роботе в любой другой ориентации.
-
ConceptExploringIMUOrientations
- Этот OpMode — это инструмент, который поможет вам понять, как работают ортогональные ориентации и какая из них применима к вашему роботу.
- Доступ к IMU BHI260AP возможен только через новый интерфейс
IMU
. BNO055 IMU можно запрограммировать с использованием нового интерфейса IMU
или продолжить программирование с использованием старого интерфейса BNO055IMU
. Если вы хотите иметь возможность быстро переключиться на новый Control Hub, который может содержать IMU BHI260AP, вам следует перенести свой код для использования нового интерфейса IMU
. - В отличие от старого интерфейса
BNO055IMU
, который работал правильно только тогда, когда концентратор REV был установлен на вашем роботе, интерфейс IMU
позволяет вам указать ориентацию концентратора REV на вашем роботе. Он учтет это и даст вам ориентацию в системе координат робота, а не в специальной системе координат для REV Hub. В результате ваш шаг и рыскание будут равны 0, когда ваш робот выровнен, а не когда концентратор REV выровнен, что приведет к гораздо более надежным значениям угла ориентации для большинства монтажных ориентаций. - Из-за новой роботоориентированной системы координат углы тангажа и крена, возвращаемые интерфейсом
IMU
будут отличаться от тех, которые возвращаются интерфейсом BNO055IMU
. При переносе кода обратите особое внимание на документацию. - Если вы откалибровали свой BNO055, вы можете предоставить эти данные калибровки новому интерфейсу
IMU
, передав экземпляр BNO055IMUNew.Parameters
в IMU.initialize()
. - Интерфейс
IMU
также подходит для реализации сторонними поставщиками для IMU, которые поддерживают предоставление ориентации в форме кватерниона.
- Итеративные
OpMode
(в отличие от LinearOpMode
) теперь выполняются в выделенном потоке.- На время цикла не должно влиять все остальное, что происходит в системе.
- Slow
OpMode
больше не может увеличивать время, необходимое для обработки сетевых команд, и наоборот. - Методам
init()
, init_loop()
, start()
loop()
больше не требуется возвращать результат в течение определенного периода времени.
- Устаревший драйвер IMU BNO055: восстанавливает возможность инициализации в одном OpMode, а затем позволяет другому OpMode повторно использовать эту инициализацию. Это позволяет вам поддерживать положение 0 отклонения между режимами работы, если это необходимо.
- Позволяет настроенным версиям драйверов устройств в FTC SDK использовать один и тот же тег XML.
- Раньше, если вы хотели настроить драйвер устройства, вам нужно было скопировать его в новый класс и присвоить ему новый тег XML. Добавление нового тега XML означало, что для переключения используемого драйвера вам нужно было изменить файл конфигурации.
- Теперь, чтобы использовать ваш собственный драйвер, все, что вам нужно сделать, это указать класс вашего пользовательского драйвера при вызове
hardwareMap.get()
. Чтобы вернуться к исходному драйверу, укажите исходный класс драйвера. Если вы укажете интерфейс, который реализуется как исходным, так и пользовательским драйвером, нет никакой гарантии, какая реализация будет возвращена.
Исправления ошибок
- Исправлен доступ к ссылкам «Управление моделями TensorFlow Lite» и «Управление звуками», а также выполнение загрузки блоков и OnBotJava OpMode из аппаратного клиента REV.
- Устранена проблема, из-за которой драйвер устройства I2C автоматически инициализировался с использованием параметров, назначенных при предыдущем запуске OpMode.
- Улучшено размещение всплывающего меню Driver Station в альбомной ориентации.
- Исправляет исключение NullPointerException при попытке получить ненастроенный IMU BNO055 в режиме Blocks OpMode на телефоне с дистанционным управлением.
- Устраняет проблему с блоками, если переменная называется
orientation
.
Версия 8.0 (20220907-131644)
Критические изменения
- Увеличивает версию Робокола.
- Это означает, что контроллер робота или станция водителя версии 8.0 или более поздней версии не сможет взаимодействовать со станцией водителя или контроллером робота версии 7.2 или более ранней версии.
- Если вы забудете обновить оба приложения одновременно, появится сообщение об ошибке, объясняющее, какое приложение старше и его следует обновить.
- Инициализация устройств I2C теперь происходит при первом их извлечении из
HardwareMap
.- Раньше все устройства I2C инициализировались еще до начала выполнения OpMode, независимо от того, собирались ли вы их использовать на самом деле или нет. Это может привести к снижению производительности и появлению ненужных предупреждений.
- Благодаря этому изменению для пользователей Java очень важно получить все необходимые устройства из
HardwareMap
на этапе инициализации OpMode . А именно, объявите переменную для каждого аппаратного устройства, которое будет использовать OpMode, и присвойте каждому значение. Не делайте этого на этапе выполнения, иначе ваш OpMode может ненадолго зависнуть, пока инициализируются извлекаемые вами устройства. - Режимы работы, которые не используют все устройства I2C, указанные в файле конфигурации, должны занимать меньше времени для инициализации. Режимы работы, в которых используются все указанные устройства I2C, должны занимать то же время, что и раньше.
- Устраняет проблему № 251 путем изменения порядка, в котором скорость вращения оси считывается из вектора угловой скорости в драйвере BNO055 IMU.
- Устаревший
pitchMode
в BNO055IMU.Parameters
.- Установка для
pitchMode
PitchMode.WINDOWS
нарушит соглашения о координатах, используемые драйвером.
- Перемещает
OpModeManagerImpl
в пакет com.qualcomm.robotcore.eventloop.opmode
.- Это нарушает работу сторонних библиотек EasyOpenCV (версия 1.5.1 и более ранние) и FTC Dashboard (версия 0.4.4 и более ранние).
- Удаляет устаревший метод
OpMode
resetStartTime()
(вместо него используйте resetRuntime()
). - Удаляет защищенный класс
LinearOpMode.LinearOpModeHelper
(который не предназначен для использования OpModes). - Удаляет тип конфигурации устройства I2C (синхронный) (устарел с 2018 г.).
Улучшения
- Неперехваченные исключения в режимах эксплуатации больше не требуют перезапуска робота.
- Появление синего экрана со трассировкой стека не является ошибкой SDK; это заменяет красный текст в области телеметрии.
- С самого первого выпуска SDK сбои в OpMode переводили робота в состояние «АВАРИЙНОЙ ОСТАНОВКИ», отображая только первую строку исключения и требуя от пользователя нажать «Перезапустить робота», чтобы продолжить.
- Исключения во время OpMode теперь открывают всплывающее окно с той же цветовой схемой, что и средство просмотра журналов, содержащее 15 строк трассировки стека исключений, что позволяет легко отслеживать вызывающую ошибку строку без необходимости подключения для просмотра журналов через ADB или прокрутки большого количества журналов. в средстве просмотра журналов.
- Текст исключения во всплывающем окне можно масштабировать и прокручивать, как на веб-странице.
- Нажатие кнопки «ОК» во всплывающем окне вернет вас на главный экран станции водителя и позволит немедленно снова запустить OpMode без необходимости выполнения «Перезапуска робота».
- Добавляет новый пример Java для демонстрации использования класса оборудования для абстрагирования приводов робота и совместного использования их в нескольких режимах работы.
- Пример OpMode — ConceptExternalHardwareClass.java.
- Абстрактным классом оборудования является RobotHardware.java.
- Обновляется образец Java RobotAutoDriveByGyro_Linear для использования IMU концентратора управления/расширения REV.
- Обновляет образцы Vuforia, чтобы они ссылались на ресурсы PowerPlay и имели правильные имена и расположение полей целевых изображений.
- Обновляет образцы TensorFlow для ссылки на ресурсы PowerPlay.
- Добавляет дополнительную поддержку языковых функций Java 8 в редактор OnBotJava.
- Чтобы принять участие, откройте настройки OnBotJava и установите флажок
Enable beta Java 8 support
. - Обратите внимание, что код Java 8 будет компилироваться только в том случае, если контроллер робота работает под управлением Android 7.0 Nougat или более поздней версии.
- Пожалуйста, сообщайте о проблемах здесь.
- В OnBotJava нажатие на ошибки сборки теперь корректно переходит в правильное место.
- Улучшает поведение автозаполнения OnBotJava, чтобы в большинстве случаев обеспечить лучшие варианты завершения.
- Добавляет QR -код в отчет об инспекции контроллера робота при просмотре со станции водителя для сканирования инспекторами на соревнованиях.
- Улучшает производительность и надежность I2C в некоторых сценариях.
Версия 7.2 (20220723-130006)
Нарушение изменений
- Обновляет инструмент сборки. Для пользователей Android Studio это изменение требует Android Studio Bumpmunk 2021.2.1.
- Удаляет поддержку устройств, которые не являются конкурентными юридическими, включая модули управления Core Modern Robotics, Matrix Controller, а также контроллеры и датчики Hitechnic/NXT. Поддержка остается для современной робототехники I2C датчиков.
Улучшения
- Увеличивает высоту площади ландшафтного меню на 3 дота на станции водителя, что значительно облегчает выбор.
- Добавляет метод
terminateOpModeNow()
, чтобы Opmodes сразу же позволил сразу же самостоятельно выяснить. - Добавляет метод
opModeInInit()
в LinearOpMode
для облегчения инициаторов. Аналогично opModeIsActive()
но для фазы иниции. - Предупреждает пользователя, если у него есть подключенный Logitech F310 GamePad, который установлен в режим DirectInput.
- Позволяет контроллерам двигателя Sparkmini быстрее реагировать, чтобы ускорить изменения.
- Укрывает номер версии неправильно установленного сестринского приложения (то есть DS, установленного на устройстве RC или наоборот) на экране проверки.
- Добавляет поддержку для разрешения пользователю отредактировать комментарий для блока RunoPmode.
- Добавляет поле ParameterDefaultValues в @Exporttoblocks. Это дает возможность для метода Java с аннотацией @ExporttoBlocks для указания значений по умолчанию для параметров метода, когда он показан в редакторе блоков.
- Сделайте блоки LinearoPmode более читаемыми. Имя Opmode отображается в блоке RunoPMode, но не на других блоках LineAROPMode.
- Добавлена поддержка обнаружения объектов TensorFlow для использования другого генератора кадров, а не Vuforia. Использование Vuforia для передачи камеры камеры в TFOD все еще поддерживается.
- Удаляет использование renderscript.
- Исправляет logspam на запуске приложений повторяющихся стектраксов, относящихся к
"Failed resolution of: Landroid/net/wifi/p2p/WifiP2pManager$DeviceInfoListener"
- Позволяет отключить радио Bluetooth с экрана проверки
- Улучшает предупреждающие сообщения, когда устройства i2C не отвечают
- Добавляет поддержку для управления светодиодом RGB, присутствующим на Gamepads PS4/ETPARK от Opmodes
- Удаляет устаревшие ссылки на топ -бот из образцов Opmode. Переименуют образцы «pushbot» в «Робот». Моторные направления поменялись, чтобы быть совместимыми с приводным поездом «Прямой привод».
Исправления ошибок
- Исправляет выпуск № 316 (matrixf.inverted () вернул неверную матрицу для матриц 1x1 и 2x2).
- Самосекция теперь допускает совместимость с контроллером водителя и контроллера роботов между точками.
- Исправляет ошибку, где, если бы один и тот же экземпляр объекта
RumbleEffect
был в очередь в очереди на несколько геймпадов, может произойти, что обе команды Rumble будут отправлены только на один геймпад. - Исправляет ошибку на станции водителя, где на концентраторе Driver, если Advanced Gamepad Features была отключена и был подключен официально поддерживаемый GamePad, а затем открытие Advanced GamePad функции или переопределения типа геймпада приведут к восстановлению геймпада пользовательским драйвером USB, даже если вы даже не будут Advanced Gamepad функции были отключены.
- Защита от (маловероятного) исключения нулевого указателя в Vuforia Localizer.
- HERMEN ONBOTJAVA и Blocks Saves для защиты от проблем с сохранением при отключении от программы и управления
- Исправляет проблему, в которой приложение RC будет зависеть, если бы rev Hub I2C Write Fake не удалась, потому что предыдущая операция I2C все еще продолжалась. Это висится чаще всего во время инициализации датчика расстояния REV 2M
- Удаление ConceptWebcam.java Пример программы. Этот образец не совместим с онботжавой.
- Исправляет ошибку, где использование HTML -тегов в поле комментариев @ExportToBlocks предотвратило загрузку редактора блоков.
- Исправляет редактор блоков, поэтому он не просит вас сохранить, когда вы ничего не изменили.
- Исправляет загрузку очень большего проекта блоков в редактор автономных блоков.
- Исправляет ошибку, которая заставила блоки для DCMotorex быть опущены из инструментального ящика редактора блоков.
- Исправляет блоки программы, лишенные блоков (из -за использования блока метки TensorFlow)
Версия 7.1 (20211223-120805)
- Исправляет сбой при вызове
isPwmEnabled()
(выпуск № 223). - Исправляет ошибку Lint (выпуск № 4).
- Исправляет сбой станции водителя при попытке использовать GamePad DualShock4 v1 с включенными функциями GamePad (выпуск № 173).
- Исправляет возможный (но маловероятный) сбой станции водителя при подключении геймпадов любого типа.
- Исправляет ошибку, где водительская станция будет использовать Generic 20% Deadzone для Xbox360 и Logitech F310 Gamepads, когда усовершенствованные функции GamePad были отключены.
- Добавлены Simpleomnidrive образца Opmode.
- Добавляет API контроля баланса UVC.
- Исправляет проблему № 259 Большинство образцов блоков для TensorFlow нельзя использовать для другой модели.
- Блоки, ранее помеченные TensorFlowObjectDetectionFreightFrenzy (из подкатегории, названной «Оптимизированной для грузового бешенства») и TensorFlowObjectDetectionCustomdelel (из подкатегории, названной «Пользовательская модель»), были заменены блоками, помеченными в TensorFlowObjectDetection. Блоки в существующих Opmodes будут автоматически обновлены на новые блоки при открытии в редакторе блоков.
- Исправляет проблему № 260 Блоки не могут вызвать метод Java, который имеет параметр Vuforialocalizer.
- Blocks теперь имеет блок с надписью VuforiafreightFrenzy.getVuforialOcalizer для этого.
- Добавлена страница для управления моделями TensorFlow Lite в/SDCARD/First/TfliteModels. Чтобы добраться до страницы моделей Tflite:
- Вы можете нажать на ссылку внизу страницы управления.
- Вы можете нажать на ссылку на странице проекта в верхнем правом проекте.
- Исправляет logspam, когда
isBusy()
вызывается на двигателе, а не в режиме RTP. - Укрывает элемент «Пароль RC» на экране проверки для контроллеров роботов на основе телефона. (Это применимо только к контрольным центрам).
- Добавляет меню «Канал» 165 в Wi-Fi Direct Channel Menu на экране настроек. (165 ранее был доступен через веб -интерфейс, но не локально в приложении).
Версия 7.0 (20210915-141025)
Улучшения и новые функции
- Добавляет поддержку внешних библиотек онботжавы и блоков.
- Загрузить .jar и .aar файлы в onbotjava.
- Известное ограничение - устройство RobotController должно работать с Android 7.0 или более.
- Известное ограничение - файлы .AAR с активами не поддерживаются.
- Внешние библиотеки могут обеспечить поддержку аппаратных устройств, используя аннотацию в пакете com.qualcomm.robotcore.hardware.configuration.annotations.
- Внешние библиотеки могут включать в себя файлы .so для собственного кода.
- Внешние библиотеки можно использовать из Opmodes Onbotjava.
- Внешние библиотеки, которые используют следующие аннотации, могут использоваться из блоков Opmodes.
- org.firstinspires.ftc.robotcore.external.exportclasstoblocks
- org.firstinspires.ftc.robotcore.external.exporttoblocks
- Внешние библиотеки, которые используют следующие аннотации, могут добавить новые аппаратные устройства:
- com.qualcomm.robotcore.hardware.configuration.annotations.analogsensortype
- com.qualcomm.robotcore.hardware.configuration.annotations.deviceProperties
- com.qualcomm.robotcore.hardware.configuration.annotations.digitaliodevicetype
- com.qualcomm.robotcore.hardware.configuration.annotations.i2cdevicetype
- com.qualcomm.robotcore.hardware.configuration.annotations.motortype
- com.qualcomm.robotcore.hardware.configuration.annotations.servotype
- Внешние библиотеки, которые используют следующие аннотации, могут добавить новую функциональность в контроллер робота:
- org.firstinspires.ftc.ftccommon.external.oncreate
- org.firstinspires.ftc.ftccommon.external.oncreateeventloop
- org.firstinspires.ftc.ftccommon.external.oncreatemenu
- org.firstinspires.ftc.ftccommon.external.ondestroy
- org.firstinspires.ftc.ftccommon.external.webhandlerregistrar
- Добавляет поддержку в центре драйвера Robotics.
- Добавляет полностью пользовательские пользователи USB Gamepad Driver к станции водителя (см. Меню «Advanced Gamepad Features» в настройках DS).
- Позволяет GamePads работать на устройствах без нативной поддержки ядра Linux (например, некоторые румынские устройства Motorola).
- Позволяет DS читать уникальный серийный номер каждого геймпада, обеспечивая автоматическое переоборудование выпавших игровых пар (Примечание: к сожалению, это не относится к геймпадам etpark, потому что у них нет уникального сериала) .
- Чтение уникального серийного номера также дает возможность настроить DS для назначения геймпадов в определенную позицию по умолчанию (поэтому не нужно начинать+A/B вообще).
- Светодиодное кольцо на геймпаде Xbox360 и светодиодной панели RGB на PS4 Gamepad используется для обозначения позиции драйвера, с которой привязан геймпад.
- Руловые двигатели на геймпадах Xbox360, PS4 и ETPARK можно контролировать из OpModes.
- Двухточечная сенсорная панель на геймпаде PS4 может быть прочитана от Opmodes.
- Кнопки «Back» и «Руководство» на геймпаде теперь могут быть безопасно связаны с элементами управления роботами (ранее, на многих устройствах Android перехватывает эти кнопки в качестве нажатия кнопок дома и закрывать приложение).
- Усовершенствованные функции GamePad включены по умолчанию, но могут быть отключены через меню «Настройки», чтобы вернуться к поддержке геймпада, предоставленной Android.
- Улучшает точность измерения пинга.
- Исправляет проблему, когда время пинга показало, что было выше, чем реальность, когда первоначально подключилось к роботу или перезагрузку.
- Чтобы увидеть полное улучшение, вы должны обновить как приложения контроллера робота, так и приложения водителя.
- Образцы обновлений, расположенные в/ftcrobotcontroller/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples.
- Добавлены образцы ConceptGamePadrumble и ConceptGamePadtouchPad, чтобы проиллюстрировать использование этих новых возможностей Gampad.
- Сгущенные существующие образцы Vuforia только в 2 образца (ConceptVuforifieldNavigation & ConceptVuforiafieldNavigationWebcam), показывающие, как определить местоположение робота на поле с использованием Vuforia. Они оба используют целевые изображения текущего сезона.
- Добавлен ConceptVuforiadRivetOtargetWebcam, чтобы проиллюстрировать простой способ двигаться непосредственно к любой видимой цели Vuforia.
- Делает много улучшений в системе предупреждения и индивидуальных предупреждений.
- Предупреждения теперь гораздо более расставлены, так что их легче читать.
- Новые предупреждения были добавлены для условий, которые должны быть разрешены перед конкуренцией.
- Несоответствующее предупреждение приложений теперь использует основные и незначительные версии приложений, а не код версии.
- Предупреждения автоматически переработаны, когда установлено приложение Controller из нового сезона FTC.
- Добавляет поддержку транзакций I2C в концентраторе Expansion Hub / Control Hub без указания адреса регистра.
- См. Раздел 3 спецификации Ti i2c.
- Призыв этих новых методов при использовании современного оборудования для робототехники приведет к UnsupportedOperationException.
- Изменения Vuforialocalizer
close()
метод быть публичным. - Добавляет поддержку моделей обнаружения объектов TensorFlow V2.
- Уменьшает неоднозначность самооценки языка и графики.
- Onbotjava теперь предупреждает о потенциально непреднамеренных перезаписи файла.
- Улучшает поведение диапазона Wi-Fi и селектора каналов на веб-странице Manage.
Исправления ошибок
- Исправляет приложение Robot Controller Crash на Android 9+, когда подключается станция водителя.
- Исправляет проблему, в которой OpMode отвечал за вызов отключения на TenSorFlow TfoBjectDetector. Теперь это делается автоматически.
- Исправляет блоки инициализации Vuforia, чтобы позволить пользователю выбрать оси. Обновлены соответствующие блоки. Образец Опмоды.
- Исправляет FtcrobotController Выпуск #114 Светодиодные блоки и класс Java не работают.
- Исправляет регистрацию сопоставления для Opmodes, которые содержат специальные символы в их именах.
- Определяет управление Opmode станции водителя, становящиеся безрезультатными, если станция водителя была установлена на ландшафтную планировку, а сборка Onbotjava была вызвана во время работы OpMode.
- Исправляет приложение станции водителя, закрывающее себя, когда оно отключается, или экран выключен.
- Исправляет «Black Vlirl of Doom» (Infinite »настройка сообщения Wi-Fi Direct») на старых устройствах.
- Обновляет комментарий Wiki на странице Onbotjava Intro.
Версия 6.2 (20210218-074821)
Улучшения
- Попытки автоматически исправить условие, в котором внутренний центр расширения управляющего центра не работает, переполняя свою прошивку
- Делает различные улучшения на экране прямого сопряжения Wi-Fi, особенно в режиме ландшафта
- Служба контроллера робота больше не категорически перезапускается, когда основное действие выдвигается на передний план
- (Например, служба больше не перезапускается, просто просмотрев экран самооценки и нажав кнопку задней части)
- Он по -прежнему перезапускается, если открывается меню «Настройки» или настройка меню робота
Исправления ошибок
- Исправляет FtcrobotController Проблема № 71 не может открыть Opmodes в блоках V6.1
- Исправляет FtcrobotController выпуск № 79 6.1. Вызывает мягкую перезагрузку в игре Motorola E5
- Исправляет проблему, когда сторожевой пейзаж ОС управляющего хаба перезагрузил бы приложение для контроллера робота, если контрольный центр не смог общаться со своим центром внутреннего расширения
- Исправляет определенные устройства i2c, не отображаемые в соответствующих полях
HardwareMap
(например, hardwareMap.colorSensor
) - Исправляет проблему, в которой выполнение сброса Wi-Fi Factory в управляющем узле не установило бы полосу Wi-Fi на 2,4 ГГц.
- Исправляет проблему, где onbotjava может не создать новый файл, если была выбрана опция «Код настройки для настроенного аппаратного обеспечения»
- Исправляет проблему, когда выполнение определенных операций после сбоев OpMode временно нарушит связь с контролем/расширением.
- Исправляет проблему, в которой управляющий концентратор с настроенным USB-подключенным центром расширения не будет работать, если в стартап не хватает центра расширения.
- Исправляет потенциальные проблемы, вызванные несовместимыми версиями прошивки контроля/расширения.
- Исправляет FTC_APP Выпуск 673 Последний матч -блок удаляется вместо старых от Robotlog
- Исправляет ConceptVuforiaultimateGoalNavigationWebcam Образец Opmode с помощью правильно ориентируя камеру на роботе.
- Исправляет проблему, в которой LogCat будет спам с прерыванием, когда запрашивается остановка со станции водителя (это поведение было случайно введено в V5.3). Это изменение не влияет на функциональность.
- Исправляет проблему, в которой редактор блоков не загружается, если имя любого телефона содержит апостроф.
Версия 6.1 (20201209-113742)
- Создает кнопку сканирования на экране конфигурации, обновите список экспансионных концентраторов, подключенных через RS-485
- Исправляет выпуск Skystone #143
- Улучшает совместимость веб -интерфейса со старыми версиями Browser и System System.
- Исправляет проблему в драйвере UVC, где некоторые камеры (например, определенные MS Lifecams), которые сообщали о интервале кадров как округлые, а не усеченные значения (например,
666667*100ns
вместо 666666*100ns
для 15 кадров в секунду), не смогут начать потоковую передачу. - Добавляет поддержку в драйвере UVC для виртуального управления PTZ
- Добавляет поддержку в управление Driver UVC для усиления (ISO)
- Добавляет поддержку в драйвере UVC для включения/отключения приоритета AE. Эта настройка предоставляет средство для прошивки камеры
- А) Это может недооценить запрошенную частоту кадров, чтобы обеспечить теоретически лучшее изображение (т.е. с более длительным воздействием, чем позволяет межкафрентный период выбранной частоты кадров))
- Б) Он должен соответствовать срок межкадрового срока для выбранной частоты кадров, даже если изображение может быть недоведочным в результате
- Добавляет поддержку для контрольного контроля Robot Controller Watchdog.
- Приложение Controller Robot будет перезапущено, если оно перестанет реагировать на более 10 секунд
- Добавляет поддержку для использования приложения станции Driver на Android 10+
- Вводит функцию предварительного выбора автоматического телеоптора
- Для получения подробной информации и руководства по использованию, пожалуйста, смотрите эту запись в вики
- Показывает значок рядом с именем OpMode в раскрывающемся списке списка OpMode на станции драйвера, чтобы указать источник OpMode (то есть инструмент программирования, используемый для его создания)
- Исправляет проблему, где приложение станции драйвера выйдет после отображения настройки прямого экрана Wi-Fi
- Исправляет блоки и подсказки onbotjava при обращении через аппаратный клиент Rev
Версия 6.0 (20200921-085816)
Важные примечания
- Версия 6.0 - версия для Ultimate Choal Season.
- Требуется Android Studio 4.0.
- Пользователи Android Studio должны быть подключены к Интернету при первом создании приложения (для того, чтобы загрузить необходимые пакеты для сборки).
- Версия 5.5 была умеренно большой межсезонье, август 2020 года. Стоит также просмотреть эти заметки о выпуске ниже.
- Версия 5.5 и больше не будут работать на старых телефонах Android 4.x и 5.x. Пользователи должны перейти на утвержденное устройство Android 6.x или новое.
- Значения PIDF по умолчанию для моторов Rev были возвращены к значениям PID по умолчанию, которые использовались в сезоне 2018-2019
- Это изменение было сделано, потому что значения 2018-2019 гг. Оказались лучше для многих механизмов
- Это приводит к поведению моторов Rev в соответствии с поведением всех других двигателей
- Если вы предпочитаете поведение сезона 2019-2020 для Rev Motors, вот значения PIDF, которые были на месте, чтобы вы могли вручную установить их в своих Opmodes:
HD Hex Motors (все коробки передач): значения скорости PIDF: P = 1.17
, I F = 49.6
I = 0.117
, F = 11.7
I = 0.496
значения PIDF: P = 5.0
P = 4.96
шестнадцатеричного двигателя: скорость PIDF Значения PIDF: P = 5.0
Новые функции
- Включает в себя модель вывода TensorFlow и образцы Opmodes для обнаружения конечных стеков стартовых целей (четыре кольца против одного кольцевого стека).
- Включает в себя целевые цели Vuforia Ultimate Goal Vision и выборки Opmodes.
- Представляет функцию цифрового масштабирования для обнаружения объектов TensorFlow (для более точного обнаружения объектов на больших расстояниях).
- Добавляет запись конфигурации для rev ultraplanetary HD Hex Motor
Улучшения
- Добавляет методы setGain () и getGain () к интерфейсу NormalizedColorsensor.
- Установив усиление датчика цвета, вы можете настроить различные условия освещения. Например, если вы обнаружите более низкие значения цвета, чем ожидалось, вы можете увеличить усиление.
- Значение усиления применяется только к методам argb () и getNormalizedcolors (), а не к необработанным методам цвета. Метод GetNormalizedColors () рекомендуется для простоты использования и ясности, поскольку argb () должен быть преобразован.
- Обновления Sensorcolor Java Sample, чтобы продемонстрировать использование усиления
- Слияет SensorRevColordistance Образец Java в образец SensorColor Java, который демонстрирует лучшие практики для всех датчиков цвета
- Улучшает извлечение значений из датчика Color Rev Color v3
- Обновляет расчет нормализации каналов RGB
- Улучшает расчет альфа -канала (может быть использован в качестве общего показателя яркости)
- Исправляет разрешение датчика по умолчанию, что вызвало проблемы с яркими средами
- Добавляет поддержку для изменения разрешения и скорости измерения чипа датчика Broadcom
- Удаляет IR показания и расчеты, не предназначенные для чипа датчика Broadcom
Исправления ошибок
- Улучшает достоверность инициализации BNO055IMU IMU для предотвращения ошибок случайной инициализации (которая проявлялась как
Problem with 'imu'
).
Версия 5.5 (20200824-090813)
Версия 5.5 требует Android Studio 4.0 или позже.
Новые функции
- Добавляет поддержку для вызова пользовательских классов Java из блоков Opmodes (исправляет выпуск Skystone #161).
- Классы должны быть в пакете org.firstinspires.ftc.teamcode.
- Чтобы получить легкий доступ к Opmode, Hardwaremap, Telemetry, GamePad1 и GamePad2, классы могут расширять org.firstinspires.ftc.robotcore.external.blocksopmodecompanion.
- Методы должны быть публичными статичными и иметь не более 21 параметров.
- Методы должны быть аннотированы с помощью org.firstinspires.ftc.robotcore.external.exporttoblocks.
- Параметры, объявленные как OpMode, LineAROPMode, телеметрия и HardwareMap, поддерживаются, и аргумент предоставляется автоматически, независимо от порядка параметров. На блоке разъемы для этих параметров автоматически заполняются.
- Параметры, объявленные как char или java.lang.character, примут любой блок, который возвращает текст и будет использовать только первый символ в тексте.
- Параметры, объявленные логическими или Java.lang.boolean, примут любой блок, который возвращает логический.
- Параметры, объявленные Byte, java.lang.byte, short, java.lang.short, int, java.lang.integer, long, или java.lang.long, примут любой блок, который возвращает число и округл бы это значение. ближайшее целое число.
- Параметры, объявленные как Float, java.lang.float, Double, Java.lang.double, примет любой блок, который возвращает число.
- Добавляет метод API телеметрии для настройки формата отображения
- Классический
- Моноспорт
- HTML (только определенные теги)
- Добавляет поддержку блоков для переключения камер.
- Добавляет поддержку блоков для обнаружения объектов TensorFlow с помощью пользовательской модели.
- Добавляет поддержку для загрузки пользовательской модели обнаружения объектов TensorFlow на странице управления, что особенно полезно для блоков и пользователей onbotjava.
- Показывают новые коды Blink Hub, когда полоса Wi-Fi переключается с использованием кнопки управляющего центра (возможно только для управляющего Hub OS 1.1.2)
- Добавляет новые предупреждения, которые можно отключить в расширенных настройках RC
- Несоответствующие версии приложений предупреждение
- Ненужное предупреждение о использовании 2,4 ГГц Wi-Fi
- Rev Hub работает на устаревшей прошивке (старше версии 1.8.2)
- Добавляет поддержку Sony PS4 GamePad и переосмысливает, как работают геймпады на станции водителя
- Удаляет предпочтения, который устанавливает тип геймпада на основе позиции драйвера. Замените меню, которое позволяет определить тип для геймпадов с неизвестным VID и PID
- Попытки автоматического определения геймпада на основе USB VID и PID
- Если GamePad VID и PID не известны, используйте тип SPE