MELIHAT
Repositori ini berisi SDK FTC publik untuk musim kompetisi INTO THE DEEP (2024-2025).
Selamat datang!
Repositori GitHub ini berisi kode sumber yang digunakan untuk membangun aplikasi Android untuk mengendalikan robot kompetisi FIRST Tech Challenge. Untuk menggunakan SDK ini, unduh/kloning seluruh proyek ke komputer lokal Anda.
Persyaratan
Untuk menggunakan proyek Android Studio ini, Anda memerlukan Android Studio 2021.2 (nama kode Chipmunk) atau lebih baru.
Untuk memprogram robot Anda di Blocks atau OnBot Java, Anda tidak memerlukan Android Studio.
Memulai
Jika Anda baru mengenal robotika atau baru mengenal Tantangan Teknologi PERTAMA , Anda harus mempertimbangkan untuk meninjau Tutorial Blok FTC untuk memahami cara menggunakan sistem kontrol:
Tutorial Online Blok FTC
Bahkan jika Anda seorang pemrogram Java tingkat lanjut, ada gunanya memulai dengan tutorial Blok FTC, lalu bermigrasi ke Alat Java OnBot atau ke Android Studio setelahnya.
Mengunduh Proyek
Jika Anda seorang programmer Android Studio, ada beberapa cara untuk mendownload repo ini. Perhatikan bahwa jika Anda menggunakan Blocks atau OnBot Java Tool untuk memprogram robot Anda, maka Anda tidak perlu mengunduh repositori ini.
- Jika Anda pengguna git, Anda dapat mengkloning versi terbaru repositori:
git clone https://github.com/FIRST-Tech-Challenge/FtcRobotController.git
Atau jika mau, Anda dapat menggunakan tombol "Unduh Zip" yang tersedia melalui halaman utama repositori. Mengunduh proyek sebagai file .ZIP akan menjaga ukuran unduhan tetap terkendali.
Anda juga dapat mengunduh folder proyek (sebagai file arsip .zip atau .tar.gz) dari subbagian Unduhan pada halaman Rilis untuk repositori ini.
Halaman Rilis juga berisi APK bawaan.
Setelah Anda mengunduh dan membuka kompresi folder (jika diperlukan), Anda dapat menggunakan Android Studio untuk mengimpor folder tersebut ("Impor proyek (Eclipse ADT, Gradle, dll.)").
Mendapatkan Bantuan
Dokumentasi dan Tutorial Pengguna
FIRST mengelola dokumentasi online dengan informasi dan tutorial tentang cara menggunakan perangkat lunak FIRST Tech Challenge dan sistem kontrol robot. Anda dapat mengakses dokumentasi ini menggunakan tautan berikut:
Dokumentasi Tantangan Teknologi PERTAMA
Perhatikan bahwa dokumentasi online adalah dokumen "hijau" yang terus diperbarui dan diedit. Ini berisi informasi terkini tentang perangkat lunak dan sistem kontrol FIRST Tech Challenge.
Bahan Referensi Javadoc
Dokumentasi referensi Javadoc untuk FTC SDK sekarang tersedia online. Klik tautan berikut untuk melihat dokumentasi FTC SDK Javadoc sebagai situs web langsung:
Dokumentasi FTC Javadoc
Forum Pengguna Daring
Untuk pertanyaan teknis mengenai Sistem Kontrol atau FTC SDK, silakan kunjungi situs Komunitas Tantangan Teknologi PERTAMA:
Komunitas Tantangan Teknologi PERTAMA
Contoh OpMode
Proyek ini berisi banyak pilihan Contoh OpModes (contoh kode robot) yang dapat dipotong dan ditempelkan ke folder /teamcode Anda untuk digunakan apa adanya, atau dimodifikasi sesuai kebutuhan tim Anda.
Folder Sampel: /FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples
File readme.md yang terletak di folder /TeamCode/src/main/java/org/firstinspires/ftc/teamcode berisi penjelasan tentang contoh konvensi penamaan, dan instruksi tentang cara menyalinnya ke ruang proyek Anda sendiri.
Informasi Rilis
Versi 10.1 (20240919-122750)
Peningkatan
- Menambahkan
VisionProcessor
berbasis OpenCV baru (yang dapat dilampirkan ke VisionPortal di Java atau Blocks) untuk membantu tim menerapkan pemrosesan warna melalui visi komputer dalam permainan INTO THE DEEP-
ColorBlobLocatorProcessor
mengimplementasikan deteksi "gumpalan" warna OpenCV. Contoh program baru ConceptVisionColorLocator
mendemonstrasikan penggunaannya.- Pilihan ditawarkan antara rentang warna yang telah ditentukan sebelumnya, atau membuat rentang warna khusus dalam ruang warna RGB, HSV, atau YCrCb
- Kemampuan diberikan untuk membatasi deteksi pada Wilayah Minat tertentu di layar
- Fungsi untuk menerapkan morphing erosi/dilatasi ke masker ambang batas disediakan
- Fungsi untuk mengurutkan dan memfilter data yang dikembalikan disediakan
-
PredominantColorProcessor
memungkinkan penggunaan wilayah kamera sebagai "sensor warna jarak jauh" untuk menentukan warna dominan wilayah tersebut. Contoh program baru ConceptVisionColorSensor
mendemonstrasikan penggunaannya.- Warna dominan yang ditentukan dipilih dari kumpulan "contoh" warna terpisah, mirip dengan sensor warna MINDSTORMS NXT
- Dokumentasi mengenai fitur Pemrosesan Warna ini dapat ditemukan di sini: https://ftc-docs.firstinspires.org/color-processing
- Menambahkan program contoh Blok untuk sensor warna: RobotAutoDriveToLine dan SensorColor.
- Inspeksi Mandiri yang diperbarui untuk mengidentifikasi versi perangkat lunak RC/DS yang tidak cocok sebagai "perhatian" dan bukan "kegagalan".
Perbaikan Bug
- Memperbaiki regresi konversi AngularVelocity
Versi 10.0 (20240828-111152)
Perubahan yang Mengganggu
- Kelas Java dan Blok untuk Deteksi Objek TensorFlow telah dihapus.
-
AngularVelocity.unit
yang bertipe AngleUnit
telah diubah namanya menjadi AngularVelocity.angleUnit
bertipe UnnormalizedAngleUnit
Peningkatan
- Contoh untuk Indikator Digital REV telah ditambahkan - ConceptRevLED
- Menambahkan dukungan untuk Sparkfun QWIIC LED Stick
- Untuk menghubungkannya secara langsung, Anda memerlukan kabel ini
- Menambahkan KonsepLEDStick OpMode
- Menambahkan Blok untuk warna hitam, biru, cyan, dkgray, abu-abu, hijau, ltgray, magenta, merah, putih, dan kuning.
- Menambahkan blok "evaluasi tetapi abaikan hasil" yang mengeksekusi blok yang terhubung dan mengabaikan hasilnya. Memungkinkan Anda memanggil fungsi dan mengabaikan nilai kembalian.
- Menambahkan driver I2C untuk pengintai sonar Maxbotix Maxsonar I2CXL
- Menambahkan Blok untuk setPwmEnable, setPwmDisable, dan isPwmEnabled untuk servo dan servo CR.
- Di editor Blok: n di kolom komentar anotasi EksporToBlocks ditampilkan sebagai pemisah baris.
- Telemetri memiliki metode baru setNumDecimalPlaces
- Telemetri sekarang memformat ganda dan mengapung (bukan di dalam objek, hanya dengan sendirinya)
- Menambahkan dukungan untuk Limelight 3A.
- Menambahkan dukungan awal untuk REV Servo Hub
- Baik Pengontrol Robot maupun Stasiun Pengemudi perlu diperbarui ke versi 10.0 agar Hub Servo dapat dikonfigurasi sebagai Hub Servo. Jika aplikasi di salah satu perangkat sudah usang, Servo Hub akan muncul sebagai Expansion Hub, dan beberapa fungsi tidak akan berfungsi seperti yang diharapkan. Anda harus menunggu untuk membuat konfigurasi yang menyertakan Servo Hub hingga aplikasi Driver Station dan Robot Controller diperbarui ke versi 10.0.
- Memperbarui firmware Servo Hub dan mengubah alamatnya hanya dapat dilakukan menggunakan REV Hardware Client saat ini
- Menambahkan dukungan untuk IMU REV 9-Axis (REV-31-3332)
- IMU REV 9-Axis hanya didukung oleh antarmuka Universal IMU
- Menambahkan kelas Java
Rev9AxisImuOrientationOnRobot
. - Jika Anda secara mental mengganti port I2C IMU ini dengan port USB Control Hub,
RevHubOrientationOnRobot
juga kompatibel dengan sensor ini - Menambahkan Blok untuk Rev9AxisImuOrientationOnRobot, termasuk RevHubImuOrientationOnRobot.xyzOrientation dan RevHubImuOrientationOnRobot.zyxOrientation.
- Menambahkan sampel Blok SensorRev9AxisIMUOrthogonal dan SensorRev9AxisIMUNonOrthogonal.
- Meningkatkan dukungan Blok untuk RevHubImuOrientationOnRobot.
- Menambahkan Blok untuk RevHubImuOrientationOnRobot.xyzOrientation dan RevHubImuOrientationOnRobot.zyxOrientation.
- Menambahkan sampel Blok SensorHubIMUOrthogonal (menggantikan SensorIMU) dan SensorHubIMUNonOrthogonal.
- Memperbarui versi EasyOpenCV, AprilTag, OpenCV, dan
libjpeg-turbo
- Menambahkan Blok untuk maks dan min yang membutuhkan dua angka.
- Menambahkan Blok OpModes ConceptRevSPARKMini, RobotAutoDriveByEncoder, RobotAutoDriveByGyro, RobotAutoDriveByTime, RobotAutoDriveToAprilTagOmni, dan RobotAutoDriveToAprilTagTank.
- Dua OpMode dengan nama yang sama kini secara otomatis diganti namanya dengan nama diikuti dengan "-" dan nama kelas yang memungkinkan keduanya ada di perangkat.
- Menampilkan nama konfigurasi aktif di halaman Kelola Konsol Pengontrol Robot
- Perpustakaan AprilTag yang diperbarui untuk INTO THE DEEP. Khususnya,
getCurrentGameTagLibrary()
kini mengembalikan tag INTO THE DEEP. - Menambahkan Blok untuk Telemetry.setMsTransmissionInterval dan Telemetry.getMsTransmissionInterval.
- Menambahkan sampel Blok SensorOctoQuad.
Perbaikan Bug
- Memperbaiki bug di mana Blok RevBlinkinLedDriver berada di bawah Aktuator di kotak peralatan editor Blok. Mereka sekarang menjadi Perangkat Lain.
- Memperbaiki bug di mana
Exception
yang dimasukkan ke dalam kode pengguna setelah penghentian diminta oleh Stasiun Pengemudi akan dimakan secara diam-diam - Memperbaiki bug di mana jika Anda meminta
AngularVelocity
dalam satuan yang berbeda dari perangkat yang dilaporkan, itu akan menormalkannya antara -PI dan PI untuk radian, dan -180 dan 180 untuk derajat.
Versi 9.2 (20240701-085519)
Catatan Penting
- Kelas Java dan Blok untuk Deteksi Objek TensorFlow sudah tidak digunakan lagi dan akan dihapus di Versi 10.0.
- Sampel yang menggunakan Deteksi Objek TensorFlow telah dihapus.
Peningkatan
- Menambahkan teks penjelasan ke item yang gagal pada aktivitas inspeksi. Untuk melihat teks penjelasan, ketuk ikon peringatan merah untuk item yang gagal.
- Di editor Blok: menambahkan jenis blok kumpulan variabel baru yang menetapkan variabel dan juga mengembalikan nilai baru.
- Mengubah perilaku kontrol kamera untuk SwitchableCamera. Sekarang, setiap metode (seperti getExposure, getMinExposure, getMaxExposure, setExposure for ExposureControl) bekerja pada kamera yang sedang aktif.
- Menambahkan dukungan untuk Gamepad yang Kompatibel dengan REV USB PS4 (REV-31-2983)
- Menambahkan ConceptAprilTagMultiPortal OpMode
- Menambahkan dukungan untuk OctoQuad Quadrature Encoder & Modul Antarmuka Lebar Pulsa
- Menambahkan anotasi EksporAprilTagLibraryToBlocks yang menunjukkan bahwa metode statis yang mengembalikan AprilTagLibrary diekspor ke lingkungan pemrograman Blok. Blok yang sesuai akan muncul di kotak alat Blok bersama dengan pustaka tag bawaan.
- Menambahkan Blok Konsep OpModeAprilTagOptimizeExposure.
- Menambahkan dukungan untuk sensor Odometri Pelacakan Optik SparkFun.
Perbaikan Bug
- Memperbaiki #942 di mana visionPortal.close() dapat menyebabkan IndexOutOfBoundsError.
- Memperbaiki bug di editor blok di mana blok fungsi yang diciutkan menampilkan peringatan "Blok yang diciutkan berisi peringatan." ketika Blocks OpMode dibuka kembali.
- Memperbaiki bug di mana editor blok tidak memperingatkan Anda bahwa Anda memiliki perubahan yang belum disimpan saat Anda mencoba keluar. Bug ini muncul karena perubahan perilaku di Chrome 119.
- Masalah #764 - Dapatkan kontrol penguatan mengembalikan penunjuk nol untuk kamera yang dapat dialihkan
- Memperbaiki bug yang menyebabkan zona mati yang benar untuk gamepad tertentu tidak diterapkan saat Fitur Gamepad Tingkat Lanjut diaktifkan
Versi 9.1 (20240215-115542)
Peningkatan
- Memperbaiki masalah pada Blok: jika pengguna menutup balon peringatan Blok, balon tersebut akan tetap ditutup saat proyek dibuka lagi di editor Blok.
- Di editor Blok, peringatan mengenai perangkat keras yang hilang tidak ditampilkan jika semua Blok yang menggunakan perangkat keras yang hilang dinonaktifkan.
- Menambahkan Blok untuk mendukung perbandingan nilai properti CRServo.Direction, DCMotor.Direction, DCMotor.Mode, DCMotor.ZeroPowerBehavior, DigitalChannel.Mode, GyroSensor.HeadingMode, IrSeekerSensor.Mode, dan Servo.Direction, ke Blok enum yang sesuai.
- Meningkatkan impor otomatis OnBotJava untuk mengimpor kelas dengan benar saat digunakan dalam situasi tertentu.
- Meningkatkan pelengkapan otomatis OnBotJava untuk memberikan opsi penyelesaian yang lebih baik dalam banyak kasus.
- Ini memperbaiki masalah pelengkapan otomatis yang akan gagal jika metode dengan dua atau lebih parameter formal ditentukan.
- Di OnBotJava, dukungan pelipatan kode ditambahkan untuk memperluas dan menciutkan bagian kode
- Di OnBotJava, header hak cipta sekarang secara otomatis diciutkan saat memuat file baru
- Untuk semua sampel Blocks OpMode, komentar intro telah dipindahkan ke balon komentar RunOpMode.
- Perintah Bersihkan Blok di editor Blok sekarang memposisikan Blok fungsi sehingga balon komentarnya tidak tumpang tindih dengan Blok fungsi lainnya.
- Menambahkan sampel Blok OpMode SensorTouch.
- Menambahkan sampel Java OpMode SensorDigitalTouch.
- Beberapa perbaikan pada VisionPortal
- Menambahkan opsi untuk mengontrol apakah aliran dimulai secara otomatis setelah panggilan
.build()
pada VisionPortal Builder - Menambahkan opsi untuk mengontrol apakah hamparan statistik pemrosesan penglihatan dirender atau tidak
- VisionPortals sekarang mengimplementasikan antarmuka
CameraStreamSource
, memungkinkan pengguna multiportal memilih portal mana yang dirutekan ke DS di INIT dengan memanggil CameraStreamServer.getInstance().setSource(visionPortal). Dapat dipilih melalui gamepad, di antara sesi Camera Stream. - Tambahkan opsi ke
AprilTagProcessor
untuk menyembunyikan peringatan kalibrasi - Meningkatkan peringatan kalibrasi kamera
- Jika kalibrasi diskalakan, resolusi skalanya akan dicantumkan
- Jika ada kalibrasi dengan rasio aspek yang salah, resolusi yang dikalibrasi akan dicantumkan
- Memperbaiki kondisi balapan yang menyebabkan aplikasi mogok saat memanggil
stopStreaming()
segera diikuti dengan close()
pada VisionPortal - Memperbaiki IllegalStateException saat memanggil
stopStreaming()
segera setelah membuat VisionPortal - Menambahkan rekanan Blok FTC ke metode Java baru:
- VisionPortal.Builder.setAutoStartStreamOnBuild
- VisionPortal.Builder.setShowStatsOverlay
- AprilTagProcessor.Builder.setSuppressCalibrationWarnings
- CameraStreamServer.setSource
Perbaikan Bug
- Memperbaiki masalah ketika OnBotJava tidak menerapkan pengaturan ukuran font ke editor.
- Memperbarui ketergantungan EasyOpenCV ke v1.7.1
- Memperbaiki ketidakmampuan untuk menggunakan EasyOpenCV CameraFactory di OnBotJava
- Memperbaiki seluruh kerusakan aplikasi RC saat saluran pengguna mengeluarkan pengecualian
- Memperbaiki seluruh kerusakan aplikasi RC saat anotator kanvas pengguna memunculkan pengecualian
- Gunakan tampilan stacktrace modern saat menangani pengecualian pengguna, bukan pesan telemetri ESTOP lama
Versi 9.0.1 (20230929-083754)
Peningkatan
- Memperbarui sampel AprilTag untuk menyertakan Penipisan dan Komentar tambahan. Juga memperbaiki peringatan ID tag yang menyesatkan
- Meningkatkan ukuran maksimum Blokir komentar sebaris menjadi 140 karakter
- Menambahkan sampel Blok BasicOmniOpMode.
- Perpustakaan CENTERSTAGE yang diperbarui AprilTag orientasi quaternion
- Terima kasih @FromenActual
- Memperbarui Contoh Java ConceptTensorFlowObjectDetection.java untuk menyertakan elemen yang hilang yang diperlukan untuk dukungan model kustom.
Perbaikan Bug
- Memperbaiki masalah ketika setelah tanggal 1 Oktober, Stasiun Pengemudi akan melaporkan sebagai usang pada v9.0 dan meminta pengguna untuk memperbarui.
Versi 9.0 (20230830-154348)
Perubahan yang Mengganggu
- Menghapus Vuforia
- Bidang di objek
AprilTagDetection
dan AprilTagPose(ftc/raw)
sekarang sudah final
- Metode pembuat VisionPortal
setCameraMonitorViewId()
telah diubah namanya menjadi setLiveViewContainerId()
dan enableCameraMonitoring()
telah diubah namanya menjadi enableLiveView()
Peningkatan
- Menambahkan dukungan untuk Sensor Visi DFRobot HuskyLens.
- Tim blok sekarang dapat melakukan kalibrasi webcam.
- Menambahkan Blok untuk System.currentTimeMillis (di bawah Utilitas/Waktu)
- Menambahkan Blok untuk VisionPortal.saveNextFrameRaw (di bawah Vision/VisionPortal)
- Menambahkan sampel Blok OpMode baru yang disebut UtilityCameraFrameCapture.
- Sampel RobotDriveByGyro telah diperbarui untuk menggunakan antarmuka IMU universal yang baru. Sekarang mendukung kedua jenis IMU.
- Menghapus beberapa Blok ElapsedTime yang rawan kesalahan dari kotak peralatan editor Blok. Ini bukan perubahan yang dapat menyebabkan gangguan: OpModes Blok lama yang menggunakan Blok ini akan tetap berfungsi, baik di editor Blok maupun saat runtime.
- Standarisasi pada bentuk "OpMode" untuk istilah OpMode.
- Cara yang lebih disukai untuk merujuk ke OpMode yang secara khusus memperluas
LinearOpMode
(termasuk Blocks OpModes) adalah "linear OpMode". - Cara yang lebih disukai untuk merujuk ke OpMode yang secara khusus memperluas
OpMode
secara langsung adalah "OpMode berulang".
- Merombak komentar Javadoc
OpMode
dan LinearOpMode
agar lebih mudah dibaca dan menyertakan lebih banyak detail. - Membuat sedikit peningkatan pada sampel Java
- Komentar Javadoc dalam sampel yang dapat dirender dengan buruk di Android Studio telah dikonversi menjadi komentar multi-baris standar
- Konsistensi antar sampel telah ditingkatkan
- Sampel SensorDigitalTouch telah diganti dengan sampel SensorTouch baru yang menggunakan antarmuka
TouchSensor
, bukan DigitalChannel
. - Sampel ConceptCompassCalibration, SensorMRCompass, dan SensorMRIRSeeker telah dihapus, karena tidak berguna untuk kompetisi FTC modern.
Perbaikan Bug
- Memperbaiki bug yang mencegah gamepad PlayStation digunakan dalam mode bluetooth. Bluetooth TIDAK sah untuk kompetisi tetapi mungkin berguna untuk memungkinkan perangkat DS digunakan saat mengisi daya, atau pada acara penjangkauan.
- Memperbaiki bug di mana nilai Modifikasi Tanggal Blok OpMode dapat berubah menjadi 31 Desember 1969, jika Hub Kontrol di-boot ulang saat OpMode Blok sedang diedit.
- Memperbaiki fitur pemilihan awal TeleOp otomatis (rusak di 8.2)
- Memperbaiki bug ketika meneruskan angka bilangan bulat seperti 123 ke blok Telemetry.addData yang mengambil angka muncul sebagai 123,0 di telemetri.
- Memperbaiki masalah pelengkapan otomatis OnBotJava:
- Pelengkapan otomatis akan memberikan nilai yang salah untuk kelas saat ini ketika melengkapi variabel lokal secara otomatis
- pelengkapan otomatis
hardwareMap
salah menyertakan entri kelas lambda
- Memperbaiki OnBotJava yang tidak mengimpor kelas secara otomatis.
- Memperbaiki tab OnBotJava yang gagal ditutup saat filenya dihapus.
- Memperbaiki penyegaran tampilan proyek yang tidak terjadi saat file diganti namanya di OnBotJava.
- Memperbaiki item menu konteks "Unduh" untuk perpustakaan eksternal di antarmuka OnBotJava.
- Memperbaiki masalah di mana telemetri Stasiun Pengemudi terkadang terhenti saat diatur ke mode Monospace.
- Memperbaiki regresi kinerja untuk operasi REV Hub tertentu yang diperkenalkan di versi 8.2.
- Memperbaiki logika perbandingan TagID dalam sampel DriveToTag.
Versi 8.2 (20230707-131020)
Perubahan yang Mengganggu
- OpMode non-linier (iteratif) tidak lagi diperbolehkan memanipulasi aktuator dalam metode
stop()
-nya. Upaya untuk melakukannya akan diabaikan dan dicatat.- Ketika OpMode mencoba memanipulasi aktuator secara ilegal, Pengendali Robot akan mencetak pesan log termasuk teks
CANCELLED_FOR_SAFETY
. - Selain itu, LinearOpModes tidak lagi bisa mendapatkan kembali kemampuan untuk memanipulasi aktuator dengan menghilangkan interupsi thread mereka atau menggunakan thread lain.
- Menghapus dukungan untuk Android versi 6.0 (Marshmallow). MinSdkVersion sekarang menjadi 24.
- Meningkatkan versi Robocol.
- Ini berarti Pengontrol Robot atau Stasiun Pengemudi versi 8.2 atau lebih baru tidak akan dapat berkomunikasi dengan Stasiun Pengemudi atau Pengontrol Robot versi 8.1 atau lebih lama.
- Jika Anda lupa memperbarui kedua aplikasi secara bersamaan, pesan kesalahan akan ditampilkan menjelaskan aplikasi mana yang lebih lama dan harus diperbarui.
- FTC_FieldCoordinateSystemDefinition.pdf telah dipindahkan. Itu masih dalam riwayat git, tetapi telah dihapus dari snapshot git yang sesuai dengan tag 8.2. Versi resmi sekarang ada di Sistem Koordinat Lapangan.
-
LynxUsbDevice.addConfiguredModule()
dan LynxUsbDevice.getConfiguredModule()
telah diganti dengan LynxUsbDevice.getOrAddModule()
. - Blok Lama untuk Deteksi Objek Vuforia dan TensorFlow sudah usang dan telah dihapus dari kotak peralatan editor Blok. OpModes Blok yang ada yang berisi Blok lama untuk Deteksi Objek Vuforia atau TensorFlow dapat dibuka di editor Blok, tetapi menjalankannya tidak akan berfungsi.
Fitur baru
- Menambahkan API
VisionPortal
baru untuk visi komputer- API ini mungkin dapat berubah untuk rilis awal final!
- Beberapa sampel baru ditambahkan.
- Menambahkan dukungan untuk mendeteksi AprilTags.
-
VisionPortal
adalah titik masuk baru untuk pemrosesan AprilTag dan TFOD. - Vuforia akan dihapus pada rilis mendatang.
- Dependensi TensorFlow diperbarui.
- Menambahkan dukungan untuk kontrol kamera webcam ke blok.
- Toolbox editor Blocks sekarang memiliki kategori Vision, tepat di atas kategori Utilitas.
- Dokumentasi terkait untuk teknologi terkait dapat ditemukan di
- Pengenalan Tag April
- Panduan SDK AprilTag
- Nilai Deteksi AprilTag
- Gambar Uji AprilTag
- Kalibrasi Kamera
- Menambahkan dukungan Driver Station untuk gamepad Logitech Dual Action dan Sony PS5 DualSense.
- Ini belum termasuk dukungan gamepad Sony PS5 DualSense Edge.
- Selalu mengacu pada Game Manual 1 untuk mengetahui legalitas gamepad dalam kompetisi.
- Menambahkan dukungan untuk streaming muatan MJPEG ke driver UVC (rutin dekompresi JPEG eksternal diperlukan untuk digunakan).
- Menampilkan petunjuk di UI Driver Station tentang cara mengikat gamepad saat tombol ditekan atau stik digerakkan pada gamepad yang tidak terikat.
- Menambahkan opsi untuk layar penuh "Camera Stream" di Driver Station.
- Kode sumber OnBotJava secara otomatis disimpan sebagai file ZIP di setiap build dengan jendela bergulir dari 30 build terakhir disimpan; memungkinkan pemulihan kode sumber dari versi sebelumnya jika kode terhapus atau rusak secara tidak sengaja.
- Menambahkan dukungan untuk mengubah alamat Hub Ekspansi yang tidak terhubung langsung melalui USB.
- Layar Perubahan Alamat Hub Ekspansi kini memiliki tombol Terapkan yang mengubah alamat tanpa meninggalkan layar.
- Alamat yang ditetapkan ke hub lain yang tersambung ke koneksi USB atau Hub Kontrol yang sama tidak lagi dapat dipilih.
- Meningkatkan ukuran maksimum Blokir komentar sebaris menjadi 100 karakter
- Menyimpan posisi balon komentar Blok terbuka
- Menambahkan sampel Mengemudi AprilTag baru: RobotDriveToAprilTagTank & RobotDriveToAprilTagOmni
- Menambahkan Contoh untuk mengilustrasikan pengoptimalan eksposur kamera untuk AprilTags: ConceptAprilTagOptimizeExposure
Perbaikan Bug
- Memperbaiki layar inspeksi untuk melaporkan versi aplikasi menggunakan versi SDK yang ditentukan di perpustakaan, bukan versi yang ditentukan di
AndroidManifest.xml
. Tindakan ini memperbaiki kasus ketika aplikasi dapat menampilkan nomor versi yang cocok kepada pengguna namun tetap menyatakan bahwa versi tersebut tidak cocok.- Jika versi yang ditentukan di
AndroidManifest.xml
tidak cocok dengan versi SDK, entri versi SDK akan ditampilkan di halaman Kelola web.
- Memperbaiki tidak ada kesalahan yang ditampilkan saat menyimpan file konfigurasi dengan nama duplikat dari Driver Station.
- Memperbaiki kebuntuan pada driver UVC yang muncul di OpenFTC/EasyOpenCV#57.
- Memperbaiki kebuntuan pada driver UVC yang dapat terjadi saat kamera melakukan hot-plug.
- Memperbaiki kompatibilitas driver UVC dengan kamera rana global Arducam OV9281.
- Memperbaiki kondisi Berhenti Darurat ketika build OnBotJava dengan nama OpMode duplikat terjadi.
- Memperbaiki penyebab yang diketahui dari logspam "Upaya penggunaan instance LynxModule tertutup".
- Memperbaiki pola LED identifikasi visual saat mengonfigurasi Hub Ekspansi yang terhubung melalui RS-485.
Versi 8.1.1 (20221201-150726)
Ini adalah rilis perbaikan bug saja untuk mengatasi empat masalah berikut.
- Masalah #492 - Tidak dapat membuat opmode blok baru.
- Edisi #495 - Hapus pengubah terakhir dari objek Telemetri OpMode.
- Masalah #500 - Beberapa perangkat tidak dapat dikonfigurasi ketika aplikasi Driver Station telah diperbarui ke 8.1
- Memperbarui aplikasi Robot Controller atau aplikasi Driver Station ke 8.1.1 atau lebih baru akan memperbaiki masalah ini.
- Sensor sentuh Robotika Modern dapat dikonfigurasi sebagai Perangkat Digital. Ini hanya dapat digunakan sebagai Perangkat Analog.
Versi 8.1 (20221121-115119)
Perubahan yang Mengganggu
- Menghentikan penggunaan bidang
OpMode
msStuckDetectInit
, msStuckDetectInitLoop
, msStuckDetectStart
, msStuckDetectLoop
, dan msStuckDetectStop
.- OpModes tidak lagi memiliki batas waktu untuk
init()
, init_loop()
, start()
atau loop()
, sehingga kolom yang terkait dengan metode tersebut tidak lagi digunakan. -
stop()
masih memiliki batas waktu, tetapi sekarang sudah di-hardcode menjadi 1 detik, dan tidak dapat diubah menggunakan msStuckDetectStop
.
- Menghentikan penggunaan metode
OpMode
internalPreInit()
, internalPostInitLoop()
, dan internalPostLoop()
.-
OpMode
berulang akan terus memanggil metode ini jika metode tersebut diganti. - Metode ini tidak akan dipanggil sama sekali untuk
LinearOpMode
s.
- Menghentikan penggunaan (dan berhenti menghormati)
DeviceProperties.xmlTagAliases
.
Peningkatan
- Menambahkan antarmuka
IMU
baru ke Blok dan Java yang dapat digunakan dengan IMU BNO055 asli yang disertakan di semua Hub Kontrol dan Hub Ekspansi lama, dan IMU BHI260AP alternatif baru.- Anda dapat menentukan jenis IMU yang ada di Pusat Kontrol Anda dengan membuka halaman Kelola di antarmuka web.
- Untuk mempelajari cara menggunakan antarmuka
IMU
yang baru, lihat https://ftc-docs.firstinspires.org/programming_resources/imu/imu.html. Sampel Blok SensorIMU
juga diperbarui untuk menggunakan antarmuka IMU
baru, dan sampel Java berikut ditambahkan:-
SensorIMUOrthogonal
- Gunakan sampel ini jika REV Hub Anda dipasang sejajar atau tegak lurus dengan bagian bawah robot Anda.
-
SensorIMUNonOrthogonal
- Gunakan sampel ini jika REV Hub Anda dipasang ke robot Anda dalam orientasi lain
-
ConceptExploringIMUOrientations
- OpMode ini adalah alat untuk membantu Anda memahami cara kerja orientasi ortogonal, dan mana yang berlaku untuk robot Anda.
- IMU BHI260AP hanya dapat diakses melalui antarmuka
IMU
baru. IMU BNO055 dapat diprogram menggunakan antarmuka IMU
baru, atau Anda dapat terus memprogramnya menggunakan antarmuka BNO055IMU
lama. Jika Anda ingin dapat dengan cepat beralih ke Hub Kontrol baru yang mungkin berisi IMU BHI260AP, Anda harus memigrasikan kode Anda untuk menggunakan antarmuka IMU
baru. - Berbeda dengan antarmuka
BNO055IMU
lama, yang hanya berfungsi dengan benar ketika REV Hub dipasang rata pada robot Anda, antarmuka IMU
memungkinkan Anda menentukan orientasi REV Hub pada robot Anda. Ini akan menjelaskan hal ini, dan memberi Anda orientasi dalam Sistem Koordinat Robot, bukan sistem koordinat khusus untuk REV Hub. Hasilnya, pitch dan yaw Anda akan menjadi 0 saat robot Anda sejajar, bukan saat REV Hub sejajar, yang akan menghasilkan nilai sudut orientasi yang jauh lebih andal untuk sebagian besar orientasi pemasangan. - Karena sistem koordinat robot-sentris yang baru, sudut pitch dan roll yang dihasilkan oleh antarmuka
IMU
akan berbeda dengan sudut yang dihasilkan oleh antarmuka BNO055IMU
. Saat Anda memigrasikan kode, perhatikan dokumentasinya dengan cermat. - Jika Anda telah mengkalibrasi BNO055, Anda dapat memberikan data kalibrasi tersebut ke antarmuka
IMU
baru dengan meneruskan instans BNO055IMUNew.Parameters
ke IMU.initialize()
. - Antarmuka
IMU
juga cocok untuk diimplementasikan oleh vendor pihak ketiga untuk IMU yang mendukung pemberian orientasi dalam bentuk angka empat.
-
OpMode
berulang (sebagai lawan LinearOpMode
s) sekarang dijalankan pada thread khusus.- Waktu siklus tidak boleh dipengaruhi oleh hal lain yang terjadi dalam sistem.
-
OpMode
Lambat tidak dapat lagi menambah jumlah waktu yang diperlukan untuk memproses perintah jaringan, dan sebaliknya. - Metode
init()
, init_loop()
, start()
dan loop()
tidak perlu lagi dikembalikan dalam jangka waktu tertentu.
- Driver warisan IMU BNO055: memulihkan kemampuan untuk menginisialisasi dalam satu OpMode, dan kemudian meminta OpMode lain menggunakan kembali inisialisasi tersebut. Hal ini memungkinkan Anda mempertahankan posisi 0-yaw di antara OpMode, jika diinginkan.
- Mengizinkan versi driver perangkat yang disesuaikan di FTC SDK untuk menggunakan tag XML yang sama.
- Sebelumnya, jika Anda ingin mengkustomisasi driver perangkat, Anda harus menyalinnya ke kelas baru dan memberinya tag XML baru. Memberinya tag XML baru berarti untuk mengganti driver mana yang digunakan, Anda harus memodifikasi file konfigurasi Anda.
- Sekarang, untuk menggunakan driver khusus Anda, yang harus Anda lakukan adalah menentukan kelas driver khusus Anda saat memanggil
hardwareMap.get()
. Untuk kembali ke driver asli, tentukan kelas driver asli. Jika Anda menentukan antarmuka yang diimplementasikan oleh driver asli dan driver kustom, tidak ada jaminan implementasi mana yang akan dikembalikan.
Perbaikan Bug
- Perbaikan dalam mengakses tautan "Kelola TensorFlow Lite Models" dan "Kelola Suara" serta melakukan unduhan Blok dan OnBotJava OpMode dari REV Hardware Client.
- Memperbaiki masalah ketika driver perangkat I2C akan diinisialisasi secara otomatis menggunakan parameter yang ditetapkan dalam pengoperasian OpMode sebelumnya.
- Meningkatkan penempatan menu popup Driver Station dalam tata letak lanskap.
- Memperbaiki NullPointerException ketika mencoba mendapatkan IMU BNO055 yang tidak dikonfigurasi dalam Blocks OpMode pada telepon RC.
- Memperbaiki masalah pada Blok jika suatu variabel diberi nama
orientation
.
Versi 8.0 (20220907-131644)
Perubahan yang Mengganggu
- Meningkatkan versi Robocol.
- Ini berarti Pengontrol Robot atau Stasiun Pengemudi versi 8.0 atau lebih baru tidak akan dapat berkomunikasi dengan Stasiun Pengemudi atau Pengontrol Robot versi 7.2 atau lebih lama.
- Jika Anda lupa memperbarui kedua aplikasi secara bersamaan, pesan kesalahan akan ditampilkan menjelaskan aplikasi mana yang lebih lama dan harus diperbarui.
- Inisialisasi perangkat I2C sekarang terjadi saat Anda mengambilnya dari
HardwareMap
untuk pertama kalinya.- Sebelumnya, semua perangkat I2C akan diinisialisasi sebelum OpMode mulai dijalankan, baik Anda benar-benar akan menggunakannya atau tidak. Hal ini dapat mengakibatkan penurunan kinerja dan peringatan yang tidak diperlukan.
- Dengan perubahan ini, sangat penting bagi pengguna Java untuk mengambil semua perangkat yang diperlukan dari
HardwareMap
selama fase Init OpMode . Yaitu, mendeklarasikan variabel untuk setiap perangkat keras yang akan digunakan OpMode, dan menetapkan nilai untuk masing-masing perangkat. Jangan lakukan ini selama fase Jalankan, atau OpMode Anda mungkin terhenti sebentar saat perangkat yang Anda ambil diinisialisasi. - OpModes yang tidak menggunakan semua perangkat I2C yang ditentukan dalam file konfigurasi akan memerlukan waktu lebih sedikit untuk inisialisasi. OpModes yang menggunakan semua perangkat I2C yang ditentukan harus memakan waktu yang sama seperti sebelumnya.
- Memperbaiki masalah #251 dengan mengubah urutan pembacaan laju rotasi sumbu dari vektor kecepatan sudut di driver IMU BNO055.
- Menghentikan
pitchMode
di BNO055IMU.Parameters
.- Menyetel
pitchMode
ke PitchMode.WINDOWS
akan melanggar konvensi koordinat yang digunakan oleh pengemudi.
- Memindahkan
OpModeManagerImpl
ke paket com.qualcomm.robotcore.eventloop.opmode
.- Ini merusak perpustakaan pihak ketiga EasyOpenCV (versi 1.5.1 dan yang lebih lama) dan Dasbor FTC (versi 0.4.4 dan yang lebih lama).
- Menghapus metode
OpMode
yang tidak digunakan lagi resetStartTime()
(gunakan resetRuntime()
sebagai gantinya). - Menghapus kelas
LinearOpMode.LinearOpModeHelper
yang dilindungi (yang tidak dimaksudkan untuk digunakan oleh OpModes). - Menghapus jenis konfigurasi Perangkat I2C (Sinkron) (tidak digunakan lagi sejak 2018)
Peningkatan
- Pengecualian yang tidak tertangkap di OpModes tidak lagi memerlukan Robot Restart
- Layar biru yang muncul dengan stacktrace bukan merupakan kesalahan SDK; ini menggantikan teks merah di area telemetri.
- Sejak rilis SDK pertama, kerusakan OpMode telah membuat robot berada dalam status "BERHENTI DARURAT", hanya menampilkan baris pengecualian pertama, dan mengharuskan pengguna menekan "Mulai Ulang Robot" untuk melanjutkan
- Pengecualian selama OpMode sekarang membuka jendela popup dengan skema warna yang sama dengan penampil log, yang berisi 15 baris pelacakan tumpukan pengecualian untuk memudahkan penelusuran ke baris yang melanggar tanpa perlu terhubung untuk melihat log melalui ADB atau menelusuri log dalam jumlah besar di penampil log.
- Teks pengecualian di jendela popup dapat diperbesar dan digulir seperti halaman web.
- Menekan tombol "OK" di jendela popup akan kembali ke layar utama Driver Station dan memungkinkan OpMode segera dijalankan kembali, tanpa perlu melakukan "Restart Robot"
- Menambahkan sampel Java baru untuk mendemonstrasikan penggunaan kelas perangkat keras untuk mengabstraksi aktuator robot, dan membagikannya ke beberapa OpMode.
- Contoh OpMode adalah ConceptExternalHardwareClass.java
- Kelas perangkat keras yang diabstraksi adalah RobotHardware.java
- Memperbarui sampel Java RobotAutoDriveByGyro_Linear untuk menggunakan IMU hub Kontrol REV/Ekspansi.
- Memperbarui sampel Vuforia untuk mereferensikan aset PowerPlay dan memiliki nama serta lokasi bidang target gambar yang benar.
- Memperbarui sampel TensorFlow untuk mereferensikan aset PowerPlay.
- Menambahkan dukungan keikutsertaan untuk fitur bahasa Java 8 ke editor OnBotJava.
- Untuk ikut serta, buka Pengaturan OnBotJava, dan centang
Enable beta Java 8 support
. - Perhatikan bahwa kode Java 8 hanya akan dikompilasi ketika Pengontrol Robot menjalankan Android 7.0 Nougat atau lebih baru.
- Silakan laporkan masalah di sini.
- Di OnBotJava, mengklik kesalahan build sekarang akan melompat ke lokasi yang benar.
- Meningkatkan perilaku pelengkapan otomatis OnBotJava, untuk memberikan opsi penyelesaian yang lebih baik dalam banyak kasus.
- Menambahkan kode QR ke Laporan Inspeksi Pengontrol Robot saat dilihat dari Stasiun Pengemudi untuk dipindai oleh inspektur di kompetisi.
- Meningkatkan kinerja dan keandalan I2C dalam beberapa skenario.
Versi 7.2 (20220723-130006)
Perubahan yang Mengganggu
- Memperbarui alat pembangun. Untuk pengguna Android Studio, perubahan ini membutuhkan Android Studio Chipmunk 2021.2.1.
- Menghapus dukungan untuk perangkat yang bukan persaingan legal, termasuk modul kontrol inti robotika modern, pengontrol matriks, dan pengontrol dan sensor Hitechnic/NXT. Dukungan tetap untuk sensor I2C robotika modern.
Peningkatan
- Meningkatkan ketinggian area sentuhan menu lansekap 3-batang di stasiun pengemudi, membuatnya lebih mudah untuk dipilih.
- Menambahkan metode
terminateOpModeNow()
untuk memungkinkan opmodes segera mengeksploitasi diri sendiri. - Menambahkan metode
opModeInInit()
ke LinearOpMode
untuk memfasilitasi init-loop. Mirip dengan opModeIsActive()
tetapi untuk fase init. - PERINGATAN PENGGUNA Jika mereka memiliki GamePad Logitech F310 yang terhubung yang diatur ke Mode DirectInput.
- Memungkinkan pengontrol motor SparkMini bereaksi lebih cepat untuk mempercepat perubahan.
- Menyembunyikan jumlah versi aplikasi Sister yang diinstal secara tidak benar (yaitu DS diinstal pada perangkat RC atau sebaliknya) di layar inspeksi.
- Menambahkan dukungan untuk memungkinkan pengguna mengedit komentar untuk blok RunopMode.
- Menambahkan bidang ParameterDefaultValues ke @ExportToBlocks. Ini memberikan kemampuan untuk metode Java dengan anotasi @ExportToBlocks untuk menentukan nilai default untuk parameter metode ketika ditampilkan dalam editor blok.
- Buat blok linearopmode lebih mudah dibaca. Nama opmode ditampilkan pada blok RunopMode, tetapi tidak pada blok linearopMode lainnya.
- Dukungan tambahan untuk deteksi objek TensorFlow untuk menggunakan generator bingkai yang berbeda, bukan vuforia. Menggunakan Vuforia untuk meneruskan bingkai kamera ke TFOD masih didukung.
- Menghapus penggunaan renderscript.
- Fixes LogSpam pada startup aplikasi stacktraces berulang yang berkaitan dengan
"Failed resolution of: Landroid/net/wifi/p2p/WifiP2pManager$DeviceInfoListener"
- Memungkinkan menonaktifkan radio bluetooth dari layar inspeksi
- Meningkatkan pesan peringatan saat perangkat I2C tidak menanggapi
- Menambahkan dukungan untuk mengendalikan LED RGB yang ada di PS4/Etpark GamePad dari Opmodes
- Menghapus referensi pushbot warisan dari sampel opmode. Mengganti nama sampel "pushbot" menjadi "robot". Petunjuk arah motor terbalik agar kompatibel dengan kereta drive "Direct Drive".
Perbaikan bug
- Perbaikan Masalah #316 (Matrixf.inverted () mengembalikan matriks berukuran salah untuk matriks 1x1 dan 2x2).
- Periksa diri sekarang memungkinkan untuk stasiun pengemudi dan kompatibilitas pengontrol robot antara rilis titik.
- Memperbaiki bug di mana jika instance objek
RumbleEffect
yang sama antri untuk beberapa gamepad, dapat terjadi bahwa kedua perintah Rumble akan dikirim ke hanya satu gamepad. - Memperbaiki bug di stasiun driver di mana di hub driver, jika fitur gamepad canggih dinonaktifkan dan gamepad yang didukung secara resmi terhubung, kemudian membuka fitur gamepad canggih atau jenis gamepad overrides layar akan menyebabkan gamepad rebound oleh driver USB khusus meskipun Fitur gamepad canggih dinonaktifkan.
- Melindungi dari (tidak mungkin) pengecualian pointer nol di vuforia localizer.
- Harden Onbotjava dan blok menghemat untuk melindungi dari masalah simpan saat memutuskan hubungan dari program dan mengelola
- Perbaikan masalah di mana aplikasi RC akan digantung jika Write Rev Hub I2C gagal karena operasi I2C sebelumnya masih berlangsung. Hang ini paling umum terjadi selama inisialisasi sensor jarak 2m
- Menghapus Program Sampel ConceptWebCam.java. Sampel ini tidak kompatibel dengan OnbotJava.
- Memperbaiki bug di mana menggunakan tag HTML di bidang komentar @ExportToBlocks mencegah editor blok memuat.
- Perbaikan Editor Blok sehingga tidak meminta Anda untuk menyimpan ketika Anda belum memodifikasi apa pun.
- Memperbaiki mengunggah proyek blok yang sangat besar untuk editor blok offline.
- Memperbaiki bug yang menyebabkan blok untuk DCMoTorex dihilangkan dari blok Toolbox Editor.
- Perbaikan program blok yang dilucuti blok (karena menggunakan blok label TensorFlow)
Versi 7.1 (20211223-120805)
- Perbaikan crash saat menelepon
isPwmEnabled()
(Edisi #223). - Memperbaiki kesalahan serat (masalah #4).
- Fixes Driver Station Crash Ketika mencoba menggunakan gamepad DualShock4 V1 dengan fitur gamepad canggih diaktifkan (Edisi #173).
- Memperbaiki kemungkinan (tetapi tidak mungkin) stasiun pengemudi macet saat menghubungkan gamepad dari jenis apa pun.
- Perbaikan bug di mana stasiun driver akan menggunakan Generic 20% DeadZone untuk Xbox360 dan Logitech F310 GamePads ketika fitur gamepad canggih dinonaktifkan.
- Menambahkan opmode sampel Simpleomnidrive.
- Menambahkan API Kontrol Balance Putih UVC.
- Perbaikan Masalah #259 Sebagian besar blok sampel untuk TensorFlow tidak dapat digunakan untuk model yang berbeda.
- Blok yang sebelumnya diberi label TensorFlowObjectDetectionFreightFrenzy (dari subkategori bernama "Dioptimalkan untuk Freight Frenzy") dan TensorFlowObjectDetectionCustomodel (dari subkategori bernama "Model Kustom") telah diganti dengan blok berlabel TensorFlowBectDEbjecte. Blok dalam opmodes yang ada akan secara otomatis diperbarui ke blok baru ketika dibuka di Editor Blok.
- Perbaikan Masalah #260 Blok Tidak dapat memanggil metode java yang memiliki parameter vuforialocalizer.
- Blok sekarang memiliki blok berlabel vuforiaFreightFrenzy.getVuforialocalizer untuk ini.
- Menambahkan halaman untuk mengelola model TensorFlow Lite di/sdcard/first/tflitemodels. Untuk sampai ke halaman model TFLITE:
- Anda dapat mengklik tautan di bagian bawah halaman Kelola.
- Anda dapat mengklik tautan di halaman proyek blok kanan atas.
- Fixes Logspam Saat
isBusy()
dipanggil pada motor yang tidak dalam mode RTP. - Menyembunyikan item "Kata Sandi RC" di layar inspeksi untuk pengontrol robot berbasis telepon. (Ini hanya berlaku untuk hub kontrol).
- Menambahkan Saluran 165 ke menu pemilihan saluran langsung Wi-Fi di layar Pengaturan. (165 sebelumnya tersedia melalui Web UI, tetapi tidak secara lokal di aplikasi).
Versi 7.0 (20210915-141025)
Peningkatan dan fitur baru
- Menambahkan dukungan untuk pustaka eksternal ke OnbotJava dan blok.
- Unggah file .jar dan .aar di OnbotJava.
- Batasan yang Diketahui - Perangkat RobotController harus menjalankan Android 7.0 atau lebih besar.
- Keterbatasan yang Diketahui - File .aar dengan aset tidak didukung.
- Perpustakaan eksternal dapat memberikan dukungan untuk perangkat perangkat keras dengan menggunakan anotasi dalam paket com.qualcomm.robotcore.hardware.configuration.annotations.
- Perpustakaan eksternal dapat menyertakan file .so untuk kode asli.
- Perpustakaan eksternal dapat digunakan dari Onbotjava Opmodes.
- Perpustakaan eksternal yang menggunakan anotasi berikut dapat digunakan dari blok opmodes.
- org.firstinspires.ftc.robotcore.external.exportclastoblocks
- org.firstinspires.ftc.robotcore.external.ExportToBlocks
- Perpustakaan eksternal yang menggunakan anotasi berikut dapat menambahkan perangkat perangkat keras baru:
- com.qualcomm.robotcore.hardware.configuration.annotations.analogsensorType
- com.qualcomm.robotcore.hardware.configuration.annotations.deviceProPerties
- com.qualcomm.robotcore.hardware.configuration.annotations.digitalidevicetype
- com.qualcomm.robotcore.hardware.configuration.annotations.i2cdevicetype
- com.qualcomm.robotcore.hardware.configuration.annotations.motorpe
- com.qualcomm.robotcore.hardware.configuration.annotations.servotype
- Perpustakaan eksternal yang menggunakan anotasi berikut dapat menambahkan fungsionalitas baru ke pengontrol robot:
- 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
- Menambahkan dukungan untuk Hub Driver Robotika Rev.
- Menambahkan USBRACE USB GamePad driver ke stasiun driver ke stasiun driver (lihat menu "Fitur GamePad Tingkat Lanjut" dalam pengaturan DS).
- Memungkinkan gamepad untuk mengerjakan perangkat tanpa dukungan kernel Linux asli (misalnya beberapa perangkat Motorola Rumania).
- Memungkinkan DS untuk membaca nomor seri unik dari setiap gamepad, memungkinkan pemulihan otomatis gamepad yang dijatuhkan bahkan jika dua gamepad dari penurunan model yang sama. (Catatan: Sayangnya ini tidak berlaku untuk gamepad ETPark, karena mereka tidak memiliki serial yang unik) .
- Membaca nomor seri yang unik juga menyediakan kemampuan untuk mengonfigurasi DS untuk menetapkan gamepad ke posisi tertentu secara default (jadi tidak perlu memulai+A/B sama sekali).
- Cincin LED pada GamePad Xbox360 dan bilah LED RGB pada GamePad PS4 digunakan untuk menunjukkan posisi driver yang diikat gamepad.
- Gamepad gamepad Xbox360, PS4, dan Etpark dapat dikontrol dari opmodes.
- Touchpad 2-point pada gamepad PS4 dapat dibaca dari Opmodes.
- Tombol "Back" dan "Guide" di gamepad sekarang dapat dengan aman terikat dengan kontrol robot (sebelumnya, pada banyak perangkat, Android akan mencegat tombol -tombol ini saat tombol beranda menekan dan menutup aplikasi).
- Fitur gamepad canggih diaktifkan secara default, tetapi dapat dinonaktifkan melalui menu Pengaturan untuk kembali ke dukungan gamepad yang disediakan secara asli oleh Android.
- Meningkatkan akurasi pengukuran ping.
- Perbaikan masalah di mana waktu ping terlihat lebih tinggi dari kenyataan ketika awalnya menghubungkan atau memulai kembali robot.
- Untuk melihat peningkatan penuh, Anda harus memperbarui baik robot controller dan aplikasi stasiun driver.
- Pembaruan sampel yang terletak di/ftcrobotController/src/main/java/org/firstinspires/ftc/robotcontroller/eksternal/sampel.
- Menambahkan sampel ConceptGamePadrumble dan ConceptGamepadTouchPad untuk menggambarkan penggunaan kemampuan Gampad baru ini.
- Sampel Vuforia yang ada menjadi hanya 2 sampel (ConceptVuforiaFieldNAVIGASI & CONCEPTVUFORIAFIELDNAVIGATIONWEBCAM) yang menunjukkan cara menentukan lokasi robot di lapangan menggunakan Vuforia. Keduanya menggunakan gambar target musim saat ini.
- Menambahkan ConceptVuForiAdRivetoTargetWebCam untuk mengilustrasikan cara mudah untuk berkendara langsung ke target Vuforia yang terlihat.
- Membuat banyak perbaikan pada sistem peringatan dan peringatan individu.
- Peringatan sekarang jauh lebih jauh, sehingga lebih mudah dibaca.
- Peringatan baru ditambahkan untuk kondisi yang harus diselesaikan sebelum bersaing.
- Peringatan aplikasi yang tidak cocok sekarang menggunakan versi aplikasi utama dan kecil, bukan kode versi.
- Peringatan secara otomatis diaktifkan kembali ketika aplikasi pengontrol robot dari musim FTC baru diinstal.
- Menambahkan dukungan untuk transaksi I2C pada hub ekspansi / hub kontrol tanpa menentukan alamat register.
- Lihat Bagian 3 dari spek Ti I2C.
- Menyebut metode baru ini saat menggunakan perangkat keras robotika modern akan menghasilkan UnsupportedOperationException.
- Mengubah metode vuforialocalizer
close()
menjadi publik. - Menambahkan dukungan untuk model deteksi objek TensorFlow V2.
- Mengurangi ambiguitas bahasa dan grafik periksa diri.
- Onbotjava sekarang memperingatkan tentang file yang berpotensi tidak diinginkan.
- Meningkatkan perilaku wi-fi band dan pemilih saluran di halaman web mengelola.
Perbaikan bug
- Memperbaiki Aplikasi Pengontrol Robot Crash di Android 9+ Saat stasiun driver terhubung.
- Perbaikan masalah di mana opmode bertanggung jawab untuk memanggil shutdown pada TensorFlow TFObjectDetector. Sekarang ini dilakukan secara otomatis.
- Memperbaiki blok inisialisasi vuforia untuk memungkinkan pengguna memilih axesorder. Opmodes sampel blok yang relevan diperbarui.
- Memperbaiki Masalah FtCrobotController #114 Blok LED dan kelas Java tidak berfungsi.
- Perbaikan pencocokan logging untuk opmodes yang berisi karakter khusus atas nama mereka.
- Kontrol Opmode Stasiun Pengemudi menjadi tidak responsif jika stasiun pengemudi diatur ke tata letak lansekap dan build onbotjava dipicu saat opmode sedang berjalan.
- Memperbaiki aplikasi stasiun driver yang menutup sendiri saat dialihkan dari, atau layar dimatikan.
- Memperbaiki "Black Swirl of Doom" (Infinite "mengkonfigurasi pesan Wi-Fi Direct") pada perangkat yang lebih lama.
- Memperbarui komentar wiki di halaman intro OnbotJava.
Versi 6.2 (20210218-074821)
Peningkatan
- Upaya untuk secara otomatis memperbaiki kondisi di mana hub ekspansi internal hub kontrol tidak berfungsi dengan mengarahkan kembali firmwarenya
- Membuat berbagai perbaikan pada layar pasangan langsung Wi-Fi, terutama dalam mode lansekap
- Membuat layanan pengontrol robot tidak lagi dinyalakan kembali secara kategoris ketika aktivitas utama dibawa ke latar depan
- (Misalnya layanan tidak lagi dimulainya hanya dengan melihat layar diri dan menekan tombol kembali)
- Masih dimulai ulang jika menu Pengaturan atau Konfigurasi Menu Robot dibuka
Perbaikan bug
- Perbaikan Masalah FtCrobotController #71 Tidak Dapat Membuka Opmodes di V6.1 Blok Offline Editor
- Memperbaiki Masalah FtcrobotController #79 6.1 Menyebabkan Reboot Lembut di Motorola E5 Play
- Perbaikan masalah di mana pengawas OS Control Hub akan memulai ulang aplikasi robot controller jika hub kontrol tidak dapat berkomunikasi dengan hub ekspansi internalnya
- Memperbaiki perangkat I2C tertentu yang tidak muncul di bidang
HardwareMap
yang sesuai (seperti hardwareMap.colorSensor
) - Memperbaiki masalah di mana melakukan reset pabrik Wi-Fi di hub kontrol tidak akan mengatur pita Wi-Fi menjadi 2,4 GHz
- Perbaikan masalah di mana OnbotJava mungkin gagal membuat file baru jika opsi untuk "Mengatur kode untuk perangkat keras yang dikonfigurasi" dipilih
- Memperbaiki masalah di mana melakukan operasi tertentu setelah crash opmode sementara akan memecah kontrol/ekspansi komunikasi hub ekspansi
- Perbaikan masalah di mana hub kontrol dengan hub ekspansi yang terhubung dengan USB yang dikonfigurasi tidak akan berfungsi jika hub ekspansi hilang saat startup
- Memperbaiki masalah potensial yang disebabkan oleh versi firmware kontrol/ekspansi hub ekspansi yang tidak cocok
- Perbaikan ftc_app edisi 673 korek api terbaru dihapus alih -alih yang lama dengan robotlog
- Perbaikan ConceptVuForiaultivealNavigationWebCam sampel opmode dengan mengorientasikan kamera dengan benar pada robot.
- Perbaikan masalah di mana logcat akan spam dengan interrupted exceptions ketika berhenti diminta dari stasiun pengemudi (perilaku ini secara tidak sengaja diperkenalkan di v5.3). Perubahan ini tidak berdampak pada fungsionalitas.
- Memperbaiki masalah di mana editor blok gagal memuat jika nama setiap teleop opmode berisi apostrof.
Versi 6.1 (20201209-113742)
- Membuat tombol pemindaian pada layar konfigurasi Perbarui daftar hub ekspansi yang terhubung melalui RS-485
- Memperbaiki Skystone Edisi #143
- Meningkatkan kompatibilitas antarmuka web dengan browser yang lebih lama dan versi webview sistem Android.
- Memperbaiki masalah dalam driver UVC di mana beberapa kamera (misalnya MS LifeCams tertentu) yang melaporkan interval bingkai seperti yang dibulatkan daripada nilai terpotong (misalnya
666667*100ns
, bukan 666666*100ns
untuk 15fps) akan gagal untuk mulai mengalir. - Menambahkan dukungan di driver UVC untuk kontrol PTZ virtual
- Menambahkan Dukungan di UVC Driver untuk Kontrol Gain (ISO)
- Menambahkan dukungan di driver UVC untuk mengaktifkan/menonaktifkan prioritas AE. Pengaturan ini menyediakan sarana untuk memberi tahu firmware kamera
- A) Ini dapat menggarisbawahi frame rate yang diminta untuk memberikan gambar yang lebih baik secara teoritis (yaitu dengan paparan yang lebih lama daripada periode antar-bingkai dari laju bingkai yang dipilih memungkinkan)
- B) Itu harus memenuhi tenggat waktu antar-bingkai untuk laju bingkai yang dipilih, bahkan jika gambar mungkin tidak terpapar sebagai hasilnya
- Menambahkan dukungan untuk Hub Kontrol OS 1.1.2 Robot Controller Watchdog
- Aplikasi pengontrol robot akan dimulai ulang jika berhenti merespons lebih dari 10 detik
- Menambahkan dukungan untuk menggunakan aplikasi Stasiun Driver di Android 10+
- Memperkenalkan fitur pemilihan prasaskah teleop otomatis
- Untuk detail dan panduan penggunaan, silakan lihat entri wiki ini
- Menampilkan ikon di sebelah nama OpMode di dropdown daftar opmode di stasiun driver untuk menunjukkan sumber opmode (yaitu alat pemrograman yang digunakan untuk membuatnya)
- Memperbaiki masalah di mana aplikasi stasiun driver akan keluar setelah menampilkan layar langsung Wi-Fi
- Memperbaiki blok dan permintaan OnbotJava saat diakses melalui klien perangkat keras REV
Versi 6.0 (20200921-085816)
Catatan Penting
- Versi 6.0 adalah versi untuk musim gol akhir.
- Membutuhkan Android Studio 4.0.
- Pengguna Android Studio perlu terhubung ke internet pertama kali mereka membangun aplikasi (untuk mengunduh paket yang diperlukan untuk build).
- Versi 5.5 adalah musim yang cukup besar, Agustus 2020, drop. Perlu meninjau catatan rilis di bawah ini juga.
- Versi 5.5 dan lebih besar tidak akan berfungsi pada ponsel Android 4.x dan 5.x yang lebih lama. Pengguna harus meningkatkan ke perangkat Android 6.x yang disetujui atau yang lebih baru.
- Nilai PIDF default untuk Rev Motors telah dikembalikan ke nilai PID default yang digunakan pada musim 2018-2019
- Perubahan ini dilakukan karena nilai 2018-2019 ternyata bekerja lebih baik untuk banyak mekanisme
- Ini membawa perilaku motor rev sejalan dengan perilaku semua motor lainnya
- Jika Anda lebih suka perilaku musim 2019-2020 untuk Rev Motors, berikut adalah nilai-nilai PIDF yang ada, sehingga Anda dapat secara manual mengaturnya di opmodes Anda:
HD HEX Motors (semua gearbox): Nilai PIDF kecepatan: P = 1.17
, I = 0.117
, F = 11.7
Posisi Nilai PIDF: P = 5.0
Core Hex Motor: Velocity PIDF Nilai: P = 4.96
, I = 0.496
, F = 49.6
Posisi Posisi Nilai PIDF: P = 5.0
Fitur baru
- Termasuk model inferensi TensorFlow dan sampel opmodes untuk mendeteksi tumpukan starter gol pamungkas (empat cincin vs tumpukan cincin tunggal).
- Termasuk target visi tujuan utama Vuforia dan sampel opmodes.
- Memperkenalkan fitur zoom digital untuk deteksi objek TensorFlow (untuk mendeteksi objek lebih akurat pada jarak yang lebih besar).
- Menambahkan entri konfigurasi untuk motor hex hd ultraplanetary rev
Peningkatan
- Menambahkan metode setGain () dan getGain () ke antarmuka normalizedColorsensor
- Dengan mengatur gain sensor warna, Anda dapat menyesuaikan kondisi pencahayaan yang berbeda. Misalnya, jika Anda mendeteksi nilai warna yang lebih rendah dari yang diharapkan, Anda dapat meningkatkan gain.
- Nilai gain hanya diterapkan pada metode argb () dan getNormalizedColors (), bukan pada metode warna mentah. Metode getNormalizedColors () direkomendasikan untuk kemudahan penggunaan dan kejelasan, karena argb () harus dikonversi.
- Pembaruan SensorColor Java Sample Untuk Menunjukkan Penggunaan Gain
- Gabungkan SensorRevColordistance Sampel Java menjadi sampel Java SensorColor, yang menampilkan praktik terbaik untuk semua sensor warna
- Meningkatkan nilai pengambilan dari sensor warna rev v3
- Memperbarui perhitungan normalisasi saluran RGB
- Meningkatkan perhitungan saluran alpha (dapat digunakan sebagai indikator kecerahan keseluruhan)
- Memperbaiki resolusi sensor default, yang menyebabkan masalah dengan lingkungan yang cerah
- Menambahkan dukungan untuk mengubah resolusi dan laju pengukuran chip sensor Broadcom
- Menghapus pembacaan dan perhitungan IR tidak dimaksudkan untuk chip sensor Broadcom
Perbaikan bug
- Meningkatkan keandalan inisialisasi IMU BNO055IMU untuk mencegah kegagalan inisialisasi acak (yang dimanifestasikan sebagai
Problem with 'imu'
).
Versi 5.5 (20200824-090813)
Versi 5.5 membutuhkan Android Studio 4.0 atau lebih baru.
Fitur baru
- Menambahkan dukungan untuk memanggil kelas Java khusus dari Blok Opmodes (Fixes Skystone Edisi #161).
- Kelas harus berada di paket org.firstinspires.ftc.teamCode.
- Untuk memiliki akses mudah ke opmode, hardwaremap, telemetri, gamepad1, dan gamepad2, kelas dapat memperluas org.firstinspires.ftc.robotcore.external.blocksopmodecompanion.
- Metode harus statis publik dan tidak lebih dari 21 parameter.
- Metode harus dijelaskan dengan org.firstinspires.ftc.robotcore.external.ExportToBlocks.
- Parameter dinyatakan sebagai opmode, linearopmode, telemetri, dan hardwaremap didukung dan argumen disediakan secara otomatis, terlepas dari urutan parameter. Pada blok, soket untuk parameter tersebut secara otomatis diisi.
- Parameter dinyatakan sebagai char atau java.lang.character akan menerima blok apa pun yang mengembalikan teks dan hanya akan menggunakan karakter pertama dalam teks.
- Parameter dinyatakan sebagai Boolean atau Java.lang.Boolean akan menerima blok apa pun yang mengembalikan Boolean.
- Parameter dinyatakan sebagai byte, java.lang.byte, pendek, java.lang.short, int, java.lang.integer, long, atau java.lang.long, akan menerima blok apa pun yang mengembalikan angka dan akan mengelilingi nilai itu ke ke nilai itu ke seluruh bilangan terdekat.
- Parameter dinyatakan sebagai float, java.lang.float, double, java.lang.double akan menerima blok apa pun yang mengembalikan angka.
- Menambahkan metode API telemetri untuk mengatur format tampilan
- Klasik
- Monospace
- Html (tag tertentu saja)
- Menambahkan dukungan blok untuk mengganti kamera.
- Menambahkan dukungan blok untuk deteksi objek TensorFlow dengan model khusus.
- Menambahkan dukungan untuk mengunggah model deteksi objek TensorFlow khusus di halaman Kelola, yang sangat berguna untuk blok dan pengguna OnbotJava.
- Menampilkan Kode Blink Hub Kontrol Baru Saat pita Wi-Fi diaktifkan menggunakan tombol Hub Kontrol (hanya mungkin pada Hub Kontrol OS 1.1.2)
- Menambahkan peringatan baru yang dapat dinonaktifkan di pengaturan RC lanjutan
- Peringatan versi aplikasi yang tidak cocok
- Peringatan Penggunaan Wi-Fi 2.4 GHz yang Tidak Perlu
- Rev Hub menjalankan firmware yang sudah ketinggalan zaman (lebih tua dari versi 1.8.2)
- Menambahkan dukungan untuk Sony PS4 GamePad, dan Reworks Bagaimana cara kerja gamepad di stasiun driver
- Menghapus preferensi yang menetapkan jenis gamepad berdasarkan posisi driver. Diganti dengan menu yang memungkinkan jenis penentu untuk gamepad dengan vid dan pid yang tidak diketahui
- Upaya untuk mendeteksi secara otomatis jenis gamepad berdasarkan USB VID dan PID
- Jika VID dan PID GamePad tidak diketahui, gunakan tipe SPE