알아채다
이 저장소에는 INTO THE DEEP(2024-2025) 대회 시즌을 위한 공개 FTC SDK가 포함되어 있습니다.
환영!
이 GitHub 저장소에는 FIRST Tech Challenge 대회 로봇을 제어하기 위한 Android 앱을 빌드하는 데 사용되는 소스 코드가 포함되어 있습니다. 이 SDK를 사용하려면 전체 프로젝트를 로컬 컴퓨터에 다운로드/복제하세요.
요구사항
이 Android Studio 프로젝트를 사용하려면 Android Studio 2021.2(코드명 Chipmunk) 이상이 필요합니다.
Blocks 또는 OnBot Java로 로봇을 프로그래밍하려면 Android Studio가 필요하지 않습니다.
시작하기
로봇 공학을 처음 접하거나 FIRST Tech Challenge를 처음 접하는 경우 FTC Blocks 튜토리얼을 검토하여 제어 시스템 사용 방법을 숙지하는 것이 좋습니다.
FTC 블록 온라인 튜토리얼
고급 Java 프로그래머라도 FTC Blocks 튜토리얼로 시작한 다음 나중에 OnBot Java Tool 또는 Android Studio로 마이그레이션하는 것이 도움이 됩니다.
프로젝트 다운로드
Android Studio 프로그래머인 경우 이 저장소를 다운로드하는 방법에는 여러 가지가 있습니다. Blocks 또는 OnBot Java 도구를 사용하여 로봇을 프로그래밍하는 경우 이 저장소를 다운로드할 필요가 없습니다.
- 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 기술 챌린지 문서
온라인 문서는 지속적으로 업데이트되고 편집되는 "상시적인" 문서입니다. 여기에는 FIRST Tech Challenge 소프트웨어 및 제어 시스템에 대한 최신 정보가 포함되어 있습니다.
Javadoc 참조 자료
FTC SDK에 대한 Javadoc 참조 문서가 이제 온라인으로 제공됩니다. FTC SDK Javadoc 문서를 라이브 웹사이트로 보려면 다음 링크를 클릭하세요.
FTC Javadoc 문서
온라인 사용자 포럼
제어 시스템 또는 FTC SDK에 관한 기술적인 질문이 있는 경우 FIRST Tech Challenge 커뮤니티 사이트를 방문하십시오.
FIRST 기술 챌린지 커뮤니티
샘플 OpMode
이 프로젝트에는 잘라내어 /teamcode 폴더에 붙여넣어 그대로 사용하거나 팀의 요구 사항에 맞게 수정할 수 있는 다양한 샘플 OpMode(로봇 코드 예제)가 포함되어 있습니다.
샘플 폴더: /FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples
/TeamCode/src/main/java/org/firstinspires/ftc/teamcode 폴더에 있는 readme.md 파일에는 샘플 명명 규칙에 대한 설명과 이를 자신의 프로젝트 공간에 복사하는 방법에 대한 지침이 포함되어 있습니다.
출시 정보
버전 10.1(20240919-122750)
향상된 기능
- 팀이 INTO THE DEEP 게임에서 컴퓨터 비전을 통해 색상 처리를 구현하는 데 도움이 되는 새로운 OpenCV 기반
VisionProcessor
(Java 또는 블록의 VisionPortal에 연결될 수 있음)를 추가합니다.-
ColorBlobLocatorProcessor
OpenCV 색상 "blob" 감지를 구현합니다. 새로운 샘플 프로그램인 ConceptVisionColorLocator
는 그 사용법을 보여줍니다.- 사전 정의된 색상 범위 중에서 선택하거나 RGB, HSV 또는 YCrCb 색상 공간에서 사용자 정의 색상 범위를 생성할 수 있습니다.
- 화면의 특정 관심 영역으로 감지를 제한하는 기능이 제공됩니다.
- Threshold Mask에 침식/팽창 모핑을 적용하는 기능 제공
- 반환된 데이터를 정렬하고 필터링하는 기능 제공
-
PredominantColorProcessor
사용하면 카메라 영역을 "장거리 색상 센서"로 사용하여 해당 영역의 주요 색상을 결정할 수 있습니다. 새로운 샘플 프로그램인 ConceptVisionColorSensor
는 그 사용법을 보여줍니다.- 결정된 주요 색상은 MINDSTORMS NXT 색상 센서와 유사한 개별 색상 "견본" 세트에서 선택됩니다.
- 이 색상 처리 기능에 대한 문서는 여기에서 찾을 수 있습니다: https://ftc-docs.firstinspires.org/color-processing
- 컬러 센서용 블록 샘플 프로그램(RobotAutoDriveToLine 및 SensorColor)을 추가했습니다.
- 일치하지 않는 RC/DS 소프트웨어 버전을 "실패"가 아닌 "주의"로 식별하도록 자체 검사가 업데이트되었습니다.
버그 수정
- AngularVelocity 변환 회귀 문제를 수정했습니다.
버전 10.0(20240828-111152)
주요 변경 사항
- TensorFlow 객체 감지용 Java 클래스 및 블록이 제거되었습니다.
-
AngleUnit
유형이었던 AngularVelocity.unit
이 UnnormalizedAngleUnit
유형의 AngularVelocity.angleUnit
으로 이름이 바뀌었습니다.
향상된 기능
- REV 디지털 표시기용 샘플이 추가되었습니다 - ConceptRevLED
- Sparkfun QWIIC LED 스틱에 대한 지원 추가
- ConceptLEDStick OpMode 추가
- 검정색, 파란색, 청록색, dkgray, 회색, 녹색, ltgray, 자홍색, 빨간색, 흰색 및 노란색 색상에 대한 블록을 추가합니다.
- 연결된 블록을 실행하고 결과를 무시하는 "평가하지만 결과 무시" 블록을 추가합니다. 함수를 호출하고 반환 값을 무시할 수 있습니다.
- Maxbotix Maxsonar I2CXL 소나 거리 측정기용 I2C 드라이버 추가
- 서보 및 CR 서보에 대해 setPwmEnable, setPwmDisable 및 isPwmEnabled에 대한 블록을 추가합니다.
- Blocks 편집기에서: ImportToBlocks 주석의 설명 필드에 있는 n이 줄 바꿈으로 표시됩니다.
- 원격 측정에는 새로운 메서드 setNumDecimalPlaces가 있습니다.
- 원격 측정은 이제 double 및 float 형식을 지정합니다(객체 내부가 아닌 자체적으로).
- Limelight 3A에 대한 지원을 추가합니다.
- REV 서보 허브에 대한 초기 지원을 추가합니다.
- 서보 허브를 서보 허브로 구성하려면 로봇 컨트롤러와 드라이버 스테이션을 모두 버전 10.0으로 업데이트해야 합니다. 두 장치 중 하나의 앱이 오래된 경우 서보 허브가 확장 허브로 표시되고 일부 기능이 예상대로 작동하지 않습니다. Driver Station과 로봇 컨트롤러 앱이 모두 버전 10.0으로 업데이트될 때까지 서보 허브를 포함하는 구성을 생성해야 합니다.
- 서보 허브의 펌웨어 업데이트 및 주소 변경은 현재 REV 하드웨어 클라이언트를 통해서만 수행할 수 있습니다.
- REV 9축 IMU(REV-31-3332)에 대한 지원 추가
- REV 9축 IMU는 범용 IMU 인터페이스에서만 지원됩니다.
-
Rev9AxisImuOrientationOnRobot
Java 클래스를 추가합니다. - 이 IMU의 I2C 포트를 Control Hub의 USB 포트로 정신적으로 대체하는 경우
RevHubOrientationOnRobot
도 이 센서와 호환됩니다. - RevHubImuOrientationOnRobot.xyzOrientation 및 RevHubImuOrientationOnRobot.zyxOrientation을 포함하여 Rev9AxisImuOrientationOnRobot에 대한 블록을 추가합니다.
- 블록 샘플 SensorRev9AxisIMUOrthogonal 및 SensorRev9AxisIMUNonOrthogonal을 추가합니다.
- RevHubImuOrientationOnRobot에 대한 블록 지원을 향상합니다.
- RevHubImuOrientationOnRobot.xyzOrientation 및 RevHubImuOrientationOnRobot.zyxOrientation에 대한 블록을 추가합니다.
- 블록 샘플 SensorHubIMUOrthogonal(SensorIMU 대체) 및 SensorHubIMUNonOrthogonal을 추가합니다.
- EasyOpenCV, AprilTag, OpenCV 및
libjpeg-turbo
버전 업데이트 - 두 개의 숫자를 사용하는 최대 및 최소 블록을 추가합니다.
- OpModes ConceptRevSPARKMini, RobotAutoDriveByEncoder, RobotAutoDriveByGyro, RobotAutoDriveByTime, RobotAutoDriveToAprilTagOmni 및 RobotAutoDriveToAprilTagTank를 추가합니다.
- 동일한 이름을 가진 두 개의 OpMode는 이제 자동으로 이름 뒤에 "-"가 붙은 이름과 클래스 이름으로 변경되어 둘 다 장치에 있을 수 있습니다.
- 로봇 컨트롤러 콘솔의 관리 페이지에 활성 구성의 이름을 표시합니다.
- INTO THE DEEP의 AprilTag 라이브러리가 업데이트되었습니다. 특히
getCurrentGameTagLibrary()
이제 INTO THE DEEP 태그를 반환합니다. - Telemetry.setMsTransmissionInterval 및 Telemetry.getMsTransmissionInterval에 대한 블록을 추가합니다.
- 블록 샘플 SensorOctoQuad를 추가합니다.
버그 수정
- RevBlinkinLedDriver 블록이 블록 편집기 도구 상자의 액추에이터 아래에 있던 버그를 수정합니다. 이제 기타 장치입니다.
- Driver Station에서 정지를 요청한 후 사용자 코드에
Exception
발생하면 자동으로 먹히는 버그를 수정합니다. - 장치가 보고한 것과 다른 단위로
AngularVelocity
를 요청하면 라디안의 경우 -PI와 PI, 도의 경우 -180과 180 사이에서 정규화되는 버그가 수정되었습니다.
버전 9.2(20240701-085519)
중요 사항
- TensorFlow 객체 감지용 Java 클래스 및 블록은 더 이상 사용되지 않으며 버전 10.0에서 제거될 예정입니다.
- TensorFlow 객체 감지를 사용하는 샘플이 삭제되었습니다.
향상된 기능
- 검사 활동 중 불합격 항목에 대한 설명 텍스트를 추가합니다. 설명 텍스트를 보려면 실패한 항목에 대한 빨간색 경고 아이콘을 탭하세요.
- 블록 편집기에서: 변수를 설정하고 새 값을 반환하는 새로운 종류의 변수 설정 블록을 추가했습니다.
- SwitchableCamera에 대해 카메라 컨트롤이 작동하는 방식을 변경합니다. 이제 각 메소드(예: getExposure, getMinExposure, getMaxExposure, ExposureControl의 setExposure)는 현재 활성 카메라에 작동합니다.
- REV USB PS4 호환 게임패드(REV-31-2983)에 대한 지원 추가
- ConceptAprilTagMultiPortal OpMode 추가
- OctoQuad Quadrature 인코더 및 펄스 폭 인터페이스 모듈에 대한 지원 추가
- AprilTagLibrary를 반환하는 정적 메서드를 Blocks 프로그래밍 환경으로 내보냈음을 나타내는 ImportAprilTagLibraryToBlocks 주석을 추가합니다. 해당 블록은 내장 태그 라이브러리와 함께 블록 도구 상자에 나타납니다.
- 블록 OpMode ConceptAprilTagOptimizeExposure를 추가합니다.
- SparkFun 광학 추적 오도메트리 센서에 대한 지원을 추가합니다.
버그 수정
- VisionPortal.close()가 IndexOutOfBoundsError를 일으킬 수 있는 #942를 수정합니다.
- 축소된 기능 블록에 "접힌 블록에 경고가 포함되어 있습니다."라는 경고가 표시되는 블록 편집기의 버그를 수정합니다. 블록 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의 몇 가지 개선 사항
- VisionPortal Builder에서
.build()
호출 후 스트림이 자동으로 시작되는지 여부를 제어하는 옵션을 추가합니다. - 비전 처리 통계 오버레이가 렌더링되는지 여부를 제어하는 옵션을 추가합니다.
- VisionPortals는 이제
CameraStreamSource
인터페이스를 구현하므로 다중 포털 사용자가 CameraStreamServer.getInstance().setSource(visionPortal)를 호출하여 INIT에서 DS로 라우팅되는 포털을 선택할 수 있습니다. 카메라 스트림 세션 사이에서 게임패드를 통해 선택할 수 있습니다. - 보정 경고를 억제하는 옵션을
AprilTagProcessor
에 추가하세요. - 카메라 보정 경고 개선
- 교정의 크기가 조정되면 조정된 해상도가 나열됩니다.
- 잘못된 종횡비의 보정이 있는 경우 보정된 해상도가 나열됩니다.
- VisionPortal에서
stopStreaming()
호출한 후 즉시 close()
호출할 때 앱 충돌을 일으키는 경합 상태를 수정합니다. - VisionPortal을 구축한 후 즉시
stopStreaming()
호출할 때 발생하는 IllegalStateException을 수정합니다. - 새로운 Java 메소드에 FTC Block 대응 항목을 추가했습니다.
- VisionPortal.Builder.setAutoStartStreamOnBuild
- VisionPortal.Builder.setShowStatsOverlay
- AprilTagProcessor.Builder.setSuppressCalibrationWarnings
- CameraStreamServer.setSource
버그 수정
- OnBotJava가 글꼴 크기 설정을 편집기에 적용하지 않는 문제를 수정합니다.
- EasyOpenCV 종속성을 v1.7.1로 업데이트
- OnBotJava에서 EasyOpenCV CameraFactory를 사용할 수 없는 문제 수정
- 사용자 파이프라인에서 예외가 발생할 때 전체 RC 앱 충돌을 수정합니다.
- 사용자 사용자 캔버스 주석자가 예외를 발생시킬 때 전체 RC 앱 충돌을 수정합니다.
- 사용자 예외를 처리할 때 레거시 ESTOP 원격 측정 메시지 대신 최신 스택 추적 디스플레이를 사용합니다.
버전 9.0.1(20230929-083754)
향상된 기능
- Decimation 및 추가 설명을 포함하도록 AprilTag 샘플을 업데이트합니다. 오해의 소지가 있는 태그 ID 경고도 수정합니다.
- 블록 인라인 댓글의 최대 크기를 140자로 늘립니다.
- 블록 샘플 BasicOmniOpMode를 추가합니다.
- 업데이트된 CENTERSTAGE 라이브러리 AprilTag 오리엔테이션 쿼터니언
- 사용자 정의 모델 지원에 필요한 누락된 요소를 포함하도록 Java 샘플 ConceptTensorFlowObjectDetection.java를 업데이트했습니다.
버그 수정
- 10월 1일 이후 Driver Station이 v9.0에서 더 이상 사용되지 않는 것으로 보고하고 사용자에게 업데이트하라는 메시지를 표시하는 문제를 수정합니다.
버전 9.0(20230830-154348)
주요 변경 사항
- Vuforia 제거
-
AprilTagDetection
및 AprilTagPose(ftc/raw)
개체의 필드가 이제 final
입니다. - VisionPortal 빌더 메소드
setCameraMonitorViewId()
setLiveViewContainerId()
로 이름이 바뀌었고, enableCameraMonitoring()
enableLiveView()
로 이름이 바뀌었습니다.
향상된 기능
- DFRobot HuskyLens 비전 센서에 대한 지원을 추가합니다.
- Blocks 팀은 이제 웹캠 보정을 수행할 수 있습니다.
- System.currentTimeMillis에 대한 블록을 추가했습니다(Utilities/Time 아래).
- VisionPortal.saveNextFrameRaw에 대한 블록을 추가했습니다(Vision/VisionPortal 아래).
- UtilityCameraFrameCapture라는 새로운 샘플 블록 OpMode를 추가했습니다.
- RobotDriveByGyro 샘플이 새로운 범용 IMU 인터페이스를 사용하도록 업데이트되었습니다. 이제 두 가지 IMU 유형을 모두 지원합니다.
- 블록 편집기 도구 상자에서 오류가 발생하기 쉬운 일부 ElapsedTime 블록을 제거했습니다. 이것은 획기적인 변화가 아닙니다. 이러한 블록을 사용하는 기존 블록 OpMode는 블록 편집기와 런타임 모두에서 계속 작동합니다.
- OpMode라는 용어를 "OpMode" 형식으로 표준화합니다.
-
LinearOpMode
(블록 OpMode 포함)를 구체적으로 확장하는 OpMode를 참조하는 기본 방법은 "선형 OpMode"입니다. -
OpMode
직접 확장하는 OpMode를 참조하는 가장 좋은 방법은 "반복 OpMode"입니다.
-
OpMode
및 LinearOpMode
Javadoc 주석을 더 쉽게 읽고 더 많은 세부 정보를 포함하도록 정밀검사합니다. - Java 샘플을 약간 개선합니다.
- Android Studio에서 잘못 렌더링될 수 있는 샘플의 Javadoc 주석이 표준 여러 줄 주석으로 변환되었습니다.
- 샘플 간의 일관성이 향상되었습니다.
- SensorDigitalTouch 샘플은
DigitalChannel
대신 TouchSensor
인터페이스를 사용하는 새로운 SensorTouch 샘플로 대체되었습니다. - ConceptCompassCalibration, SensorMRCompass 및 SensorMRIRSeeker 샘플은 최신 FTC 경쟁에 유용하지 않으므로 삭제되었습니다.
버그 수정
- PlayStation 게임패드를 블루투스 모드에서 사용할 수 없는 버그를 수정합니다. Bluetooth는 경쟁에 있어서는 합법적이지 않지만 충전 중이나 홍보 행사에서 DS 장치를 사용하도록 허용하는 데 유용할 수 있습니다.
- 블록 OpMode를 편집하는 동안 Control Hub를 재부팅하면 블록 OpMode의 수정 날짜 값이 1969년 12월 31일로 변경될 수 있는 버그를 수정합니다.
- 자동 TeleOp 사전 선택 기능 수정(8.2에서 손상됨)
- 숫자를 사용하는 Telemetry.addData 블록에 123과 같은 정수를 전달하면 원격 측정에서 123.0으로 표시되는 버그를 수정합니다.
- OnBotJava 자동 완성 문제를 수정합니다.
- 지역 변수를 자동 완성할 때 자동 완성이 현재 클래스에 대한 값을 잘못 제공합니다.
-
hardwareMap
자동 완성에 람다 클래스 항목이 잘못 포함됩니다.
- OnBotJava가 클래스를 자동으로 가져오지 않는 문제를 수정합니다.
- 파일이 삭제될 때 OnBotJava 탭이 닫히지 않는 문제를 수정합니다.
- OnBotJava에서 파일 이름을 바꿀 때 프로젝트 보기 새로 고침이 발생하지 않는 문제를 해결합니다.
- OnBotJava 인터페이스의 외부 라이브러리에 대한 "다운로드" 상황에 맞는 메뉴 항목을 수정합니다.
- 고정폭 모드로 설정하면 Driver Station 원격 측정이 간헐적으로 정지되는 문제를 해결합니다.
- 버전 8.2에 도입된 특정 REV Hub 작업에 대한 성능 회귀를 수정합니다.
- DriveToTag 샘플의 TagID 비교 논리를 수정합니다.
버전 8.2(20230707-131020)
주요 변경 사항
- 비선형(반복) OpMode는 더 이상
stop()
메서드에서 액추에이터를 조작할 수 없습니다. 그렇게 하려는 시도는 무시되고 기록됩니다.- OpMode가 액추에이터를 불법적으로 조작하려고 시도하면 로봇 컨트롤러는
CANCELLED_FOR_SAFETY
텍스트를 포함하는 로그 메시지를 인쇄합니다. - 또한 LinearOpModes는 더 이상 스레드의 인터럽트를 제거하거나 다른 스레드를 사용하여 액추에이터를 조작하는 기능을 다시 얻을 수 없습니다.
- Android 버전 6.0(Marshmallow)에 대한 지원을 제거합니다. minSdkVersion은 이제 24입니다.
- 로보콜 버전을 높입니다.
- 이는 8.2 이상의 로봇 컨트롤러 또는 드라이버 스테이션이 8.1 이하의 드라이버 스테이션 또는 로봇 컨트롤러와 통신할 수 없음을 의미합니다.
- 두 앱을 동시에 업데이트하는 것을 잊은 경우 어떤 앱이 오래되어 업데이트해야 하는지 설명하는 오류 메시지가 표시됩니다.
- FTC_FieldCoordinateSystemDefinition.pdf가 이동되었습니다. 아직 git 기록에 있지만 8.2 태그에 해당하는 git 스냅샷에서는 제거되었습니다. 공식 버전은 이제 Field Coordinate System에 있습니다.
-
LynxUsbDevice.addConfiguredModule()
및 LynxUsbDevice.getConfiguredModule()
LynxUsbDevice.getOrAddModule()
로 대체되었습니다. - Vuforia 및 TensorFlow 객체 감지용 기존 블록은 더 이상 사용되지 않으며 블록 편집기 도구 상자에서 제거되었습니다. Vuforia 또는 TensorFlow 객체 감지용 이전 블록을 포함하는 기존 블록 OpMode는 블록 편집기에서 열 수 있지만 실행하면 작동하지 않습니다.
새로운 기능
- 컴퓨터 비전을 위한 새로운
VisionPortal
API를 추가합니다.- 이 API는 최종 킥오프 릴리스에 따라 변경될 수 있습니다!
- 몇 가지 새로운 샘플이 추가되었습니다.
- AprilTags 감지에 대한 지원을 추가합니다.
-
VisionPortal
은 AprilTag 및 TFOD 처리를 위한 새로운 진입점입니다. - Vuforia는 향후 릴리스에서 제거될 예정입니다.
- TensorFlow 종속성을 업데이트했습니다.
- 블록에 웹캠 카메라 제어에 대한 지원이 추가되었습니다.
- 블록 편집기의 도구 상자에는 이제 유틸리티 카테고리 바로 위에 비전 카테고리가 있습니다.
- 관련 기술에 대한 관련 문서는 다음에서 찾을 수 있습니다.
- 4월태그 소개
- AprilTag SDK 가이드
- AprilTag 감지 값
- 4월태그 테스트 이미지
- 카메라 교정
- Logitech Dual Action 및 Sony PS5 DualSense 게임패드에 대한 드라이버 스테이션 지원을 추가합니다.
- 여기에는 Sony PS5 DualSense Edge 게임패드에 대한 지원이 포함되지 않습니다 .
- 대회에서 게임패드의 합법성을 확인하려면 항상 게임 설명서 1을 참조하세요.
- UVC 드라이버에 MJPEG 페이로드 스트리밍에 대한 지원을 추가합니다(사용하려면 외부 JPEG 압축 해제 루틴 필요).
- 바인딩 해제된 게임패드에서 버튼을 누르거나 스틱을 움직일 때 게임패드를 바인딩하는 방법에 대한 힌트를 드라이버 스테이션 UI에 표시합니다.
- Driver Station에 전체 화면 "카메라 스트림" 옵션을 추가합니다.
- OnBotJava 소스 코드는 마지막 30개 빌드의 롤링 창이 유지되는 모든 빌드에 자동으로 ZIP 파일로 저장됩니다. 코드가 실수로 삭제되거나 손상된 경우 이전 빌드에서 소스 코드를 복구할 수 있습니다.
- USB를 통해 직접 연결되지 않은 확장 허브의 주소 변경에 대한 지원을 추가합니다.
- 이제 확장 허브 주소 변경 화면에는 화면을 떠나지 않고도 주소를 변경하는 적용 버튼이 있습니다.
- 동일한 USB 연결 또는 제어 허브에 연결된 다른 허브에 할당된 주소는 더 이상 선택할 수 없습니다.
- 블록 인라인 댓글의 최대 크기를 100자로 늘립니다.
- 열린 블록 댓글 풍선의 위치를 저장합니다.
- 새로운 AprilTag 구동 샘플 추가: RobotDriveToAprilTagTank 및 RobotDriveToAprilTagOmni
- AprilTags에 대한 카메라 노출 최적화를 설명하기 위해 샘플을 추가합니다: ConceptAprilTagOptimizeExposure
버그 수정
-
AndroidManifest.xml
에 지정된 버전 대신 라이브러리에 정의된 SDK 버전을 사용하여 앱 버전을 보고하도록 검사 화면을 수정했습니다. 이는 앱이 사용자에게 일치하는 버전 번호를 표시할 수 있지만 여전히 버전이 일치하지 않는다고 명시하는 경우를 수정합니다.-
AndroidManifest.xml
에 지정된 버전이 SDK 버전과 일치하지 않으면 SDK 버전 항목이 관리 웹페이지에 표시됩니다.
- Driver Station에서 중복된 이름으로 구성 파일을 저장할 때 표시되는 오류를 수정합니다.
- OpenFTC/EasyOpenCV#57에 나타난 UVC 드라이버의 교착 상태를 수정합니다.
- 카메라를 핫 플러그할 때 발생할 수 있는 UVC 드라이버의 교착 상태를 수정합니다.
- Arducam OV9281 글로벌 셔터 카메라와의 UVC 드라이버 호환성을 수정합니다.
- OpMode 이름이 중복되는 OnBotJava 빌드가 발생할 때 비상 정지 조건을 수정합니다.
- "닫힌 LynxModule 인스턴스 사용 시도" 로그 스팸의 알려진 원인을 수정합니다.
- RS-485를 통해 연결된 확장 허브를 구성할 때 시각적 식별 LED 패턴을 수정합니다.
버전 8.1.1(20221201-150726)
이는 다음 네 가지 문제를 해결하기 위한 버그 수정 전용 릴리스입니다.
- 문제 #492 - 새로운 블록 opmode를 생성할 수 없습니다.
- 문제 #495 - OpMode의 Telemetry 개체에서 최종 수정자를 제거합니다.
- 문제 #500 - Driver Station 앱이 8.1로 업데이트되면 일부 장치를 구성할 수 없습니다.
- 로봇 컨트롤러 앱 또는 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
더 이상 사용하지 않고 존중하지 않습니다.
향상된 기능
- 모든 이전 Control Hub 및 확장 허브에 포함된 원래 BNO055 IMU와 새로운 대체 BHI260AP IMU와 함께 사용할 수 있는 새로운
IMU
인터페이스를 블록 및 Java에 추가합니다.- 웹 인터페이스의 관리 페이지로 이동하여 Control Hub에 있는 IMU 유형을 확인할 수 있습니다.
- 새로운
IMU
인터페이스를 사용하는 방법을 알아보려면 https://ftc-docs.firstinspires.org/programming_resources/imu/imu.html을 참조하세요. SensorIMU
블록 샘플도 새로운 IMU
인터페이스를 사용하도록 업데이트되었으며 다음 Java 샘플이 추가되었습니다.-
SensorIMUOrthogonal
- REV 허브가 로봇 바닥과 평행 또는 수직이 되도록 장착된 경우 이 샘플을 사용하십시오.
-
SensorIMUNonOrthogonal
- REV 허브가 다른 방향으로 로봇에 장착된 경우 이 샘플을 사용하십시오.
-
ConceptExploringIMUOrientations
- 이 OpMode는 직교 방향이 어떻게 작동하는지, 어떤 방향이 로봇에 적용되는지 이해하는 데 도움이 되는 도구입니다.
- BHI260AP IMU는 새로운
IMU
인터페이스를 통해서만 액세스할 수 있습니다. BNO055 IMU는 새로운 IMU
인터페이스를 사용하여 프로그래밍하거나 이전 BNO055IMU
인터페이스를 사용하여 계속 프로그래밍할 수 있습니다. BHI260AP IMU를 포함할 수 있는 새로운 Control Hub로 빠르게 전환할 수 있으려면 새로운 IMU
인터페이스를 사용하도록 코드를 마이그레이션해야 합니다. - REV 허브가 로봇에 평평하게 장착된 경우에만 올바르게 작동했던 이전
BNO055IMU
인터페이스와 달리 IMU
인터페이스를 사용하면 로봇에서 REV 허브의 방향을 지정할 수 있습니다. 이를 설명하고 REV 허브의 특수 좌표계 대신 로봇 좌표계에서 방향을 제공합니다. 결과적으로 REV 허브가 수평일 때가 아니라 로봇이 수평일 때 피치와 요는 0이 되며, 이는 대부분의 장착 방향에 대해 훨씬 더 신뢰할 수 있는 방향 각도 값을 제공합니다. - 새로운 로봇 중심 좌표계로 인해
IMU
인터페이스에서 반환되는 피치 및 롤 각도는 BNO055IMU
인터페이스에서 반환되는 각도와 다릅니다. 코드를 마이그레이션할 때 문서를 주의 깊게 살펴보세요. - BNO055를 교정한 경우
BNO055IMUNew.Parameters
인스턴스를 IMU.initialize()
에 전달하여 해당 교정 데이터를 새 IMU
인터페이스에 제공할 수 있습니다. -
IMU
인터페이스는 쿼터니언 형식의 방향 제공을 지원하는 IMU용 타사 공급업체의 구현에도 적합합니다.
- Iterative
OpMode
s( LinearOpMode
s와 반대)는 이제 전용 스레드에서 실행됩니다.- 사이클 시간은 시스템에서 진행되는 다른 모든 일의 영향을 받아서는 안 됩니다.
- 느린
OpMode
는 더 이상 네트워크 명령을 처리하는 데 걸리는 시간을 늘릴 수 없으며 그 반대의 경우도 마찬가지입니다. -
init()
, init_loop()
, start()
및 loop()
메서드는 더 이상 특정 시간 프레임 내에 반환할 필요가 없습니다.
- BNO055 IMU 레거시 드라이버: 하나의 OpMode에서 초기화하는 기능을 복원한 다음 다른 OpMode에서 해당 초기화를 재사용하도록 합니다. 이를 통해 원하는 경우 OpMode 사이에서 0-yaw 위치를 유지할 수 있습니다.
- FTC SDK에 있는 장치 드라이버의 사용자 정의 버전이 동일한 XML 태그를 사용할 수 있도록 허용합니다.
- 이전에는 장치 드라이버를 사용자 정의하려면 이를 새 클래스에 복사 하고 새 XML 태그를 지정해야 했습니다. 새로운 XML 태그를 제공한다는 것은 사용 중인 드라이버를 전환하려면 구성 파일을 수정해야 함을 의미합니다.
- 이제 사용자 정의 드라이버를 사용하려면
hardwareMap.get()
호출할 때 사용자 정의 드라이버 클래스를 지정하기만 하면 됩니다. 원래 드라이버로 돌아가려면 원래 드라이버 클래스를 지정합니다. 원래 드라이버와 사용자 정의 드라이버 모두에서 구현되는 인터페이스를 지정하는 경우 어떤 구현이 반환될 것인지 보장할 수 없습니다.
버그 수정
- "TensorFlow Lite 모델 관리" 및 "사운드 관리" 링크에 액세스하고 REV 하드웨어 클라이언트에서 블록 및 OnBotJava OpMode 다운로드를 수행하는 문제를 수정합니다.
- I2C 장치 드라이버가 이전 OpMode 실행에서 할당된 매개변수를 사용하여 자동 초기화되는 문제를 해결합니다.
- 가로 레이아웃에서 Driver Station 팝업 메뉴 배치를 개선합니다.
- RC 전화기의 Blocks OpMode에서 구성되지 않은 BNO055 IMU를 가져오려고 시도할 때 NullPointerException을 수정합니다.
- 변수 이름이
orientation
인 경우 블록 관련 문제를 해결합니다.
버전 8.0(20220907-131644)
주요 변경 사항
- 로보콜 버전을 높입니다.
- 이는 8.0 이상의 로봇 컨트롤러 또는 드라이버 스테이션이 7.2 이하의 드라이버 스테이션 또는 로봇 컨트롤러와 통신할 수 없음을 의미합니다.
- 두 앱을 동시에 업데이트하는 것을 잊은 경우 어떤 앱이 오래되어 업데이트해야 하는지 설명하는 오류 메시지가 표시됩니다.
- 이제 I2C 장치 초기화는 처음으로
HardwareMap
에서 검색할 때 발생합니다.- 이전에는 모든 I2C 장치가 실제로 사용 여부에 관계없이 OpMode가 실행되기 전에 초기화되었습니다. 이로 인해 성능이 저하되고 불필요한 경고가 발생할 수 있습니다.
- 이러한 변경으로 인해 Java 사용자는 OpMode의 Init 단계 동안
HardwareMap
에서 필요한 모든 장치를 검색하는 것이 매우 중요합니다. 즉, OpMode가 사용할 각 하드웨어 장치에 대한 변수를 선언하고 각각에 값을 할당합니다. 실행 단계에서는 이 작업을 수행하지 마십시오. 그렇지 않으면 검색 중인 장치가 초기화되는 동안 OpMode가 잠시 중단될 수 있습니다. - 구성 파일에 지정된 모든 I2C 장치를 사용하지 않는 OpMode는 초기화하는 데 더 적은 시간이 걸립니다. 지정된 I2C 장치를 모두 사용하는 OpMode는 이전과 동일한 시간이 소요됩니다.
- BNO055 IMU 드라이버의 각속도 벡터에서 축 회전 속도를 읽는 순서를 변경하여 문제 #251을 해결합니다.
-
BNO055IMU.Parameters
에서 pitchMode
더 이상 사용하지 않습니다.-
pitchMode
PitchMode.WINDOWS
로 설정하면 드라이버에서 사용하는 좌표 규칙이 깨집니다.
-
OpModeManagerImpl
com.qualcomm.robotcore.eventloop.opmode
패키지로 이동합니다.- 이로 인해 타사 라이브러리 EasyOpenCV(버전 1.5.1 이하) 및 FTC 대시보드(버전 0.4.4 이하)가 중단됩니다.
- 더 이상 사용되지 않는
OpMode
메서드 resetStartTime()
삭제합니다(대신 resetRuntime()
사용). - 보호된
LinearOpMode.LinearOpModeHelper
클래스(OpModes에서 사용하기 위한 것이 아님)를 삭제합니다. - I2C 장치(동기식) 구성 유형 제거(2018년부터 더 이상 사용되지 않음)
향상된 기능
- OpModes에서 포착되지 않은 예외에는 더 이상 로봇 재시작이 필요하지 않습니다.
- 스택 추적과 함께 나타나는 블루 스크린은 SDK 오류가 아닙니다. 이는 원격 측정 영역의 빨간색 텍스트를 대체합니다.
- 첫 번째 SDK 릴리스 이후 OpMode 충돌로 인해 로봇이 "비상 정지" 상태가 되어 예외의 첫 번째 줄만 표시되고 계속하려면 사용자가 "로봇 다시 시작"을 눌러야 합니다.
- OpMode 중 예외는 이제 로그 뷰어와 동일한 색 구성표로 팝업 창을 엽니다. 여기에는 15줄의 예외 스택 추적이 포함되어 있어 ADB를 통해 로그를 보기 위해 연결하거나 대량의 로그를 스크롤할 필요 없이 문제가 되는 줄을 쉽게 추적할 수 있습니다. 로그 뷰어에서
- 팝업 창의 예외 텍스트는 웹페이지처럼 확대/축소 및 스크롤이 가능합니다.
- 팝업 창에서 "확인" 버튼을 누르면 드라이버 스테이션의 메인 화면으로 돌아가고 "로봇 다시 시작"을 수행할 필요 없이 OpMode를 즉시 다시 실행할 수 있습니다.
- 하드웨어 클래스를 사용하여 로봇 액추에이터를 추상화하고 여러 OpMode에서 공유하는 방법을 보여주는 새로운 Java 샘플을 추가합니다.
- 샘플 OpMode는 ConceptExternalHardwareClass.java입니다.
- 추상화된 하드웨어 클래스는 RobotHardware.java입니다.
- REV 제어/확장 허브 IMU를 사용하도록 RobotAutoDriveByGyro_Linear Java 샘플을 업데이트합니다.
- PowerPlay 자산을 참조하고 이미지 대상의 올바른 이름과 필드 위치를 갖도록 Vuforia 샘플을 업데이트합니다.
- PowerPlay 자산을 참조하도록 TensorFlow 샘플을 업데이트합니다.
- OnBotJava 편집기에 Java 8 언어 기능에 대한 옵트인 지원을 추가합니다.
- 참여하려면 OnBotJava 설정을 열고
Enable beta Java 8 support
선택하세요. - Java 8 코드는 로봇 컨트롤러가 Android 7.0 Nougat 이상을 실행할 때만 컴파일됩니다.
- 여기에서 문제를 보고해 주세요.
- OnBotJava에서 빌드 오류를 클릭하면 이제 올바른 위치로 올바르게 이동합니다.
- 대부분의 경우 더 나은 완료 옵션을 제공하기 위해 Onbotjava 자동 완성 동작을 향상시킵니다.
- 경쟁에서 검사관이 스캔하기 위해 드라이버 스테이션에서 볼 때 로봇 컨트롤러 검사 보고서에 QR 코드를 추가합니다.
- 일부 시나리오에서 I2C 성능 및 신뢰성을 향상시킵니다.
버전 7.2 (20220723-130006)
변화를 깨뜨립니다
- 빌드 툴링을 업데이트합니다. Android Studio 사용자의 경우이 변경에는 Android Studio Chipmunk 2021.2.1이 필요합니다.
- 최신 로봇 핵심 핵심 모듈, 매트릭스 컨트롤러 및 Hitechnic/NXT 컨트롤러 및 센서를 포함하여 경쟁이지 않은 장치에 대한 지원을 제거합니다. 최신 로봇 I2C 센서에 대한 지원이 남아 있습니다.
향상
- 드라이버 스테이션의 3 점 조경 메뉴 터치 영역의 높이를 증가시켜 선택하기가 훨씬 쉽습니다.
- Opmodes가 즉시 깨끗하게 자체적으로 설정할 수 있도록
terminateOpModeNow()
메소드를 추가합니다. - init-loops를 용이하게하기 위해
LinearOpMode
에 opModeInInit()
메소드를 추가합니다. opModeIsActive()
와 유사하지만 초기 단계. - DirectInput 모드로 설정된 Logitech F310 GamePad가 연결된 경우 사용자에게 경고합니다.
- SparkMini 모터 컨트롤러가 변화 속도 속도에 더 빨리 반응 할 수 있습니다.
- 검사 화면에서 잘못 설치된 자매 앱 (예 : RC 장치 또는 그 반대로 설치된 DS)의 버전 번호를 숨 깁니다.
- 사용자가 RunopMode 블록에 대한 주석을 편집 할 수 있도록 지원을 추가합니다.
- @ExportToBlocks에 ParameterDefaultValues 필드를 추가합니다. 이는 블록 편집기에 표시 될 때 메소드 매개 변수에 대한 기본값을 지정하기 위해 @ExportToBlocks 주석을 가진 Java 메소드의 기능을 제공합니다.
- LinearOpmode 블록을 더 읽기 쉽게 만듭니다. Opmode 이름은 RunopMode 블록에 표시되지만 다른 LinearOpmode 블록에는 표시되지 않습니다.
- vuforia 대신 다른 프레임 생성기를 사용하기위한 Tensorflow 객체 감지에지지를 추가했습니다. Vuforia를 사용하여 카메라 프레임을 TFOD로 전달하는 것이 여전히 지원됩니다.
- 렌더 스크립트 사용을 제거합니다.
-
"Failed resolution of: Landroid/net/wifi/p2p/WifiP2pManager$DeviceInfoListener"
- 검사 화면에서 Bluetooth 라디오를 비활성화 할 수 있습니다
- I2C 장치가 응답하지 않을 때 경고 메시지를 향상시킵니다
- Opmodes의 PS4/Etpark Gamepad에 존재하는 RGB LED 제어에 대한 지원이 추가됩니다.
- Opmode 샘플에서 레거시 푸시 보트 참조를 제거합니다. "PushBot"샘플을 "로봇"으로 바꾸십시오. 모터 방향은 "Direct Drive"드라이브 트레인과 호환되도록 역전되었습니다.
버그 수정
- 수정 문제 #316 (matrixf.inverted ()는 1x1 및 2x2 행렬에 대해 잘못된 크기의 행렬을 반환했습니다).
- 자체 검사는 이제 포인트 릴리스 간의 드라이버 스테이션과 로봇 컨트롤러 호환성을 허용합니다.
- 버그 수정 버그가 여러 게임 패드에 대해 동일한
RumbleEffect
객체 인스턴스가 대기되는 경우 두 럼블 명령이 하나의 게임 패드로 전송 될 수 있습니다. - 드라이버 허브에서 고급 게임 패드 기능이 비활성화되고 공식적으로 지원되는 게임 패드가 연결된 경우 드라이버 스테이션의 버그 수정 후 고급 게임 패드 기능 또는 게임 패드 유형을 여는 스크린을 열면 사용자 정의 USB 드라이버가 게임 패드를 리바운드 할 수 있습니다. 고급 게임 패드 기능이 비활성화되었습니다.
- vuforia localizer에서 널 포인터 예외를 보호합니다.
- Onbotjava를 강화하고 블록 저장은 프로그램 및 관리에서 분리 할 때 저장 문제로부터 보호하기 위해 저장됩니다.
- 이전 I2C 작업이 여전히 진행 중이기 때문에 Rev Hub I2C Write가 실패하면 RC 앱이 중단되는 문제를 해결합니다. 이것은 Rev 2m 거리 센서 초기화에서 가장 일반적으로 발생했습니다.
- ConceptWebcam.java 샘플 프로그램을 제거합니다. 이 샘플은 Onbotjava와 호환되지 않습니다.
- @ExportToBlocks에서 html 태그를 사용하는 경우 버그를 수정하면 필드 필드가 블록 편집기가로드되는 것을 방지했습니다.
- 블록 편집기를 수정하여 수정하지 않았을 때 저장을 요구하지 않습니다.
- 오프라인 블록에 편집기에 매우 큰 블록 프로젝트를 업로드하는 수정.
- 블록 편집기 도구 상자에서 dcmotorex의 블록을 생략 한 버그를 수정합니다.
- 수정 블록 블록이 블록을 제거합니다 (텐서 플로우 레이블 블록 사용으로 인해)
버전 7.1 (20211223-120805)
-
isPwmEnabled()
호출 할 때 충돌을 수정합니다 (문제 #223). - 보풀 오류를 수정합니다 (문제 #4).
- 고급 게임 패드 기능이 활성화 된 DualShock4 V1 게임 패드를 사용하려고 할 때 드라이버 스테이션 충돌을 수정합니다 (문제 #173).
- 모든 유형의 게임 패드를 연결할 때 드라이버 스테이션이 발생할 수있는 (그러나 가능성이 낮은) 드라이버 스테이션을 수정합니다.
- 고급 게임 패드 기능이 비활성화 된 경우 Driver Station이 Xbox360 및 Logitech F310 게임 패드를 사용하는 일반 20% Deadzone을 사용하는 버그 수정.
- SimpleomNidrive 샘플 opmode가 추가되었습니다.
- UVC White Balance Control API를 추가합니다.
- 수정 문제 #259 텐서 플로우의 대부분의 블록 샘플은 다른 모델에 사용할 수 없습니다.
- 이전에 라벨링 된 TensorFlowObjectDetectionFreightFrenzy ( "Freight Frenzy를 위해 최적화 된 하위 범주에서)와 TensorflowoBjectDetectionCustommodel ("Custom Model "이라는 하위 범주에서)은 TensorflowBjectDetection이라는 블록으로 대체되었습니다. 기존 OPMODE의 블록은 블록 편집기에서 열 때 새 블록으로 자동 업데이트됩니다.
- 수정 문제 #260 블록은 vuforialocalizer 매개 변수가있는 Java 메소드를 호출 할 수 없습니다.
- 블록에는 이제 블록이 Vuforiafreightfrenzy.getVuforialocalizer라는 블록이 있습니다.
- /sdcard/first/tflitemodels의 텐서 플로우 라이트 모델을 관리하기위한 페이지를 추가했습니다. tflite 모델 페이지로 이동하려면 :
- 관리 페이지 하단의 링크를 클릭 할 수 있습니다.
- 오른쪽 상단의 블록 프로젝트 페이지에서 링크를 클릭 할 수 있습니다.
-
isBusy()
RTP 모드가 아닌 모터에서 호출되면 logspam을 수정합니다. - 전화 기반 로봇 컨트롤러의 검사 화면에서 "RC 비밀번호"항목을 숨 깁니다. (제어 허브에만 적용됩니다).
- 설정 화면에서 채널 165에 Wi-Fi 직접 채널 선택 메뉴를 추가합니다. (165는 이전에 웹 UI를 통해 사용할 수 있었지만 앱에서는 로컬로 제공되지 않았습니다).
버전 7.0 (20210915-141025)
향상 및 새로운 기능
- Onbotjava 및 블록에 외부 라이브러리를 지원합니다.
- Onbotjava에 .jar 및 .aar 파일을 업로드하십시오.
- 알려진 제한 - RobotController 장치는 Android 7.0 이상을 실행해야합니다.
- 알려진 제한 - 자산이있는 AAR 파일은 지원되지 않습니다.
- 외부 라이브러리는 com.qualcomm.robotcore.hardware.configuration.annotations 패키지에 주석을 사용하여 하드웨어 장치를 지원할 수 있습니다.
- 외부 라이브러리에는 기본 코드 용 .SO 파일이 포함될 수 있습니다.
- Onbotjava Opmodes에서 외부 라이브러리를 사용할 수 있습니다.
- 다음 주석을 사용하는 외부 라이브러리는 블록 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.oncreateventLoop
- org.firstinspires.ftc.ftccommon.external.oncreatemenu
- org.firstinspires.ftc.ftccommon.external.ondestroy
- org.firstinspires.ftc.ftccommon.external.webhandlerregistrar
- Rev Robotics Driver Hub에 대한 지원을 추가합니다.
- Driver Station에 완전히 사용자 정의 사용자 공간 USB GamePad 드라이버를 추가합니다 (DS 설정의 "Advanced GamePad 기능"메뉴 참조).
- 기본 Linux 커널 지원 (예 : 루마니아 모토로라 장치)없이 기기에서 게임 패드가 작업 할 수 있습니다.
- DS가 각 게임 패드의 고유 일련 번호를 읽을 수 있도록하여 동일한 모델의 두 게임 패드가 삭제하더라도 삭제 된 게임 패드를 자동 복구 할 수 있습니다. (참고 : 불행히도 이것은 Etpark 게임 패드에는 고유 한 연재물이 없기 때문에 적용되지 않습니다) .
- 고유 한 일련 번호를 읽으면 기본적으로 게임 패드를 특정 위치에 할당하기 위해 DS를 구성하는 기능도 제공합니다 (따라서 시작+A/B를 전혀 수행 할 필요가 없습니다).
- Xbox360 게임 패드의 LED 링과 PS4 게임 패드의 RGB LED 막대는 게임 패드가 바인딩되는 드라이버 위치를 나타내는 데 사용됩니다.
- Xbox360, PS4 및 Etpark 게임 패드의 Rumble Motors는 OPMODE에서 제어 할 수 있습니다.
- PS4 게임 패드의 2 점 터치 패드는 OpModes에서 읽을 수 있습니다.
- 게임 패드의 "뒤로"및 "가이드"버튼은 이제 로봇 컨트롤에 안전하게 바인딩 될 수 있습니다 (이전의 많은 장치에서 Android는 홈 버튼을 누르고 앱을 닫습니다).
- 고급 게임 패드 기능은 기본적으로 활성화되지만 Android가 제공 한 GamePad 지원으로 되돌리기 위해 설정 메뉴를 통해 비활성화 될 수 있습니다.
- 핑 측정의 정확도를 향상시킵니다.
- 로봇에 처음 연결하거나 다시 시작할 때 핑 타임이 현실보다 높은 것으로 보이는 문제를 해결합니다.
- 전체 개선을 보려면 로봇 컨트롤러 및 드라이버 스테이션 앱을 모두 업데이트해야합니다.
- /ftcrobotcontroller/src/main/java/org/firstinspires/ftc/robotcontroller/외부/샘플에 위치한 샘플을 업데이트합니다.
- 이 새로운 Gampad 기능의 사용을 설명하기 위해 ConceptGamePadRumble 및 ConceptGamePadTouchPad 샘플을 추가했습니다.
- 기존 Vuforia 샘플을 단지 2 개의 샘플 (ConceptVuforiafieldNavigation & ConceptVuforiaFieldNavigationWebCAM)으로 보냈습니다. 이들은 현재 시즌의 대상 이미지를 사용합니다.
- 개념 Vuforia 대상으로 직접 운전할 수있는 쉬운 방법을 설명하기 위해 ConceptVuforiadrivetotArgetWebcam을 추가했습니다.
- 경고 시스템과 개인 경고를 많이 개선합니다.
- 경고는 이제 훨씬 더 간격을 두어 읽기 쉽습니다.
- 경쟁하기 전에 해결해야 할 조건에 대한 새로운 경고가 추가되었습니다.
- 불일치 한 앱 경고는 이제 버전 코드가 아닌 메이저 및 마이너 앱 버전을 사용합니다.
- 새로운 FTC 시즌의 로봇 컨트롤러 앱이 설치되면 경고는 자동으로 다시 활성화됩니다.
- 레지스터 주소를 지정하지 않고 확장 허브 / 컨트롤 허브에서 I2C 트랜잭션에 대한 지원을 추가합니다.
- TI I2C 사양의 섹션 3을 참조하십시오.
- 최신 로봇 공학 하드웨어를 사용할 때 이러한 새로운 방법을 호출하면 지원되지 않은 정보가 나타납니다.
- vuforialocalizer
close()
메소드를 공개하도록 변경합니다. - 텐서 플로우 V2 객체 감지 모델에 대한 지원을 추가합니다.
- 자체 검사 언어 및 그래픽의 모호성을 줄입니다.
- Onbotjava는 이제 잠재적으로 의도하지 않은 파일을 덮어 쓰는 것에 대해 경고합니다.
- 웹 페이지 관리에서 Wi-Fi 대역 및 채널 선택기의 동작을 향상시킵니다.
버그 수정
- 드라이버 스테이션이 연결되면 Android 9+에서 로봇 컨트롤러 앱 충돌을 수정합니다.
- Opmode가 Tensorflow tfobjectDetector에서 종료를 호출 할 책임이있는 문제 해결 문제. 이제 이것은 자동으로 수행됩니다.
- Vuforia 초기화 블록을 수정하여 사용자가 Axesorder를 선택할 수 있습니다. 업데이트 된 관련 블록 샘플 opmodes.
- FTCROBOTCONTROLLER 문제 #114 LED 블록 및 Java 클래스가 작동하지 않습니다.
- 이름에 특수 문자가 포함 된 OPMODE에 대한 일치 기록을 수정합니다.
- 수정 드라이버 스테이션 Opmode 컨트롤은 드라이버 스테이션이 조경 레이아웃으로 설정되고 Opmode가 실행 중에 Onbotjava 빌드가 트리거되면 응답하지 않습니다.
- 드라이버 스테이션 앱이 멀어 지거나 화면이 꺼질 때 자체를 닫습니다.
- 이전 장치에서 "Black Swirl of Doom"(무한 "Wi-Fi Direct"메시지 구성)을 수정합니다.
- Onbotjava 인트로 페이지에서 Wiki 의견을 업데이트합니다.
버전 6.2 (20210218-074821)
향상
- 컨트롤 허브의 내부 확장 허브가 펌웨어를 다시 플래시하여 작동하지 않는 상태를 자동으로 수정하려고 시도합니다.
- 특히 조경 모드에서 Wi-Fi 직접 페어링 화면을 다양한 개선합니다.
- 주 활동이 전경으로 가져 오면 로봇 컨트롤러 서비스를 더 이상 범주 적으로 다시 시작하지 않습니다.
- (예 : 자체 검사 화면을보고 뒤로 버튼을 누르면 서비스가 더 이상 다시 시작되지 않습니다)
- 설정 메뉴 또는 로봇 메뉴가 열리면 여전히 다시 시작됩니다.
버그 수정
- 수정 FTCROBOTCONTROLLER 문제 #71 v6.1 블록 오프라인 편집기에서 OpModes를 열 수 없습니다.
- 수정 FTCROBOTCONTROLLER 문제 #79 6.1 Motorola E5 플레이에서 소프트 재부팅을 유발합니다.
- Control Hub가 내부 확장 허브와 통신 할 수없는 경우 Control Hub OS의 Watchdog가 로봇 컨트롤러 앱을 다시 시작하는 문제를 해결합니다.
- 적절한
HardwareMap
필드에 나타나지 않는 특정 I2C 장치 (예 : hardwareMap.colorSensor
)를 수정합니다. - Control Hub에서 Wi-Fi Factory Reset을 수행하면 Wi-Fi 대역을 2.4GHz로 설정하지 않는 문제가 해결됩니다.
- "구성된 하드웨어를위한 코드 설정"옵션이 선택된 경우 Onbotjava가 새 파일을 생성하지 못할 수있는 문제 수정
- Opmode 충돌 후 특정 작업을 수행하는 경우 문제를 해결합니다. 일시적으로 제어/확장 허브 커뮤니케이션
- 확장 허브가 시작시 확장 허브가 누락 된 경우 구성된 USB 연결 확장 허브가있는 컨트롤 허브가 작동하지 않는 경우 문제를 해결합니다.
- 제어/확장 허브 펌웨어 버전이 불일치하여 발생하는 잠재적 인 문제를 해결합니다.
- 수정 FTC_APP 문제 673 최신 매치 로그가 robotlog에 의해 오래된 것 대신 삭제됩니다.
- 수정 로봇의 카메라를 올바르게 방향으로 배향하여 ConceptVuforiaultimateGoalNavigationWebCAM Opmode를 수정합니다.
- 드라이버 스테이션에서 정지를 요청할 때 LOGCAT가 중단 외상으로 스팸을 보낼 수있는 문제 (이 동작은 실수로 v5.3에 도입되었습니다). 이 변경은 기능에 영향을 미치지 않습니다.
- Teleop Opmode의 이름에 Apostrophe가 포함 된 경우 Blocks 편집기가로드되지 않는 문제를 해결합니다.
버전 6.1 (20201209-113742)
- 구성 화면에서 스캔 버튼을 만들면 RS-485를 통해 연결된 확장 허브 목록을 업데이트합니다.
- 이전 브라우저 및 Android 시스템 WebView 버전과 웹 인터페이스 호환성을 향상시킵니다.
- UVC 드라이버의 문제 해결 문제는 프레임 간격이 잘린 값 (예 : 15fps의
666667*100ns
대신 666666*100ns
)이 아닌 둥근으로보고 된 일부 카메라 (예 : 특정 MS Lifecams)가 스트리밍을 시작하지 않는 경우 문제를 해결합니다. - 가상 PTZ 제어를 위해 UVC 드라이버에서 지원을 추가합니다
- Gain (ISO) 컨트롤을위한 UVC 드라이버에서 지원을 추가합니다
- AE 우선 순위를 활성화/비활성화하기 위해 UVC 드라이버에서 지원을 추가합니다. 이 설정은 카메라 펌웨어를 알려주는 수단을 제공합니다.
- a) 이론적으로 더 나은 이미지를 제공하기 위해 요청 된 프레임 속도를 언더 슈트 할 수 있습니다 (즉, 선택한 프레임 속도의 프레임 간 기간보다 더 긴 노출이 더 길어짐)
- b) 이미지가 결과적으로 표시되지 않은 경우에도 선택된 프레임 속도에 대한 프레임 간 마감일을 충족 해야합니다 .
- Control Hub OS 1.1.2 로봇 컨트롤러 Watchdog에 대한 지원 추가
- 로봇 컨트롤러 앱이 10 초 이상 응답을 중지하면 다시 시작됩니다.
- Android 10+에서 드라이버 스테이션 앱 사용에 대한 지원이 추가됩니다.
- 자동 텔레오프 사전 선택 기능을 소개합니다
- 자세한 내용 및 사용 안내서는이 Wiki 항목을 참조하십시오.
- 드라이버 스테이션의 OpMode 목록 드롭 다운에서 OpMode 이름 옆에 아이콘이 표시되어 OpMode의 소스를 나타냅니다 (즉,이를 작성하는 데 사용되는 프로그래밍 도구).
- Wi-Fi 직접 화면 구성을 표시 한 후 드라이버 스테이션 앱이 종료되는 문제 수정 문제
- Rev 하드웨어 클라이언트를 통해 액세스 할 때 블록 및 Onbotjava 프롬프트를 수정합니다.
버전 6.0 (20200921-085816)
중요 사항
- 버전 6.0은 Ultimate 목표 시즌의 버전입니다.
- Android Studio 4.0이 필요합니다.
- Android Studio 사용자는 처음으로 앱을 구축 할 때 인터넷에 연결해야합니다 (빌드에 필요한 패키지를 다운로드하기 위해).
- 버전 5.5는 2020 년 8 월에 적당히 큰 오프 시즌이었습니다. 아래 릴리스 노트도 검토 할 가치가 있습니다.
- 버전 5.5 이상은 구형 Android 4.x 및 5.x 전화에서 작동하지 않습니다. 사용자는 승인 된 Android 6.x 장치 또는 최신 장치로 업그레이드해야합니다.
- Rev Motors의 기본 PIDF 값은 2018-2019 시즌에 사용 된 기본 PID 값으로 되돌아갔습니다.
- 이 변경은 2018-2019 값이 많은 메커니즘에 더 잘 작동하기 때문에 이루어졌습니다.
- 이것은 다른 모든 모터의 행동에 따라 Rev Motors의 행동을 가져옵니다.
- Rev Motors에 대한 2019-2020 시즌의 행동을 선호하는 경우 PIDF 값은 다음과 같습니다.
HD Hex Motors (모든 기어 박스) : 속도 PIDF 값 : P = 1.17
, I = 0.117
, F = 11.7
위치 PIDF 값 : P = 5.0
코어 육각 모터 : 속도 PIDF 값 : P = 4.96
, I = 0.496
, F = 49.6
위치 PIDF 값 : P = 5.0
새로운 기능
- 텐서 플로우 추론 모델 및 샘플 옵 모드가 포함되어 궁극적 인 골 스타터 스택 (4 링 대 단일 링 스택)을 감지합니다.
- Vuforia Ultimate Goal Vision Targets 및 Sample Opmodes를 포함합니다.
- 텐서 플로우 객체 감지를위한 디지털 줌 기능을 소개합니다 (더 먼 거리에서 물체를보다 정확하게 감지하기 위해).
- Rev UltraPlanetary HD Hex 모터에 대한 구성 항목 추가
향상
- setgain () 및 getGain () 메소드를 표준화 된 colorsensor 인터페이스에 추가합니다
- 컬러 센서의 게인을 설정하면 다양한 조명 조건에 맞게 조정할 수 있습니다. 예를 들어, 예상보다 낮은 색 값을 감지하면 게인을 증가시킬 수 있습니다.
- 게인 값은 원시 색상 방법이 아닌 argB () 및 getNormalizedColors () 메소드에만 적용됩니다. argb ()를 변환해야하므로 getNormalizedColors () 메소드는 사용 편의성과 명확성을 위해 권장됩니다.
- SensorColor Java 샘플을 업데이트하여 게인 사용량을 보여줍니다
- SensorRevColordistance Java 샘플을 SensorColor Java 샘플로 통합하여 모든 컬러 센서에 대한 모범 사례를 보여줍니다.
- Rev Color Sensor v3에서 값 검색을 향상시킵니다
- RGB 채널의 정규화 계산을 업데이트합니다
- 알파 채널의 계산을 향상시킵니다 (전체 밝기 지표로 사용될 수 있음)
- 기본 센서 해상도를 수정하여 밝은 환경에 문제가 발생했습니다.
- Broadcom 센서 칩의 해상도 및 측정 속도 변경에 대한 지원이 추가됩니다.
- Broadcom 센서 칩에 대한 IR 판독 및 계산 제거
버그 수정
- 무작위 초기화 실패를 방지하기 위해 BNO055IMU IMU 초기화의 신뢰성을 향상시킵니다 (
Problem with 'imu'
가 있음).
버전 5.5 (20200824-090813)
버전 5.5에는 Android Studio 4.0 이상이 필요합니다.
새로운 기능
- 블록 opmodes에서 사용자 정의 Java 클래스를 호출하는 데 도움이됩니다 (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, Telemetry 및 HardWaremap으로 선언 된 매개 변수는 지원되며 매개 변수의 순서에 관계없이 인수가 자동으로 제공됩니다. 블록에서는 해당 매개 변수의 소켓이 자동으로 채워집니다.
- char 또는 java.lang.character로 선언 된 매개 변수는 텍스트를 반환하는 블록을 수락하고 텍스트에서 첫 번째 문자 만 사용합니다.
- 부울 또는 java.lang.boolean으로 선언 된 매개 변수는 부울을 반환하는 블록을 수락합니다.
- 바이트, 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 (특정 태그 만)
- 카메라 스위칭에 대한 블록 지원을 추가합니다.
- 사용자 정의 모델로 텐서 플로우 객체 감지를 지원합니다.
- 관리 페이지에서 사용자 정의 텐서 플로우 객체 감지 모델 업로드에 대한 지원이 추가되며 블록 및 Onbotjava 사용자에게 특히 유용합니다.
- Control Hub의 버튼을 사용하여 Wi-Fi 대역이 전환 될 때 새로운 Control Hub Blink 코드를 보여줍니다 (Control Hub OS 1.1.2에서만 가능).
- 고급 RC 설정에서 비활성화 할 수있는 새로운 경고 추가
- 일치하지 않는 앱 버전 경고
- 불필요한 2.4GHz Wi-Fi 사용 경고
- Rev Hub는 구식 펌웨어를 실행 중입니다 (버전 1.8.2 이상)
- Sony PS4 GamePad에 대한 지원을 추가하고 운전자 스테이션에서 GamePad가 작동하는 방법을 재 작업합니다.
- 드라이버 위치에 따라 게임 패드 유형을 설정하는 환경 설정을 제거합니다. 알 수없는 VID 및 PID가있는 게임 패드의 유형을 지정할 수있는 메뉴로 대체
- USB VID 및 PID를 기반으로 게임 패드 유형을 자동화하려는 시도
- GamePad Vid와 PID가 알려지지 않은 경우 해당 VID 및 PID에 대해 사용자가 지정된 유형을 사용하십시오.
- GamePad Vid와 PID가 알려지지 않았고 사용자가 해당 VID 및 PID에 대한 유형을 지정하지 않은 경우 GamePad를 매핑하는 방법에 대한 교육 된 추측이 이루어집니다.
- 드라이버 스테이션은 이제 게임 패드 연결에서 자동으로 복구하고 떨어 뜨릴 때 할당 된 위치에 다시 할당하려고 시도합니다.
- 하나의 게임 패드 만 지정되고 떨어지면 : 복구 할 수 있습니다.
- 두 개의 게임 패드가 할당되고 다른 VID/PID 서명이 있고 한 방울 만 있으면 : 복구됩니다.
- 두 개의 게임 패드가 할당되어 있고 다른 VID/PID 서명이 있고 둘 다 낙하하는 경우 : 둘 다 복구됩니다.
- 두 개의 게임 패드가 할당되어 있고 동일한 VID/PID 서명이 있고 한 방울 만 있으면 : 복구됩니다.
- 두 개의 게임 패드가 할당되어 있고 동일한 VID/PID 서명을 가지고 있고 둘 다 드롭 : USB 버스에 다시 나타날 때 게임 패드의 모호성 때문에 복구되지 않습니다 .
- 현재 알려진 Edge Case가 있습니다 : 동일한 VID/PID 서명이 연결된 두 개의 게임 패드가 있지만 하나만 지정 되고 둘 다 떨어지면 자동 복구를 위해 50-50의 확률로 선택됩니다. 할당 된 위치 : USB 버스 컨트롤러에 의해 먼저 재화 된 사람에 의해 결정됩니다.
- 드라이버 스테이션에 Landscape 사용자 인터페이스를 추가합니다
- 새로운 기능 : 오디오 큐가있는 연습 타이머
- 새로운 기능 (제어 허브 만 해당) : 무선 네트워크 연결 강도 표시기 (0-5 바)
- 새 기능 (제어 허브 만 해당) : Ping/Channel 디스플레이의 탭핑은 Radive RX DBM 및 링크 속도를 보여주는 대체 디스플레이로 전환됩니다 (다시 전환하려면 다시 탭)
- 레이아웃은 자동으로 표시되지 않습니다. 드라이버 스테이션 설정 메뉴에서 레이아웃을 전환 할 수 있습니다.
변화를 깨뜨립니다
- Android 버전 4.4 ~ 5.1 (Kitkat 및 Lollipop)에 대한 지원을 제거합니다. Minsdkversion은 이제 23입니다.
- 감가 상각 된
waitOneFullHardwareCycle()
로 LinearOpMode
메소드를 제거합니다 waitForNextHardwareCycle()
향상
- 제어 허브의 RS485 주소를 자동으로 처리합니다
- 제어 허브에는 자동으로 예약 된 주소가 제공됩니다
- 기존 구성 파일은 계속 작동합니다
- 1-10 범위의 모든 주소는 여전히 확장 허브에 사용할 수 있습니다.
- 컨트롤 허브 라이트는 이제 주소를 표시하기 위해 깜박이지 않고 일반적으로 단단합니다.
- 컨트롤 허브는 확장 허브 주소 변경 설정 페이지에 표시되지 않습니다.
- Rev Hub 펌웨어 업데이트를 향상시킵니다
- 사용자는 이제 사용 가능한 모든 펌웨어 업데이트 파일 중에서 선택할 수 있습니다.
- Rev Hub 펌웨어의 버전 1.8.2는 로봇 컨트롤러 앱에 번들로 제공됩니다.
- 확장 허브는 USB를 통해서만 업데이트 될 수 있음을 명확히하기 위해 텍스트가 추가되었습니다.
- 신뢰성을 향상시키기 위해 펌웨어 업데이트 속도가 감소했습니다
- Rev Hub 펌웨어는 관리 웹 페이지에서 직접 업데이트 할 수 있습니다.
- 로봇 컨트롤러에서 로그 뷰어를 향상시킵니다
- 수평 스크롤 지원 (더 이상 랩핑되지 않음)
- 핀치-Zoom을 지원합니다
- 모노 스케이스 글꼴을 사용합니다
- 오류 메시지가 강조 표시됩니다
- 새로운 색 구성표
- 전체 응용 프로그램을 다시 시작하지 않고 런 어웨이/스톡 오피 모드를 강제로 스토킹하려고 시도합니다.
- 모든 유형의 런 어웨이 조건이 멈출 수있는 것은 아니지만 사용자 코드가 런 어웨이 중에 하드웨어와 대화하려고하면 시스템을 캡처 할 수 있어야합니다.
- 자체 검사 화면에 다양한 조정을 만듭니다
- "OS 버전"항목으로 "Android 버전"이름을 바꿉니다.
- "Wi-Fi Direct Name"을 "Wi-Fi Name"으로 바꿉니다.
- 컨트롤 허브 보고서를 볼 때 Control Hub OS 버전 추가
- 컨트롤 허브 보고서를 볼 때 비행기 모드 항목을 숨 깁니다.
- ZTE Speed Channel Changer의 점검을 제거합니다
- 모든 확장 및 제어 허브에 대한 펌웨어 버전을 보여줍니다
- 재 작업 네트워크 설정 페이지 관리 페이지
- 모든 네트워크 설정은 이제 단일 클릭으로 적용됩니다.
- 전화 기반 로봇 컨트롤러의 Wi-Fi Direct 채널은 이제 관리 페이지에서 변경할 수 있습니다.
- Wi-Fi 채널은 대역 (2.4 vs 5GHz)으로 필터링되고 다른 채널과 겹치는 지 여부
- 현재 Wi-Fi 채널은 전화 기반 로봇 컨트롤러에서 사전 선택되며 OS 1.1.2 이상을 실행하는 컨트롤 허브입니다.
- OS 1.1.2 이상을 실행하는 컨트롤 허브에서 시스템이 5GHz 대역에서 채널을 자동으로 선택하도록 선택할 수 있습니다.
- Onbotjava를 향상시킵니다
- 새로운 밝고 어두운 테마는 오래된 테마 (혼돈, Github, Chrome, ...)를 대체합니다.
- 새로운 기본 테마는
light
이며이 버전으로 처음 업데이트 할 때 사용됩니다.
- Onbotjava에는 이제 탭 편집기가 있습니다
- 읽기 전용 오프라인 모드
- 로봇 컨트롤러 및 드라이버 스테이션에서 "종료"메뉴 항목의 기능 향상
- 이제 메모리에서 완전히 멈추고 언로드 할 수 있습니다.
- 시작 조건을 모니터링하지 않아 LinearOpmode가 조기에 존재하는 경우 경고 메시지를 보여줍니다.
- 드라이버 스테이션과 로봇 컨트롤러가 서로 호환되지 않을 때 표시된 오류 메시지 향상
- 드라이버 스테이션 Opmode 제어판이 다시 시작되는 동안 비활성화되었습니다.
- 로봇 컨트롤러가 컨트롤 허브 인 경우 Wi-Fi Direct와 관련된 고급 설정을 비활성화합니다.
- 낮거나 중요 할 때 드라이버 스테이션의 전화 배터리 아이콘.
- 새 구성 파일에서 이름 "제어 허브 포털"및 "제어 허브"(적절한 경우)를 사용합니다.
- I2C 읽기 성능을 향상시킵니다
- 제어 허브에 대한 매우 큰 개선; 작은 (예 : 6 바이트) 읽기로 최대 ~ 2 배 더 빠릅니다.
- 전화에 연결된 확장 허브에서는 분명하지 않습니다.
- 빌드 인프라 업데이트/새로 고침
- 'com.android.support:appcompat'의 'Androidx'지원 라이브러리로 업데이트
- TargetSdKversion 및 CompilesDKversion을 28로 업데이트하십시오
- Android Studio의 Android 플러그인을 최신으로 업데이트하십시오
- 보고 된 Build Timestamp에서 'About'화면에서 수정하십시오
- 수동 웹캠 사용 : ConceptWebcam을 설명하는 샘플 추가
버그 수정
- Skystone 문제 #248을 수정합니다
- Skystone Issue #232를 수정하고 대량 캐싱 의미를 수정하여 캐시 보존 매뉴얼/자동 전환을 허용합니다.
- Rev 2m 거리 센서가 뽑을 때 성능을 향상시킵니다
- 특정 장치에서 토스트 메시지의 가독성을 향상시킵니다
- 드라이버 스테이션이 로봇 컨트롤러에 연결할 수 있도록합니다.
- 실제 일련 번호를 제공하지 않는 UVC 카메라의 가짜 일련 번호 생성을 향상시킵니다.
- 이전에는 일부 장치가 해당 카메라를
0:0
의 직렬로 할당하고 열리지 않고 스트리밍을 시작합니다. - FTC_APP 문제 #638을 수정합니다.
- Vuforia 카메라 모니터를 포함하여 많은 버그를 수정합니다.
- 미리보기가 기발 된 종횡비로 표시 될 수있는 버그 수정
- 조경에서 미리보기를 차단할 수있는 버그 수정
- 전화를 회전 할 때 미리보기가 완전히 엉망이 된 버그 수정
- 웹캠을 사용할 때 Crosshair가 대상을 표류 할 수있는 버그 수정
- 일부 장치에서 UVC 드라이버의 문제 해결 (FTC_APP 681) 스트리밍이 시작/여러 번 연속으로 중지 된 경우
- 이 커널 패치가없는 장치에서 문제는 커널 공황으로 나타납니다.
- 패치가 있는 영향을받는 장치에서 문제는 단순히 스트리밍을 시작하지 않는 것으로 나타났습니다.
- 기술 팀은이 문제의 근본 원인이 Linux 커널 XHCI 드라이버의 버그라고 생각합니다. SDK UVC 드라이버에서 해결 방법이 구현되었습니다.
- 카메라의 프레임의 절반이 삭제되는 UVC 드라이버의 버그를 수정합니다 (예 : 30fps로 구성된 스트리밍 세션 중에 15fps 만 배송).
- 텐서 플로우 객체 감지가 신뢰도가 최소 신뢰 매개 변수보다 낮은 결과를 보여주는 문제 해결 문제.
- Onbotjava에서 CVE-2019-11358의 잠재적 악용 문제를 해결합니다
- 추가 확장 허브가 연결된 확장 허브의 주소를 변경하는 수정
- "로봇 재시작"이 선택되면 Control Hub의 네트워크 연결을 유지합니다.
- 로봇이 다시 시작되는 동안 장치 스캔이 고장날 수있는 문제를 해결합니다.
- 렌더 스크립트 사용법을 수정하십시오
- Androidx.Renderscript 변형을 사용하십시오 : 호환성 향상
- 기본이 아닌 Java 모드에서 렌더 스크립트를 사용하십시오 : 빌드를 단순화하십시오
- Webcam-Frame-to-Bitmap 변환 문제 : Alpha Channel이 초기화되지 않았으며 R, G, & B 만 초기화되지 않았습니다.
- 마감일에 가능한 산술 오버플로를 수정합니다
- vuforia 웹캠 지원에서 교착 상태를 수정하여 Opmode를 중지 할 때 5 초 지연 될 수 있습니다.
버전 5.4 (20200108-101156)
- Skystone 문제 #88을 수정합니다
- 로봇 컨트롤러 (Control Hub)가 공장 기본 비밀번호를 사용할 때 기록하는 검사 항목을 추가합니다.
- Skystone 문제 #61을 수정합니다
- Skystone 문제 #142를 수정합니다
- Rev Hubs에 대한 더 많은 전류 및 전압 모니터링 기능을 추가하여 FTC_APP 문제 #417을 수정합니다.
- Onbotjava 활동으로 인해 발생하는 충돌을 해결합니다
- Onbotjava Autosave 기능을 향상시킵니다. FTC_APP #738
- 확장 허브가 연결이 끊어지면 시스템 응답 성 문제를 해결합니다.
- IMU 초기화가 Opmode가 중지되지 못하게 할 수있는 문제 수정 문제
- androidtexttospeech.speak ()가 너무 일찍 호출되면 실패하는 문제를 해결합니다.
- Telemetry.speak () 메소드 및 블록을 추가하여 드라이버 스테이션 (업데이트 된 경우)이 텍스트를 말할 수 있습니다.
- 확장 허브 관련 경고를 추가하고 향상시킵니다
- 확장 허브가 낮은 배터리 경고를 향상시킵니다
- 허브가보고 한 직후에 경고를 표시합니다
- 조건이 현재인지 또는 Opmode 실행 중 일시적으로 발생하는지 여부를 지정합니다.
- 어떤 허브가 낮은 배터리를보고한지 표시합니다
- 오피 모드 실행 중에 허브가 패배하고 전원을 되 찾을 때 경고를 표시합니다.
- 이 조건 후에 허브의 LED 패턴을 수정합니다
- 확장 허브가 명령에 응답하지 않을 때 경고를 표시합니다.
- 조건이 현재인지 또는 Opmode 실행 중 일시적으로 발생하는지 여부를 지정합니다.
- 시작시 확장 허브가 존재하지 않을 때 경고를 명확히합니다.
- 허브를 사용하기 전에이 조건에 로봇 재시작이 필요하다는 것을 지정합니다.
- 허브 라이트는 이제이 상태를 정확하게 반영합니다
- 이러한 조건에서 로깅을 개선하고 로그 스팸을 줄입니다
- 드라이버 스테이션을 사용할 수없는 경우 제어 허브 시간 및 시간대를 연결된 웹 브라우저 프로그래밍 로봇과 동기화합니다.
- Rev Hubs의 대량 읽기 기능을 추가합니다
-
LynxModule#setBulkCachingMode()
를 사용하여 벌크 캐싱 모드를 허브 레벨로 설정해야합니다. 이는 해당 허브를 참조하는 모든 관련 SDK 하드웨어 클래스에 적용됩니다. - 다음 허브 벌크 캐싱 모드를 사용할 수 있습니다.
-
BulkCachingMode.OFF
(기본값) : 모든 하드웨어 통화는 평소와 같이 작동합니다. 대량 데이터는 LynxModule#getBulkData()
통해 읽고 수동으로 처리 할 수 있습니다. -
BulkCachingMode.AUTO
: 동일한 명령이 동일한 캐시에 도달하지 않도록 자동으로 지우거나 새로 고침되는 대량 읽기 캐시에서 해당 하드웨어 호출이 제공됩니다. LynxModule#clearBulkCache()
사용하여 캐시를 수동으로 지울 수도 있지만 권장되지는 않습니다. - (advanced users)
BulkCachingMode.MANUAL
: Same as BulkCachingMode.AUTO
except the cache is never cleared automatically. To avoid getting stale data, the cache must be manually cleared at the beginning of each loop body or as the user deems appropriate.
- Removes PIDF Annotation values added in Rev 5.3 (to AndyMark, goBILDA and TETRIX motor configurations).
- The new motor types will still be available but their Default control behavior will revert back to Rev 5.2
- Adds new
ConceptMotorBulkRead
sample Opmode to demonstrate and compare Motor Bulk-Read modes for reducing I/O latencies.
Version 5.3 (20191004-112306)
- Fixes external USB/UVC webcam support
- Makes various bugfixes and improvements to Blocks page, including but not limited to:
- Many visual tweaks
- Browser zoom and window resize behave better
- Resizing the Java preview pane works better and more consistently across browsers
- The Java preview pane consistently gets scrollbars when needed
- The Java preview pane is hidden by default on phones
- Internet Explorer 11 should work
- Large dropdown lists display properly on lower res screens
- Disabled buttons are now visually identifiable as disabled
- A warning is shown if a user selects a TFOD sample, but their device is not compatible
- Warning messages in a Blocks OpMode are now visible by default.
- Adds goBILDA 5201 and 5202 motors to Robot Configurator
- Adds PIDF Annotation values to AndyMark, goBILDA and TETRIX motor configurations. This has the effect of causing the RUN_USING_ENCODERS and RUN_TO_POSITION modes to use PIDF vs PID closed loop control on these motors. This should provide more responsive, yet stable, speed control. PIDF adds Feedforward control to the basic PID control loop. Feedforward is useful when controlling a motor's speed because it "anticipates" how much the control voltage must change to achieve a new speed set-point, rather than requiring the integrated error to change sufficiently. The PIDF values were chosen to provide responsive, yet stable, speed control on a lightly loaded motor. The more heavily a motor is loaded (drag or friction), the more noticable the PIDF improvement will be.
- Fixes startup crash on Android 10
- Fixes ftc_app issue #712 (thanks to FROGbots-4634)
- Fixes ftc_app issue #542
- Allows "A" and lowercase letters when naming device through RC and DS apps.
Version 5.2 (20190905-083277)
- Fixes extra-wide margins on settings activities, and placement of the new configuration button
- Adds Skystone Vuforia image target data.
- Includes sample Skystone Vuforia Navigation OpModes (Java).
- Includes sample Skystone Vuforia Navigation OpModes (Blocks).
- Adds TensorFlow inference model (.tflite) for Skystone game elements.
- Includes sample Skystone TensorFlow OpModes (Java).
- Includes sample Skystone TensorFlow OpModes (Blocks).
- Removes older (season-specific) sample OpModes.
- Includes 64-bit support (to comply with Google Play requirements).
- Protects against Stuck OpModes when a Restart Robot is requested. (Thanks to FROGbots-4634) (ftc_app issue #709)
- Blocks related changes:
- Fixes bug with blocks generated code when hardware device name is a java or javascript reserved word.
- Shows generated java code for blocks, even when hardware items are missing from the active configuration.
- Displays warning icon when outdated Vuforia and TensorFlow blocks are used (SkyStone issue #27)
Version 5.1 (20190820-222104)
- Defines default PIDF parameters for the following motors:
- REV Core Hex Motor
- REV 20:1 HD Hex Motor
- REV 40:1 HD Hex Motor
- Adds back button when running on a device without a system back button (such as a Control Hub)
- Allows a REV Control Hub to update the firmware on a REV Expansion Hub via USB
- Fixes SkyStone issue #9
- Fixes ftc_app issue #715
- Prevents extra DS User clicks by filtering based on current state.
- Prevents incorrect DS UI state changes when receiving new OpMode list from RC
- Adds support for REV Color Sensor V3
- Adds a manual-refresh DS Camera Stream for remotely viewing RC camera frames.
- To show the stream on the DS, initialize but do not run a stream-enabled opmode, select the Camera Stream option in the DS menu, and tap the image to refresh. This feature is automatically enabled when using Vuforia or TFOD—no additional RC configuration is required for typical use cases. To hide the stream, select the same menu item again.
- Note that gamepads are disabled and the selected opmode cannot be started while the stream is open as a safety precaution.
- To use custom streams, consult the API docs for
CameraStreamServer#setSource
and CameraStreamSource
.
- Adds many Star Wars sounds to RobotController resources.
- Added Skystone Sounds Chooser Sample Program.
- Switches out startup, connect chimes, and error/warning sounds for Star Wars sounds
- Updates OnBot Java to use a WebSocket for communication with the robot
- The OnBot Java page no longer has to do a full refresh when a user switches from editing one file to another
Known issues:
- Camera Stream
- The Vuforia camera stream inherits the issues present in the phone preview (namely ftc_app issue #574). This problem does not affect the TFOD camera stream even though it receives frames from Vuforia.
- The orientation of the stream frames may not always match the phone preview. For now, these frames may be rotated manually via a custom
CameraStreamSource
if desired.
- OnBotJava
- Browser back button may not always work correctly
- It's possible for a build to be queued, but not started. The OnBot Java build console will display a warning if this occurs.
- A user might not realize they are editing a different file if the user inadvertently switches from one file to another since this switch is now seamless. The name of the currently open file is displayed in the browser tab.
Version 5.0 (built on 19.06.14)
- Support for the REV Robotics Control Hub.
- Adds a Java preview pane to the Blocks editor.
- Adds a new offline export feature to the Blocks editor.
- Display Wi-Fi channel in Network circle on Driver Station.
- Adds calibration for Logitech C270
- Updates build tooling and target SDK.
- Compliance with Google's permissions infrastructure (Required after build tooling update).
- Keep Alives to mitigate the Motorola Wi-Fi scanning problem. Telemetry substitute no longer necessary.
- Improves Vuforia error reporting.
- Fixes ftctechnh/ftc_app issues 621, 713.
- Miscellaneous bug fixes and improvements.
Version 4.3 (built on 18.10.31)
- Includes missing TensorFlow-related libraries and files.
Version 4.2 (built on 18.10.30)
- Includes fix to avoid deadlock situation with WatchdogMonitor which could result in USB communication errors.
- Comm error appeared to require that user disconnect USB cable and restart the Robot Controller app to recover.
- robotControllerLog.txt would have error messages that included the words "E RobotCore: lynx xmit lock: #### abandoning lock:"
- Includes fix to correctly list the parent module address for a REV Robotics Expansion Hub in a configuration (.xml) file.
- Bug in versions 4.0 and 4.1 would incorrect list the address module for a parent REV Robotics device as "1".
- If the parent module had a higher address value than the daisy-chained module, then this bug would prevent the Robot Controller from communicating with the downstream Expansion Hub.
- Added requirement for ACCESS_COARSE_LOCATION to allow a Driver Station running Android Oreo to scan for Wi-Fi Direct devices.
- Added google() repo to build.gradle because aapt2 must be downloaded from the google() repository beginning with version 3.2 of the Android Gradle Plugin.
- Important Note: Android Studio users will need to be connected to the Internet the first time build the ftc_app project.
- Internet connectivity is required for the first build so the appropriate files can be downloaded from the Google repository.
- Users should not need to be connected to the Internet for subsequent builds.
- This should also fix buid issue where Android Studio would complain that it "Could not find com.android.tools.lint:lint-gradle:26.1.4" (or similar).
- Added support for REV Spark Mini motor controller as part of the configuration menu for a servo/PWM port on the REV Expansion Hub.
- Provide examples for playing audio files in an OpMode.
- Block Development Tool Changes
- Includes a fix for a problem with the Velocity blocks that were reported in the FTC Technology forum (Blocks Programming subforum).
- Change the "Save completed successfully." message to a white color so it will contrast with a green background.
- Fixed the "Download image" feature so it will work if there are text blocks in the OpMode.
- Introduce support for Google's TensorFlow Lite technology for object detetion for 2018-2019 game.
- TensorFlow lite can recognize Gold Mineral and Silver Mineral from 2018-2019 game.
- Example Java and Block OpModes are included to show how to determine the relative position of the gold block (left, center, right).
Version 4.1 (released on 18.09.24)
Changes include:
- Fix to prevent crash when deprecated configuration annotations are used.
- Change to allow FTC Robot Controller APK to be auto-updated using FIRST Global Control Hub update scripts.
- Removed samples for non supported / non legal hardware.
- Improvements to Telemetry.addData block with "text" socket.
- Updated Blocks sample OpMode list to include Rover Ruckus Vuforia example.
- Update SDK library version number.
Version 4.0 (released on 18.09.12)
Changes include:
Initial support for UVC compatible cameras
- If UVC camera has a unique serial number, RC will detect and enumerate by serial number.
- If UVC camera lacks a unique serial number, RC will only support one camera of that type connected.
- Calibration settings for a few cameras are included (see TeamCode/src/main/res/xml/teamwebcamcalibrations.xml for details).
- User can upload calibration files from Program and Manage web interface.
- UVC cameras seem to draw a fair amount of electrical current from the USB bus.
- This does not appear to present any problems for the REV Robotics Control Hub.
- This does seem to create stability problems when using some cameras with an Android phone-based Robot Controller.
- FTC Tech Team is investigating options to mitigate this issue with the phone-based Robot Controllers.
- Updated sample Vuforia Navigation and VuMark OpModes to demonstrate how to use an internal phone-based camera and an external UVC webcam.
Support for improved motor control.
- REV Robotics Expansion Hub firmware 1.8 and greater will support a feed forward mechanism for closed loop motor control.
- FTC SDK has been modified to support PIDF coefficients (proportional, integral, derivative, and feed forward).
- FTC Blocks development tool modified to include PIDF programming blocks.
- Deprecated older PID-related methods and variables.
- REV's 1.8.x PIDF-related changes provide a more linear and accurate way to control a motor.
무선 전화
- Added 5GHz support for wireless channel changing for those devices that support it.
- Tested with Moto G5 and E4 phones.
- Also tested with other (currently non-approved) phones such as Samsung Galaxy S8.
Improved Expansion Hub firmware update support in Robot Controller app
- Changes to make the system more robust during the firmware update process (when performed through Robot Controller app).
- User no longer has to disconnect a downstream daisy-chained Expansion Hub when updating an Expansion Hub's firmware.
- If user is updating an Expansion Hub's firmware through a USB connection, he/she does not have to disconnect RS485 connection to other Expansion Hubs.
- The user still must use a USB connection to update an Expansion Hub's firmware.
- The user cannot update the Expansion Hub firmware for a downstream device that is daisy chained through an RS485 connection.
- If an Expansion Hub accidentally gets "bricked" the Robot Controller app is now more likely to recognize the Hub when it scans the USB bus.
- Robot Controller app should be able to detect an Expansion Hub, even if it accidentally was bricked in a previous update attempt.
- Robot Controller app should be able to install the firmware onto the Hub, even if if accidentally was bricked in a previous update attempt.
Resiliency
- FTC software can detect and enable an FTDI reset feature that is available with REV Robotics v1.8 Expansion Hub firmware and greater.
- When enabled, the Expansion Hub can detect if it hasn't communicated with the Robot Controller over the FTDI (USB) connection.
- If the Hub hasn't heard from the Robot Controller in a while, it will reset the FTDI connection.
- This action helps system recover from some ESD-induced disruptions.
- Various fixes to improve reliability of FTC software.
블록
- Fixed errors with string and list indices in blocks export to java.
- Support for USB connected UVC webcams.
- Refactored optimized Blocks Vuforia code to support Rover Ruckus image targets.
- Added programming blocks to support PIDF (proportional, integral, derivative and feed forward) motor control.
- Added formatting options (under Telemetry and Miscellaneous categories) so user can set how many decimal places to display a numerical value.
- Support to play audio files (which are uploaded through Blocks web interface) on Driver Station in addition to the Robot Controller.
- Fixed bug with Download Image of Blocks feature.
- Support for REV Robotics Blinkin LED Controller.
- Support for REV Robotics 2m Distance Sensor.
- Added support for a REV Touch Sensor (no longer have to configure as a generic digital device).
- Added blocks for DcMotorEx methods.
- These are enhanced methods that you can use when supported by the motor controller hardware.
- The REV Robotics Expansion Hub supports these enhanced methods.
- Enhanced methods include methods to get/set motor velocity (in encoder pulses per second), get/set PIDF coefficients, etc..
Modest Improvements in Logging
- Decrease frequency of battery checker voltage statements.
- Removed non-FTC related log statements (wherever possible).
- Introduced a "Match Logging" feature.
- Under "Settings" a user can enable/disable this feature (it's disabled by default).
- If enabled, user provides a "Match Number" through the Driver Station user interface (top of the screen).
- The Match Number is used to create a log file specifically with log statements from that particular OpMode run.
- Match log files are stored in /sdcard/FIRST/matlogs on the Robot Controller.
- Once an OpMode run is complete, the Match Number is cleared.
- This is a convenient way to create a separate match log with statements only related to a specific OpMode run.
New Devices
- Support for REV Robotics Blinkin LED Controller.
- Support for REV Robotics 2m Distance Sensor.
- Added configuration option for REV 20:1 HD Hex Motor.
- Added support for a REV Touch Sensor (no longer have to configure as a generic digital device).
여러 가지 잡다한
- Fixed some errors in the definitions for acceleration and velocity in our javadoc documentation.
- Added ability to play audio files on Driver Station
- When user is configuring an Expansion Hub, the LED on the Expansion Hub will change blink pattern (purple-cyan) to indicate which Hub is currently being configured.
- Renamed I2cSensorType to I2cDeviceType.
- Added an external sample OpMode that demonstrates localization using 2018-2019 (Rover Ruckus presented by QualComm) Vuforia targets.
- Added an external sample OpMode that demonstrates how to use the REV Robotics 2m Laser Distance Sensor.
- Added an external sample OpMode that demonstrates how to use the REV Robotics Blinkin LED Controller.
- Re-categorized external Java sample OpModes to "TeleOp" instead of "Autonomous".
Known issues:
Version 3.6 (built on 17.12.18)
Changes include:
- Blocks Changes
- Uses updated Google Blockly software to allow users to edit their OpModes on Apple iOS devices (including iPad and iPhone).
- Improvement in Blocks tool to handle corrupt OpMode files.
- Autonomous OpModes should no longer get switched back to tele-op after re-opening them to be edited.
- The system can now detect type mismatches during runtime and alert the user with a message on the Driver Station.
- Updated javadoc documentation for setPower() method to reflect correct range of values (-1 to +1).
- Modified VuforiaLocalizerImpl to allow for user rendering of frames
- Added a user-overrideable onRenderFrame() method which gets called by the class's renderFrame() method.
Version 3.5 (built on 17.10.30)
Changes with version 3.5 include:
- Introduced a fix to prevent random OpMode stops, which can occur after the Robot Controller app has been paused and then resumed (for example, when a user temporarily turns off the display of the Robot Controller phone, and then turns the screen back on).
- Introduced a fix to prevent random OpMode stops, which were previously caused by random peer disconnect events on the Driver Station.
- Fixes issue where log files would be closed on pause of the RC or DS, but not re-opened upon resume.
- Fixes issue with battery handler (voltage) start/stop race.
- Fixes issue where Android Studio generated OpModes would disappear from available list in certain situations.
- Fixes problem where OnBot Java would not build on REV Robotics Control Hub.
- Fixes problem where OnBot Java would not build if the date and time on the Robot Controller device was "rewound" (set to an earlier date/time).
- Improved error message on OnBot Java that occurs when renaming a file fails.
- Removed unneeded resources from android.jar binaries used by OnBot Java to reduce final size of Robot Controller app.
- Added MR_ANALOG_TOUCH_SENSOR block to Blocks Programming Tool.
Version 3.4 (built on 17.09.06)
Changes with version 3.4 include:
- Added telemetry.update() statement for BlankLinearOpMode template.
- Renamed sample Block OpModes to be more consistent with Java samples.
- Added some additional sample Block OpModes.
- Reworded OnBot Java readme slightly.
Version 3.3 (built on 17.09.04)
This version of the software includes improves for the FTC Blocks Programming Tool and the OnBot Java Programming Tool.
Changes with verion 3.3 include:
- Android Studio ftc_app project has been updated to use Gradle Plugin 2.3.3.
- Android Studio ftc_app project is already using gradle 3.5 distribution.
- Robot Controller log has been renamed to /sdcard/RobotControllerLog.txt (note that this change was actually introduced w/ v3.2).
- Improvements in I2C reliability.
- Optimized I2C read for REV Expansion Hub, with v1.7 firmware or greater.
- Updated all external/samples (available through OnBot and in Android project folder).
- 뷰포리아
- Added support for VuMarks that will be used for the 2017-2018 season game.
- 블록
- Update to latest Google Blockly release.
- Sample OpModes can be selected as a template when creating new OpMode.
- Fixed bug where the blocks would disappear temporarily when mouse button is held down.
- Added blocks for Range.clip and Range.scale.
- User can now disable/enable Block OpModes.
- Fix to prevent occasional Blocks deadlock.
- OnBot Java
- Significant improvements with autocomplete function for OnBot Java editor.
- Sample OpModes can be selected as a template when creating new OpMode.
- Fixes and changes to complete hardware setup feature.
- Updated (and more useful) onBot welcome message.
Known issues:
- Android Studio
- After updating to the new v3.3 Android Studio project folder, if you get error messages indicating "InvalidVirtualFileAccessException" then you might need to do a File->Invalidate Caches / Restart to clear the error.
- OnBot Java
- Sometimes when you push the build button to build all OpModes, the RC returns an error message that the build failed. If you press the build button a second time, the build typically suceeds.
Version 3.2 (built on 17.08.02)
This version of the software introduces the "OnBot Java" Development Tool. Similar to the FTC Blocks Development Tool, the FTC OnBot Java Development Tool allows a user to create, edit and build OpModes dynamically using only a Javascript-enabled web browser.
The OnBot Java Development Tool is an integrated development environment (IDE) that is served up by the Robot Controller. OpModes are created and edited using a Javascript-enabled browser (Google Chromse is recommended). OpModes are saved on the Robot Controller Android device directly.
The OnBot Java Development Tool provides a Java programming environment that does NOT need Android Studio.
Changes with version 3.2 include:
Enhanced web-based development tools
- Introduction of OnBot Java Development Tool.
- Web-based programming and management features are "always on" (user no longer needs to put Robot Controller into programming mode).
- Web-based management interface (where user can change Robot Controller name and also easily download Robot Controller log file).
- OnBot Java, Blocks and Management features available from web based interface.
Blocks Programming Development Tool:
- Changed "LynxI2cColorRangeSensor" block to "REV Color/range sensor" block.
- Fixed tooltip for ColorSensor.isLightOn block. Added blocks for ColorSensor.getNormalizedColors and LynxI2cColorRangeSensor.getNormalizedColors.
Added example OpModes for digital touch sensor and REV Robotics Color Distance sensor.
User selectable color themes.
Includes many minor enhancements and fixes (too numerous to list).
Known issues:
- Auto complete function is incomplete and does not support the following (for now):
- Access via this keyword
- Access via super keyword
- Members of the super cloass, not overridden by the class
- Any methods provided in the current class
- Inner classes
- Can't handle casted objects
- Any objects coming from an parenthetically enclosed expression
Version 3.10 (built on 17.05.09)
This version of the software provides support for the REV Robotics Expansion Hub. This version also includes improvements in the USB communication layer in an effort to enhance system resiliency. If you were using a 2.x version of the software previously, updating to version 3.1 requires that you also update your Driver Station software in addition to updating the Robot Controller software.
Also note that in version 3.10 software, the setMaxSpeed and getMaxSpeed methods are no longer available (not deprecated, they have been removed from the SDK). Also note that the new 3.x software incorporates motor profiles that a user can select as he/she configures the robot.
Changes include:
- Blocks changes
- Added VuforiaTrackableDefaultListener.getPose and Vuforia.trackPose blocks.
- Added optimized blocks support for Vuforia extended tracking.
- Added atan2 block to the math category.
- Added useCompetitionFieldTargetLocations parameter to Vuforia.initialize block. If set to false, the target locations are placed at (0,0,0) with target orientation as specified in https://github.com/gearsincorg/FTCVuforiaDemo/blob/master/Robot_Navigation.java tutorial OpMode.
- Incorporates additional improvements to USB comm layer to improve system resiliency (to recover from a greater number of communication disruptions).
Additional Notes Regarding Version 3.00 (built on 17.04.13)
In addition to the release changes listed below (see section labeled "Version 3.00 (built on 17.04.013)"), version 3.00 has the following important changes:
- Version 3.00 software uses a new version of the FTC Robocol (robot protocol). If you upgrade to v3.0 on the Robot Controller and/or Android Studio side, you must also upgrade the Driver Station software to match the new Robocol.
- Version 3.00 software removes the setMaxSpeed and getMaxSpeed methods from the DcMotor class. If you have an OpMode that formerly used these methods, you will need to remove the references/calls to these methods. Instead, v3.0 provides the max speed information through the use of motor profiles that are selected by the user during robot configuration.
- Version 3.00 software currently does not have a mechanism to disable extra i2c sensors. We hope to re-introduce this function with a release in the near future.
Version 3.00 (built on 17.04.13)
*** Use this version of the software at YOUR OWN RISK!!! ***
This software is being released as an "alpha" version. Use this version at your own risk!
This pre-release software contains SIGNIFICANT changes, including changes to the Wi-Fi Direct pairing mechanism, rewrites of the I2C sensor classes, changes to the USB/FTDI layer, and the introduction of support for the REV Robotics Expansion Hub and the REV Robotics color-range-light sensor. These changes were implemented to improve the reliability and resiliency of the FTC control system.
Please note, however, that version 3.00 is considered "alpha" code. This code is being released so that the FIRST community will have an opportunity to test the new REV Expansion Hub electronics module when it becomes available in May. The developers do not recommend using this code for critical applications (ie, competition use).
*** Use this version of the software at YOUR OWN RISK!!! ***
Changes include:
- Major rework of sensor-related infrastructure. Includes rewriting sensor classes to implement synchronous I2C communication.
- Fix to reset Autonomous timer back to 30 seconds.
- Implementation of specific motor profiles for approved 12V motors (includes Tetrix, AndyMark, Matrix and REV models).
- Modest improvements to enhance Wi-Fi P2P pairing.
- Fixes telemetry log addition race.
- Publishes all the sources (not just a select few).
- Includes Block programming improvements
- Addition of optimized Vuforia blocks.
- Auto scrollbar to projects and sounds pages.
- Fixed blocks paste bug.
- Blocks execute after while-opModeIsActive loop (to allow for cleanup before exiting OpMode).
- Added gyro integratedZValue block.
- Fixes bug with projects page for Firefox browser.
- Added IsSpeaking block to AndroidTextToSpeech.
- Implements support for the REV Robotics Expansion Hub
- Implements support for integral REV IMU (physically installed on I2C bus 0, uses same Bosch BNO055 9 axis absolute orientation sensor as Adafruit 9DOF abs orientation sensor). - Implements support for REV color/range/light sensor.
- Provides support to update Expansion Hub firmware through FTC SDK.
- Detects REV firmware version and records in log file.
- Includes support for REV Control Hub (note that the REV Control Hub is not yet approved for FTC use).
- Implements FTC Blocks programming support for REV Expansion Hub and sensor hardware.
- Detects and alerts when I2C device disconnect.
Version 2.62 (built on 17.01.07)
- Added null pointer check before calling modeToByte() in finishModeSwitchIfNecessary method for ModernRoboticsUsbDcMotorController class.
- Changes to enhance Modern Robotics USB protocol robustness.
Version 2.61 (released on 16.12.19)
- Blocks Programming mode changes:
- Fix to correct issue when an exception was thrown because an OpticalDistanceSensor object appears twice in the hardware map (the second time as a LightSensor).
Version 2.6 (released on 16.12.16)
- Fixes for Gyro class:
- Improve (decrease) sensor refresh latency.
- fix isCalibrating issues.
- Blocks Programming mode changes:
- Blocks now ignores a device in the configuration xml if the name is empty. Other devices work in configuration work fine.
Version 2.5 (internal release on released on 16.12.13)
- Blocks Programming mode changes:
- Added blocks support for AdafruitBNO055IMU.
- Added Download OpMode button to FtcBocks.html.
- Added support for copying blocks in one OpMode and pasting them in an other OpMode. The clipboard content is stored on the phone, so the programming mode server must be running.
- Modified Utilities section of the toolbox.
- In Programming Mode, display information about the active connections.
- Fixed paste location when workspace has been scrolled.
- Added blocks support for the android Accelerometer.
- Fixed issue where Blocks Upload OpMode truncated name at first dot.
- Added blocks support for Android SoundPool.
- Added type safety to blocks for Acceleration.
- Added type safety to blocks for AdafruitBNO055IMU.Parameters.
- Added type safety to blocks for AnalogInput.
- Added type safety to blocks for AngularVelocity.
- Added type safety to blocks for Color.
- Added type safety to blocks for ColorSensor.
- Added type safety to blocks for CompassSensor.
- Added type safety to blocks for CRServo.
- Added type safety to blocks for DigitalChannel.
- Added type safety to blocks for ElapsedTime.
- Added type safety to blocks for Gamepad.
- Added type safety to blocks for GyroSensor.
- Added type safety to blocks for IrSeekerSensor.
- Added type safety to blocks for LED.
- Added type safety to blocks for LightSensor.
- Added type safety to blocks for LinearOpMode.
- Added type safety to blocks for MagneticFlux.
- Added type safety to blocks for MatrixF.
- Added type safety to blocks for MrI2cCompassSensor.
- Added type safety to blocks for MrI2cRangeSensor.
- Added type safety to blocks for OpticalDistanceSensor.
- Added type safety to blocks for Orientation.
- Added type safety to blocks for Position.
- Added type safety to blocks for Quaternion.
- Added type safety to blocks for Servo.
- Added type safety to blocks for ServoController.
- Added type safety to blocks for Telemetry.
- Added type safety to blocks for Temperature.
- Added type safety to blocks for TouchSensor.
- Added type safety to blocks for UltrasonicSensor.
- Added type safety to blocks for VectorF.
- Added type safety to blocks for Velocity.
- Added type safety to blocks for VoltageSensor.
- Added type safety to blocks for VuforiaLocalizer.Parameters.
- Added type safety to blocks for VuforiaTrackable.
- Added type safety to blocks for VuforiaTrackables.
- Added type safety to blocks for enums in AdafruitBNO055IMU.Parameters.
- Added type safety to blocks for AndroidAccelerometer, AndroidGyroscope, AndroidOrientation, and AndroidTextToSpeech.
Version 2.4 (released on 16.11.13)
- Fix to avoid crashing for nonexistent resources.
- Blocks Programming mode changes:
- Added blocks to support OpenGLMatrix, MatrixF, and VectorF.
- Added blocks to support AngleUnit, AxesOrder, AxesReference, CameraDirection, CameraMonitorFeedback, DistanceUnit, and TempUnit.
- Added blocks to support Acceleration.
- Added blocks to support LinearOpMode.getRuntime.
- Added blocks to support MagneticFlux and Position.
- Fixed typos.
- Made blocks for ElapsedTime more consistent with other objects.
- Added blocks to support Quaternion, Velocity, Orientation, AngularVelocity.
- Added blocks to support VuforiaTrackables, VuforiaTrackable, VuforiaLocalizer, VuforiaTrackableDefaultListener.
- Fixed a few blocks.
- Added type checking to new blocks.
- Updated to latest blockly.
- Added default variable blocks to navigation and matrix blocks.
- Fixed toolbox entry for openGLMatrix_rotation_withAxesArgs.
- When user downloads Blocks-generated OpMode, only the .blk file is downloaded.
- When user uploads Blocks-generated OpMode (.blk file), Javascript code is auto generated.
- Added DbgLog support.
- Added logging when a blocks file is read/written.
- Fixed bug to properly render blocks even if missing devices from configuration file.
- Added support for additional characters (not just alphanumeric) for the block file names (for download and upload).
- Added support for OpMode flavor (“Autonomous” or “TeleOp”) and group.
- Changes to Samples to prevent tutorial issues.
- Incorporated suggested changes from public pull 216 (“Replace .. paths”).
- Remove Servo Glitches when robot stopped.
- if user hits “Cancels” when editing a configuration file, clears the unsaved changes and reverts to original unmodified configuration.
- Added log info to help diagnose why the Robot Controller app was terminated (for example, by watch dog function).
- Added ability to transfer log from the controller.
- Fixed inconsistency for AngularVelocity
- Limit unbounded growth of data for telemetry. If user does not call telemetry.update() for LinearOpMode in a timely manner, data added for telemetry might get lost if size limit is exceeded.
Version 2.35 (released on 16.10.06)
- Blockly programming mode - Removed unnecesary idle() call from blocks for new project.
Version 2.30 (released on 16.10.05)
- Blockly programming mode:
- Mechanism added to save Blockly OpModes from Programming Mode Server onto local device
- To avoid clutter, blocks are displayed in categorized folders
- Added support for DigitalChannel
- Added support for ModernRoboticsI2cCompassSensor
- Added support for ModernRoboticsI2cRangeSensor
- Added support for VoltageSensor
- Added support for AnalogInput
- Added support for AnalogOutput
- Fix for CompassSensor setMode block
- 뷰포리아
- Fix deadlock / make camera data available while Vuforia is running.
- Update to Vuforia 6.0.117 (recommended by Vuforia and Google to close security loophole).
- Fix for autonomous 30 second timer bug (where timer was in effect, even though it appeared to have timed out).
- opModeIsActive changes to allow cleanup after OpMode is stopped (with enforced 2 second safety timeout).
- Fix to avoid reading i2c twice.
- Updated sample OpModes.
- Improved logging and fixed intermittent freezing.
- Added digital I/O sample.
- Cleaned up device names in sample OpModes to be consistent with Pushbot guide.
- Fix to allow use of IrSeekerSensorV3.
Version 2.20 (released on 16.09.08)
- Support for Modern Robotics Compass Sensor.
- Support for Modern Robotics Range Sensor.
- Revise device names for Pushbot templates to match the names used in Pushbot guide.
- Fixed bug so that IrSeekerSensorV3 device is accessible as IrSeekerSensor in hardwareMap.
- Modified computer vision code to require an individual Vuforia license (per legal requirement from PTC).
- Minor fixes.
- Blockly enhancements:
- Support for Voltage Sensor.
- Support for Analog Input.
- Support for Analog Output.
- Support for Light Sensor.
- Support for Servo Controller.
Version 2.10 (released on 16.09.03)
- Support for Adafruit IMU.
- Improvements to ModernRoboticsI2cGyro class
- Block on reset of z axis.
- isCalibrating() returns true while gyro is calibration.
- Updated sample gyro program.
- Blockly enhancements
- support for android.graphics.Color.
- added support for ElapsedTime.
- improved look and legibility of blocks.
- support for compass sensor.
- support for ultrasonic sensor.
- support for IrSeeker.
- support for LED.
- support for color sensor.
- support for CRServo
- prompt user to configure robot before using programming mode.
- Provides ability to disable audio cues.
- various bug fixes and improvements.
Version 2.00 (released on 16.08.19)
- This is the new release for the upcoming 2016-2017 FIRST Tech Challenge Season.
- Channel change is enabled in the FTC Robot Controller app for Moto G 2nd and 3rd Gen phones.
- Users can now use annotations to register/disable their OpModes.
- Changes in the Android SDK, JDK and build tool requirements (minsdk=19, java 1.7, build tools 23.0.3).
- Standardized units in analog input.
- Cleaned up code for existing analog sensor classes.
- setChannelMode and getChannelMode were REMOVED from the DcMotorController class. This is important - we no longer set the motor modes through the motor controller.
- setMode and getMode were added to the DcMotor class.
- ContinuousRotationServo class has been added to the FTC SDK.
- Range.clip() method has been overloaded so it can support this operation for int, short and byte integers.
- Some changes have been made (new methods added) on how a user can access items from the hardware map.
- Users can now set the zero power behavior for a DC motor so that the motor will brake or float when power is zero.
- Prototype Blockly Programming Mode has been added to FTC Robot Controller. Users can place the Robot Controller into this mode, and then use a device (such as a laptop) that has a Javascript enabled browser to write Blockly-based OpModes directly onto the Robot Controller.
- Users can now configure the robot remotely through the FTC Driver Station app.
- Android Studio project supports Android Studio 2.1.x and compile SDK Version 23 (Marshmallow).
- Vuforia Computer Vision SDK integrated into FTC SDK. Users can use sample vision targets to get localization information on a standard FTC field.
- Project structure has been reorganized so that there is now a TeamCode package that users can use to place their local/custom OpModes into this package.
- Inspection function has been integrated into the FTC Robot Controller and Driver Station Apps (Thanks Team HazMat… 9277 & 10650!).
- Audio cues have been incorporated into FTC SDK.
- Swap mechanism added to FTC Robot Controller configuration activity. For example, if you have two motor controllers on a robot, and you misidentified them in your configuration file, you can use the Swap button to swap the devices within the configuration file (so you do not have to manually re-enter in the configuration info for the two devices).
- Fix mechanism added to all user to replace an electronic module easily. For example, suppose a servo controller dies on your robot. You replace the broken module with a new module, which has a different serial number from the original servo controller. You can use the Fix button to automatically reconfigure your configuration file to use the serial number of the new module.
- Improvements made to fix resiliency and responsiveness of the system.
- For LinearOpMode the user now must for a telemetry.update() to update the telemetry data on the driver station. This update() mechanism ensures that the driver station gets the updated data properly and at the same time.
- The Auto Configure function of the Robot Controller is now template based. If there is a commonly used robot configuration, a template can be created so that the Auto Configure mechanism can be used to quickly configure a robot of this type.
- The logic to detect a runaway OpMode (both in the LinearOpMode and OpMode types) and to abort the run, then auto recover has been improved/implemented.
- Fix has been incorporated so that Logitech F310 gamepad mappings will be correct for Marshmallow users.
Release 16.07.08
- For the ftc_app project, the gradle files have been modified to support Android Studio 2.1.x.
Release 16.03.30
- For the MIT App Inventor, the design blocks have new icons that better represent the function of each design component.
- Some changes were made to the shutdown logic to ensure the robust shutdown of some of our USB services.
- A change was made to LinearOpMode so as to allow a given instance to be executed more than once, which is required for the App Inventor.
- Javadoc improved/updated.
Release 16.03.09
- Changes made to make the FTC SDK synchronous (significant change!)
- waitOneFullHardwareCycle() and waitForNextHardwareCycle() are no longer needed and have been deprecated.
- runOpMode() (for a LinearOpMode) is now decoupled from the system's hardware read/write thread.
- loop() (for an OpMode) is now decoupled from the system's hardware read/write thread.
- Methods are synchronous.
- For example, if you call setMode(DcMotorController.RunMode.RESET_ENCODERS) for a motor, the encoder is guaranteed to be reset when the method call is complete.
- For legacy module (NXT compatible), user no longer has to toggle between read and write modes when reading from or writing to a legacy device.
- Changes made to enhance reliability/robustness during ESD event.
- Changes made to make code thread safe.
- Debug keystore added so that user-generated robot controller APKs will all use the same signed key (to avoid conflicts if a team has multiple developer laptops for example).
- Firmware version information for Modern Robotics modules are now logged.
- Changes made to improve USB comm reliability and robustness.
- Added support for voltage indicator for legacy (NXT-compatible) motor controllers.
- Changes made to provide auto stop capabilities for OpModes.
- A LinearOpMode class will stop when the statements in runOpMode() are complete. User does not have to push the stop button on the driver station.
- If an OpMode is stopped by the driver station, but there is a run away/uninterruptible thread persisting, the app will log an error message then force itself to crash to stop the runaway thread.
- Driver Station UI modified to display lowest measured voltage below current voltage (12V battery).
- Driver Station UI modified to have color background for current voltage (green=good, yellow=caution, red=danger, extremely low voltage).
- javadoc improved (edits and additional classes).
- Added app build time to About activity for driver station and robot controller apps.
- Display local IP addresses on Driver Station About activity.
- Added I2cDeviceSynchImpl.
- Added I2cDeviceSync interface.
- Added seconds() and milliseconds() to ElapsedTime for clarity.
- Added getCallbackCount() to I2cDevice.
- Added missing clearI2cPortActionFlag.
- Added code to create log messages while waiting for LinearOpMode shutdown.
- Fix so Wi-Fi Direct Config activity will no longer launch multiple times.
- Added the ability to specify an alternate i2c address in software for the Modern Robotics gyro.
Release 16.02.09
- Improved battery checker feature so that voltage values get refreshed regularly (every 250 msec) on Driver Station (DS) user interface.
- Improved software so that Robot Controller (RC) is much more resilient and “self-healing” to USB disconnects:
- If user attempts to start/restart RC with one or more module missing, it will display a warning but still start up.
- When running an OpMode, if one or more modules gets disconnected, the RC & DS will display warnings,and robot will keep on working in spite of the missing module(s).
- If a disconnected module gets physically reconnected the RC will auto detect the module and the user will regain control of the recently connected module.
- Warning messages are more helpful (identifies the type of module that's missing plus its USB serial number).
- Code changes to fix the null gamepad reference when users try to reference the gamepads in the init() portion of their OpMode.
- NXT light sensor output is now properly scaled. Note that teams might have to readjust their light threshold values in their OpModes.
- On DS user interface, gamepad icon for a driver will disappear if the matching gamepad is disconnected or if that gamepad gets designated as a different driver.
- Robot Protocol (ROBOCOL) version number info is displayed in About screen on RC and DS apps.
- Incorporated a display filter on pairing screen to filter out devices that don't use the “-“ format. This filter can be turned off to show all Wi-Fi Direct devices.
- Updated text in License file.
- Fixed formatting error in OpticalDistanceSensor.toString().
- Fixed issue on with a blank (“”) device name that would disrupt Wi-Fi Direct Pairing.
- Made a change so that the Wi-Fi info and battery info can be displayed more quickly on the DS upon connecting to RC.
- Improved javadoc generation.
- Modified code to make it easier to support language localization in the future.
Release 16.01.04
- Updated compileSdkVersion for apps
- Prevent Wi-Fi from entering power saving mode
- removed unused import from driver station
- Corrrected "Dead zone" joystick code.
- LED.getDeviceName and .getConnectionInfo() return null
- apps check for ROBOCOL_VERSION mismatch
- Fix for Telemetry also has off-by-one errors in its data string sizing / short size limitations error
- User telemetry output is sorted.
- added formatting variants to DbgLog and RobotLog APIs
- code modified to allow for a long list of OpMode names.
- changes to improve thread safety of RobocolDatagramSocket
- Fix for "missing hardware leaves robot controller disconnected from driver station" error
- fix for "fast tapping of Init/Start causes problems" (toast is now only instantiated on UI thread).
- added some log statements for thread life cycle.
- moved gamepad reset logic inside of initActiveOpMode() for robustness
- changes made to mitigate risk of race conditions on public methods.
- changes to try and flag when Wi-Fi Direct name contains non-printable characters.
- fix to correct race condition between .run() and .close() in ReadWriteRunnableStandard.
- updated FTDI driver
- made ReadWriteRunnableStanard interface public.
- fixed off-by-one errors in Command constructor
- moved specific hardware implmentations into their own package.
- moved specific gamepad implemnatations to the hardware library.
- changed LICENSE file to new BSD version.
- fixed race condition when shutting down Modern Robotics USB devices.
- methods in the ColorSensor classes have been synchronized.
- corrected isBusy() status to reflect end of motion.
- corrected "back" button keycode.
- the notSupported() method of the GyroSensor class was changed to protected (it should not be public).
Release 15.11.04.001
- Added Support for Modern Robotics Gyro.
- The GyroSensor class now supports the MR Gyro Sensor.
- Users can access heading data (about Z axis)
- Users can also access raw gyro data (X, Y, & Z axes).
- Example MRGyroTest.java OpMode included.
- More descriptive error messages for exceptions in user code.
- Updated DcMotor API
- Enable read mode on new address in setI2cAddress
- Fix so that driver station app resets the gamepads when switching OpModes.
- USB-related code changes to make USB comm more responsive and to display more explicit error messages.
- Fix so that USB will recover properly if the USB bus returns garbage data.
- Fix USB initializtion race condition.
- Better error reporting during FTDI open.
- More explicit messages during USB failures.
- Fixed bug so that USB device is closed if event loop teardown method was not called.
- Fixed timer UI issue
- Fixed duplicate name UI bug (Legacy Module configuration).
- Fixed race condition in EventLoopManager.
- Fix to keep references stable when updating gamepad.
- For legacy Matrix motor/servo controllers removed necessity of appending "Motor" and "Servo" to controller names.
- Updated HT color sensor driver to use constants from ModernRoboticsUsbLegacyModule class.
- Updated MR color sensor driver to use constants from ModernRoboticsUsbDeviceInterfaceModule class.
- Correctly handle I2C Address change in all color sensors
- Updated/cleaned up OpModes.
- Updated comments in LinearI2cAddressChange.java example OpMode.
- Replaced the calls to "setChannelMode" with "setMode" (to match the new of the DcMotor method).
- Removed K9AutoTime.java OpMode.
- Added MRGyroTest.java OpMode (demonstrates how to use MR Gyro Sensor).
- Added MRRGBExample.java OpMode (demonstrates how to use MR Color Sensor).
- Added HTRGBExample.java OpMode (demonstrates how to use HT legacy color sensor).
- Added MatrixControllerDemo.java (demonstrates how to use legacy Matrix controller).
- Updated javadoc documentation.
- Updated release .apk files for Robot Controller and Driver Station apps.
Release 15.10.06.002
- Added support for Legacy Matrix 9.6V motor/servo controller.
- Cleaned up build.gradle file.
- Minor UI and bug fixes for driver station and robot controller apps.
- Throws error if Ultrasonic sensor (NXT) is not configured for legacy module port 4 or 5.
Release 15.08.03.001
- New user interfaces for FTC Driver Station and FTC Robot Controller apps.
- An init() method is added to the OpMode class.
- For this release, init() is triggered right before the start() method.
- Eventually, the init() method will be triggered when the user presses an "INIT" button on driver station.
- The init() and loop() methods are now required (ie, need to be overridden in the user's OpMode).
- The start() and stop() methods are optional.
- A new LinearOpMode class is introduced.
- Teams can use the LinearOpMode mode to create a linear (not event driven) program model.
- Teams can use blocking statements like Thread.sleep() within a linear OpMode.
- The API for the Legacy Module and Core Device Interface Module have been updated.
- Support for encoders with the Legacy Module is now working.
- The hardware loop has been updated for better performance.