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 sekarang secara otomatis diganti namanya dengan nama yang 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 melaporkannya, 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 di editor Blok berikutnya.
- 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 Blokir 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 quaternions
- 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 menghapus 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 alat 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 Utilities.
- Dokumentasi terkait untuk teknologi terkait dapat ditemukan di
- Pengenalan Tag April
- Panduan AprilTag SDK
- 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 Model TensorFlow Lite" 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 perlu.
- 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, berisi 15 baris stacktrace pengecualian untuk memudahkan penelusuran 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 bila dilihat dari stasiun pengemudi untuk pemindaian oleh inspektur di kompetisi.
- Meningkatkan kinerja dan keandalan I2C dalam beberapa skenario.
Versi 7.2 (20220723-130006)
Melanggar perubahan
- 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 Gamepad dan PID tidak diketahui, gunakan tipe yang ditentukan oleh pengguna untuk vid dan pid itu
- Jika Vid dan PID GamePad tidak diketahui dan pengguna belum menentukan jenis untuk VID dan PID itu, tebakan yang berpendidikan dibuat tentang cara memetakan gamepad
- Stasiun pengemudi sekarang akan mencoba untuk secara otomatis pulih dari pemutusan permainan, dan menilai kembali ke posisi yang ditugaskan ketika dijatuhkan
- Jika hanya satu gamepad yang ditugaskan dan turun: itu dapat dipulihkan
- Jika dua gamepad ditugaskan, dan memiliki tanda tangan vid/pid yang berbeda , dan hanya satu tetes: itu akan dipulihkan
- Jika dua gamepad ditugaskan, dan memiliki tanda tangan vid/pid yang berbeda , dan keduanya jatuh: keduanya akan dipulihkan
- Jika dua gamepad ditugaskan, dan memiliki tanda tangan vid/pid yang sama , dan hanya satu tetes: itu akan dipulihkan
- Jika dua gamepad ditugaskan, dan memiliki tanda tangan VID/PID yang sama , dan keduanya turun: tidak ada yang akan dipulihkan, karena ambiguitas gamepad ketika mereka muncul kembali di bus USB.
- Saat ini ada satu kasus tepi yang diketahui: jika ada dua gamepad dengan vid/pid tanda tangan yang sama terhubung, tetapi hanya satu yang ditugaskan , dan keduanya jatuh, itu adalah peluang 50-50 yang akan dipilih untuk pemulihan otomatis Posisi yang ditugaskan: ditentukan oleh mana pun yang diasumsikan kembali terlebih dahulu oleh pengontrol bus USB.
- Menambahkan antarmuka pengguna lansekap ke stasiun pengemudi
- Fitur Baru: Praktek Timer dengan isyarat audio
- Fitur Baru (Hub Kontrol Hanya): Indikator Kekuatan Koneksi Jaringan Nirkabel (0-5 bar)
- Fitur Baru (Hub Kontrol Hanya): Mengetuk pada tampilan ping/saluran akan beralih ke tampilan alternatif yang menampilkan radio RX DBM dan kecepatan tautan (ketuk lagi untuk beralih kembali)
- Tata letak tidak akan mengotorotasi. Anda dapat mengganti tata letak dari menu Pengaturan Stasiun Driver.
Melanggar perubahan
- Menghapus dukungan untuk versi Android 4.4 hingga 5.1 (Kitkat dan Lollipop). The MinsDKversion sekarang berusia 23 tahun.
- Menghapus metode
LinearOpMode
yang sudah usang waitOneFullHardwareCycle()
dan waitForNextHardwareCycle()
Peningkatan
- Menangani Alamat Rs485 dari Hub Kontrol secara otomatis
- Hub Kontrol secara otomatis diberikan alamat yang dipesan
- File konfigurasi yang ada akan terus bekerja
- Semua alamat dalam kisaran 1-10 masih tersedia untuk hub ekspansi
- Lampu hub kontrol sekarang biasanya akan berwarna hijau padat, tanpa berkedip untuk menunjukkan alamatnya
- Hub Kontrol tidak akan ditampilkan di halaman Pengaturan Ubah Alamat Hub Ekspansi
- Meningkatkan pembaruan firmware rev hub
- Pengguna sekarang dapat memilih antara semua file pembaruan firmware yang tersedia
- Versi 1.8.2 dari Firmware Hub Rev dibundel ke dalam aplikasi robot controller.
- Teks ditambahkan untuk mengklarifikasi bahwa hub ekspansi hanya dapat diperbarui melalui USB.
- Kecepatan pembaruan firmware dikurangi untuk meningkatkan keandalan
- Memungkinkan rev hub firmware diperbarui langsung dari halaman web mengelola
- Meningkatkan pemirsa log pada pengontrol robot
- Dukungan gulir horizontal (tidak lagi dibungkus kata)
- Mendukung pinch-to-zoom
- Menggunakan font monospaced
- Pesan kesalahan disorot
- Skema Warna Baru
- Upaya untuk memaksakan opmode pelarian/macet tanpa memulai kembali seluruh aplikasi
- Tidak semua jenis kondisi pelarian dapat dihentikan, tetapi jika kode pengguna mencoba untuk berbicara dengan perangkat keras selama pelarian, sistem harus dapat menangkapnya.
- Membuat berbagai penyesuaian ke layar periksa diri
- Rename "Versi OS" entri ke "Versi Android"
- Rename "Wi-Fi Direct Name" menjadi "Wi-Fi Name"
- Menambahkan Versi OS Hub Kontrol, Saat melihat laporan hub kontrol
- Menyembunyikan entri mode pesawat, saat melihat laporan hub kontrol
- Menghapus Periksa Pengubah Saluran ZTE Speed
- Menampilkan versi firmware untuk semua hub ekspansi dan kontrol
- Reworks Pengaturan Jaringan Bagian Halaman Kelola
- Semua pengaturan jaringan sekarang diterapkan dengan satu klik
- Saluran langsung Wi-Fi dari pengontrol robot berbasis telepon sekarang dapat diubah dari halaman kelola
- Saluran Wi-Fi difilter oleh pita (2,4 vs 5 GHz) dan apakah mereka tumpang tindih dengan saluran lain
- Saluran Wi-Fi saat ini dipilih sebelumnya pada pengontrol robot berbasis telepon, dan hub kontrol yang menjalankan OS 1.1.2 atau lebih baru.
- Di hub kontrol yang menjalankan OS 1.1.2 atau lebih baru, Anda dapat memilih untuk memiliki sistem secara otomatis memilih saluran pada pita 5 GHz
- Meningkatkan Onbotjava
- Tema terang dan gelap baru ganti tema lama (kekacauan, github, chrome, ...)
- Tema default baru
light
dan akan digunakan saat Anda pertama kali memperbarui untuk versi ini
- Onbotjava sekarang memiliki editor tab
- Mode offline hanya baca
- Meningkatkan fungsi item menu "keluar" di robot controller dan stasiun pengemudi
- Sekarang dijamin akan sepenuhnya dihentikan dan diturunkan dari memori
- Menunjukkan pesan peringatan jika ada linearopmode yang ada sebelum waktunya karena kegagalan memantau kondisi mulai
- Meningkatkan pesan kesalahan yang ditunjukkan ketika stasiun pengemudi dan pengontrol robot tidak kompatibel satu sama lain
- Panel Kontrol Opmode Stasiun Pengemudi sekarang dinonaktifkan saat robot restart sedang berlangsung
- Menonaktifkan pengaturan lanjutan yang terkait dengan Wi-Fi Direct ketika pengontrol robot adalah hub kontrol.
- Ikon baterai telepon warna di stasiun pengemudi saat rendah/kritis.
- Menggunakan nama "Portal Hub Kontrol" dan "Hub Kontrol" (bila perlu) dalam file konfigurasi baru
- Tingkatkan kinerja Baca I2C
- Peningkatan yang sangat besar di hub kontrol; hingga ~ 2x lebih cepat dengan kecil (mis. 6 byte) dibaca
- Tidak tampak seperti hub ekspansi yang terhubung ke telepon
- Perbarui/Refresh Build Infrastructure
- Perbarui ke pustaka Dukungan 'Androidx' dari 'com.android.support:AppCompat', yang merupakan akhir kehidupan
- Perbarui TargetSDKVersion dan CompilesDkversion menjadi 28
- Perbarui plugin Android Android Studio untuk terbaru
- Perbaiki Laporan Bangun Waktu di Layar 'Tentang'
- Tambahkan sampel ilustrasi penggunaan webcam manual: ConceptWebCam
Perbaikan bug
- Memperbaiki Skystone Issue #248
- Memperbaiki Skystone Edisi #232 dan memodifikasi semantik caching curah untuk memungkinkan transisi manual/otomatis yang memelihara cache.
- Meningkatkan kinerja saat sensor jarak 2m dicabut
- Meningkatkan keterbacaan pesan bersulang pada perangkat tertentu
- Memungkinkan stasiun pengemudi untuk terhubung ke pengontrol robot setelah yang lain terputus
- Meningkatkan pembuatan nomor seri palsu untuk kamera UVC yang tidak memberikan nomor seri nyata
- Sebelumnya beberapa perangkat akan menetapkan kamera tersebut serial
0:0
dan gagal membuka dan mulai streaming - Memperbaiki Masalah FTC_APP #638.
- Memperbaiki banyak serangga dengan monitor kamera Vuforia termasuk:
- Perbaikan bug di mana pratinjau dapat ditampilkan dengan rasio aspek miring
- Memperbaiki bug di mana pratinjau dapat dipotong dalam lanskap
- Memperbaiki bug di mana pratinjau benar -benar kacau saat memutar telepon
- Memperbaiki bug di mana crosshair bisa melayang target saat menggunakan webcams
- Perbaikan masalah di driver UVC pada beberapa perangkat (ftc_app 681) jika streaming dimulai/dihentikan beberapa kali berturut -turut
- Masalah dimanifestasikan sebagai kernel kepanikan pada perangkat yang tidak memiliki tambalan kernel ini.
- Pada perangkat yang terkena dampak yang memang memiliki tambalan, masalah ini terwujud sebagai kegagalan untuk mulai streaming.
- Tim teknologi percaya bahwa akar penyebab masalah ini adalah bug di driver Linux Kernel XHCI. Solusi diimplementasikan di driver SDK UVC.
- Perbaikan bug di driver UVC di mana seringkali setengah bingkai dari kamera akan dijatuhkan (misalnya hanya 15fps yang dikirimkan selama sesi streaming yang dikonfigurasi untuk 30fps).
- Perbaikan masalah di mana deteksi objek TensorFlow akan menunjukkan hasil yang kepercayaannya lebih rendah dari parameter kepercayaan minimum.
- Memperbaiki masalah eksploitasi potensial CVE-2019-11358 di Onbotjava
- Memperbaiki mengubah alamat hub ekspansi dengan hub ekspansi tambahan yang terhubung dengannya
- Menjaga koneksi jaringan hub kontrol saat "restart robot" dipilih
- Perbaikan masalah di mana pemindaian perangkat akan gagal saat robot sedang restart
- Perbaiki penggunaan RenderScript
- Gunakan varian androidx.renderscript: peningkatan kompatibilitas
- Gunakan RenderScript dalam mode java, bukan asli: Sederhanakan build
- Memperbaiki masalah konversi bingkai webcam-ke-bitmap: saluran alpha tidak diinisialisasi, hanya r, g, & b
- Memperbaiki kemungkinan luapan aritmatika di tenggat waktu
- Perbaikan Kebuntuan di Dukungan Webcam Vuforia yang dapat menyebabkan penundaan 5 detik saat menghentikan Opmode
Versi 5.4 (20200108-101156)
- Memperbaiki Skystone Edisi #88
- Menambahkan item inspeksi yang dicatat ketika pengontrol robot (hub kontrol) menggunakan kata sandi default pabrik.
- Perbaikan Skystone Issue #61
- Memperbaiki Skystone Edisi #142
- Memperbaiki Masalah FTC_APP #417 dengan menambahkan lebih banyak kemampuan pemantauan arus dan tegangan untuk hub REV.
- Memperbaiki kecelakaan yang terkadang disebabkan oleh aktivitas Onbotjava
- Meningkatkan fungsionalitas autosave onbotjava ftc_app #738
- Memperbaiki masalah respons sistem saat hub ekspansi terputus
- Memperbaiki masalah di mana inisialisasi IMU dapat mencegah opmodes berhenti
- Memperbaiki masalah di mana androidtexttospeech.speak () akan gagal jika dipanggil terlalu dini
- Menambahkan Telemetry.Speak () Metode dan blok, yang menyebabkan stasiun pengemudi (jika juga diperbarui) untuk berbicara teks
- Menambah dan meningkatkan peringatan terkait hub ekspansi
- Meningkatkan Peringatan Baterai Rendah
- Menampilkan peringatan segera setelah hub melaporkannya
- Menentukan apakah kondisinya saat ini atau terjadi sementara selama menjalankan opmode
- Menampilkan hub mana yang melaporkan baterai rendah
- Menampilkan peringatan saat hub kehilangan dan mendapatkan kembali daya selama menjalankan opmode
- Memperbaiki pola LED hub setelah kondisi ini
- Menampilkan peringatan saat hub ekspansi tidak menanggapi perintah
- Menentukan apakah kondisinya saat ini atau terjadi sementara selama menjalankan opmode
- Klarifikasi peringatan saat hub ekspansi tidak ada saat startup
- Menentukan bahwa kondisi ini memerlukan robot restart sebelum hub dapat digunakan.
- Lampu hub sekarang akan secara akurat memantulkan keadaan ini
- Meningkatkan logging dan mengurangi spam log selama kondisi ini
- Menyinkronkan waktu hub kontrol dan zona waktu ke browser web yang terhubung dengan pemrograman robot, jika stasiun pengemudi tidak tersedia.
- Menambahkan fungsionalitas baca massal untuk hub REV
- Mode caching curah harus diatur pada level hub dengan
LynxModule#setBulkCachingMode()
. Ini berlaku untuk semua kelas perangkat keras SDK yang relevan yang merujuk hub itu. - Mode caching curah hub berikut berikut tersedia:
-
BulkCachingMode.OFF
(default): Semua panggilan perangkat keras beroperasi seperti biasa. Data curah dapat membaca melalui LynxModule#getBulkData()
dan diproses secara manual. -
BulkCachingMode.AUTO
: Panggilan perangkat keras yang berlaku disajikan dari cache baca massal yang dihapus/disegarkan secara otomatis untuk memastikan perintah yang identik tidak mengenai cache yang sama. Cache juga dapat dihapus secara manual dengan LynxModule#clearBulkCache()
, meskipun ini tidak disarankan. - (Pengguna Lanjutan)
BulkCachingMode.MANUAL
: Sama seperti BulkCachingMode.AUTO
kecuali cache tidak pernah dihapus secara otomatis. 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.
Nirkabel
- 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.
Kegembiraan
- 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.
Blok
- 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).
Aneka ragam
- 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).
- Vuforia
- Added support for VuMarks that will be used for the 2017-2018 season game.
- Blok
- 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:
- Studio Android
- 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
- Vuforia
- 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.