Sensor Penglihatan AI#

Perkenalan#

Sensor Penglihatan AI VEX IQ dapat mendeteksi dan melacak objek, warna, dan ID AprilTag. Hal ini memungkinkan robot untuk menganalisis lingkungan sekitarnya, mengikuti objek, dan bereaksi berdasarkan data visual yang terdeteksi.

Contoh AI Vision dirancang untuk digunakan dengan Basebot yang dilengkapi dengan Sensor AI Vision VEX IQ. Dalam contoh ini, sensor dikonfigurasi dengan nama AIVision1, yang muncul di dalam blok.

Berikut adalah daftar semua blok:

Tindakan — Mengambil data dari Sensor Penglihatan AI VEX IQ untuk tanda tangan yang dipilih.

  • mendapatkan data objek — Mengambil data untuk tanda tangan tertentu, seperti warna yang dikonfigurasi, objek yang telah dilatih sebelumnya, atau ID AprilTag.

Pengaturan — Pilih objek mana yang ingin Anda interaksi.

Nilai — Mengakses dan menggunakan data yang telah dikumpulkan.

Tindakan#

mendapatkan data objek#

Blok tumpukan get object data menyaring data dari bingkai VEX IQ AI Vision Sensor ke satu tanda tangan tunggal — deskripsi tersimpan dari sesuatu yang dapat dikenali sensor, seperti objek yang telah dilatih sebelumnya, ID AprilTag, atau warna atau kode warna yang dikonfigurasi.

Warna dan kode warna harus dikonfigurasi terlebih dahulu di AI Vision Utility sebelum dapat digunakan dengan blok ini.

Dataset ini menyimpan objek yang diurutkan dari yang terbesar hingga terkecil berdasarkan lebar, dimulai dari indeks 0. Properti setiap objek dapat diakses menggunakan blok Properti objek AI Vision. Dataset kosong akan dilaporkan jika tidak ada objek yang cocok yang terdeteksi.

Blok tumpukan Dapatkan data objek.#
dapatkan data [SELECT_A_SIG v] dari [AIVision1 v]

Parameter

Keterangan

tanda tangan

Memfilter dataset agar hanya menyertakan data dari tanda tangan yang diberikan. Tanda tangan yang tersedia adalah:

  • ID AprilTag
  • Klasifikasi AI — Ketersediaan berubah tergantung pada model yang dikonfigurasi di AI Vision Utility.
  • NAMA — Sebuah Tanda Tangan Warna atau Kode Warna di mana NAMA adalah nama yang dikonfigurasi di AI Vision Utility

Catatan: Agar opsi AprilTag ID atau Klasifikasi AI muncul, deteksi keduanya harus diaktifkan di AI Vision Utility.

Contoh

saat dimulai
[Drive forward if an AprilTag ID is detected.]
selamanya
dapatkan data [AprilTag IDs v] dari [AIVision1 v]
jika <objek [AIVIsion1 v] ada?> maka
kendarai [maju v] sejauh [10] [mm v] ▶

Klasifikasi AI#

Sensor Penglihatan AI VEX IQ dapat mendeteksi berbagai objek berdasarkan Klasifikasi AI tertentu. Bergantung pada model Klasifikasi AI yang dipilih saat mengkonfigurasi Sensor Penglihatan AI VEX IQ di jendela Perangkat, objek yang berbeda akan terdeteksi. Model yang tersedia saat ini adalah:

Benda-Benda di Kelas

  • BlueBall

  • Bola Hijau

  • Bola Merah

  • Cincin Biru

  • Cincin Hijau

  • Cincin Merah

  • BlueCube

  • Kubus Hijau

  • RedCube

Kompetisi Robotika VEX IQ Mix & Match

  • Balok

  • Pin Merah

  • BluePin

  • Pin Oranye

Tingkat Lanjut Kompetisi Robotika VEX IQ

  • Kantung Biru

  • Kantung Kacang Merah

  • Kantung Kacang Kuning

Tanda Warna#

Tanda Warna (Color Signature) adalah warna unik yang dapat dikenali oleh Sensor Penglihatan AI VEX IQ. Tanda warna ini memungkinkan sensor untuk mendeteksi dan melacak objek berdasarkan warnanya. Setelah Tanda Warna dikonfigurasi, sensor dapat mengidentifikasi objek dengan warna spesifik tersebut dalam bidang pandangnya.

Tanda Warna digunakan dalam blok mendapatkan data objek untuk memproses dan mendeteksi objek berwarna secara real-time. Hingga 7 Tanda Warna dapat dikonfigurasi sekaligus.

Utilitas Visi AI yang menunjukkan sensor visi terhubung yang mendeteksi dua objek berwarna. Sisi kiri menampilkan umpan kamera langsung dengan kotak biru di sebelah kiri dan kotak merah di sebelah kanan, masing-masing digariskan dengan kotak pembatas putih. Label hitam menampilkan nama, koordinat, dan dimensi masing-masing. Sisi kanan berisi pengaturan tanda warna, dengan penggeser untuk rentang rona dan saturasi untuk kotak merah dan biru. Tombol untuk menambahkan warna, membekukan video, menyalin, dan menyimpan gambar berada di bagian bawah, bersama dengan tombol tutup di sudut kanan bawah.

Contoh

saat dimulai
[Display if any objects matching the RED_BOX signature is detected.]
selamanya
atur kursor ke baris [1] kolom [1] di layar
bersihkan baris [1] di layar
[Change the signature to any configured Color Signature.]
dapatkan data [RED_BOX v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
cetak [Color detected!] di layar ▶

Kode Warna#

Kode Warna adalah pola terstruktur yang terdiri dari 2 hingga 4 Tanda Warna yang disusun dalam urutan tertentu. Kode-kode ini memungkinkan Sensor Penglihatan AI VEX IQ untuk mengenali pola warna yang telah ditentukan sebelumnya.

Kode Warna sangat berguna untuk mengidentifikasi objek kompleks, menyelaraskan dengan elemen permainan, atau membuat penanda unik untuk navigasi otomatis. Hingga 8 Kode Warna dapat dikonfigurasi sekaligus.

Antarmuka AI Vision Utility menampilkan sensor penglihatan yang terhubung mendeteksi dua objek yang berdekatan, kotak biru di sebelah kiri dan kotak merah di sebelah kanan, dikelompokkan bersama dalam satu kotak pembatas putih berlabel BlueRed. Informasi deteksi mencakup sudut (A:11°), koordinat (X:143, Y:103), lebar (W:233), dan tinggi (H:108). Pada panel kanan, terdapat tiga tanda warna yang tercantum: Red_Box, Blue_Box, dan BlueRed, dengan rentang rona dan saturasi yang dapat disesuaikan. Tanda warna BlueRed menggabungkan Blue_Box dan Red_Box. Di bawah umpan video terdapat tombol berlabel Bekukan Video, Salin Gambar, Simpan Gambar, dan Tutup.

Contoh

saat dimulai
[Display if any objects matching the RED_BLUE code is detected.]
selamanya
atur kursor ke baris [1] kolom [1] di layar
bersihkan baris [1] di layar
[Change the signature to any configured Color Code.]
dapatkan data [RED_BLUE v] dari [AIVision1 v]
jika <objek [AIVIsion1 v] ada?> maka
cetak [Code detected!] di layar ▶

Pengaturan#

atur item objek Visi AI#

Blok tumpukan set AI Vision object item menentukan item mana dalam dataset yang akan digunakan.

Blok tumpukan item objek Set AI Vision.#
atur item objek [AIVision1 v] ke (1)

Parameter

Keterangan

barang

Nomor item dalam dataset yang akan digunakan.

Contoh

Sekumpulan blok yang dimulai dengan blok “when started”, diikuti oleh blok komentar yang berbunyi “Tampilkan ID AprilTag terbesar yang terdeteksi”. Di dalam loop tak terbatas, blok “take a AI Vision snapshot” mengambil gambar ID AprilTag. Blok “if” memeriksa apakah objek AI Vision ada. Jika benar, blok “set AI Vision object item” menetapkan jumlah objek ke variabel, dan blok “print” menampilkan ID tag dari objek yang terdeteksi di layar.#
saat dimulai
[Display the largest detected AprilTag ID.]
selamanya
dapatkan data [AprilTag IDs v] dari [AIVision1 v]
bersihkan baris [1] di layar
atur kursor ke baris [1] kolom [1] di layar
jika <objek [AIVision1 v] ada?> maka
atur item objek [AIVision1 v] ke (jumlah objek [AIVision1 v])
cetak (objek [AIVision1 v] [tagID v]) di layar ▶

Nilai-nilai#

Objek AI Vision ada.#

Blok Boolean AI Vision object exists melaporkan apakah ada objek yang terdeteksi dalam dataset.

  • Benar — Dataset tersebut mencakup objek yang terdeteksi.

  • Salah — Dataset ini tidak menyertakan objek yang terdeteksi.

Objek AI Vision berupa blok Boolean.#
<objek [AIVision1 v] ada?>

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai
[Drive forward if an object is detected.]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
kendarai [maju v] sejauh [10] [mm v] ▶

Penghitungan objek AI Vision#

Blok pelapor Penghitungan objek AI Vision melaporkan jumlah objek yang terdeteksi dalam dataset sebagai bilangan bulat.

Blok tumpukan item objek Set AI Vision.#
(jumlah objek [AIVision1 v])

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai
[Display the total amount of cubes, rings, and balls.]
selamanya
bersihkan baris [1] di layar
atur kursor ke baris [1] kolom [1] di layar
dapatkan data [Klasifikasi AI v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
cetak (jumlah objek [AIVision1 v]) di layar ▶
selesai
tunggu [0.5] detik

Properti objek AI Vision#

Terdapat sembilan properti yang disertakan dengan setiap objek (ditunjukkan di bawah) yang disimpan setelah blok get object data digunakan.

Blok pelapor properti objek AI Vision.#
(objek [AIVision1 v] [lebar v])

Semua nilai properti kecuali tagID menjelaskan posisi dan ukuran objek yang terdeteksi dalam tampilan Sensor Visi AI VEX IQ pada saat blok get object data digunakan. Nilai-nilai ini diukur dalam piksel, berdasarkan resolusi sensor 320 x 240 piksel.

Parameter

Keterangan

milik

Properti objek yang terdeteksi mana yang akan digunakan:

lebar#

Properti width melaporkan lebar objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 1 hingga 320.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke lebar.#
(objek [AIVision1 v] [lebar v])

Contoh

saat dimulai
[Drive towards an object until its width is larger than 100 pixels.]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
jika <(objek [AIVision1 v] [lebar v]) [math_less_than v] [100]> maka
kendarai [maju v]
selesai
lainnya
hentikan mengemudi

tinggi#

Properti height melaporkan tinggi objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 1 hingga 240.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke tinggi.#
(objek [AIVision1 v] [tinggi v])

Contoh

saat dimulai
[Drive towards an object until its height is larger than 100 pixels.]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
jika <(objek [AIVision1 v] [tinggi v]) [math_less_than v] [100]> maka
kendarai [maju v]
selesai
lainnya
hentikan mengemudi

pusatX#

Properti centerX melaporkan koordinat x dari pusat objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 0 hingga 320.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke centerX.#
(objek [AIVision1 v] [centerX v])

Contoh

saat dimulai
[Turn slowly until an object is centered in front of the robot.]
atur kecepatan belok ke [30] [% v]
belok [kanan v]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
jika <[140] [math_less_than v] (objek [AIVision1 v] [centerX v]) [math_less_than v] [180]> maka
hentikan mengemudi

pusatY#

Properti centerY melaporkan koordinat y dari pusat objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 0 hingga 240.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke centerY.#
(objek [AIVision1 v] [centerY v])

Contoh

saat dimulai
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
jika <(objek [AIVision1 v] [centerY v]) [math_less_than v] [140]> maka
kendarai [maju v]
selesai
lainnya
hentikan mengemudi

sudut#

Properti angle melaporkan orientasi Kode Warna atau ID AprilTag yang terdeteksi sebagai bilangan bulat dalam derajat dari 0 hingga 359.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke sudut.#
(objek [AIVision1 v] [sudut v])

Contoh

saat dimulai
[Slide left or right depending on how the Color Code is rotated.]
selamanya
dapatkan data [RED_BLUE v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
jika <[50] [math_less_than v] (objek [AIVision1 v] [sudut v]) [math_less_than v] [100]> maka
kendarai [kanan v]
lainnya jika <[270] [math_less_than v] (objek [AIVision1 v] [sudut v]) [math_less_than v] [330]> maka
kendarai [kiri v]
lainnya
hentikan mengemudi
selesai
lainnya
hentikan mengemudi

asalX#

Properti originX melaporkan koordinat x dari sudut kiri atas kotak pembatas objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 0 hingga 320.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke originX.#
(objek [AIVision1 v] [originX v])

Contoh

saat dimulai
[Display if an object is to the left or the right.]
selamanya
bersihkan baris [1] di layar
atur kursor ke baris [1] kolom [1] di layar
dapatkan data [Klasifikasi AI v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
jika <(objek [AIVision1 v] [originX v]) [math_less_than v] [160]> maka
cetak [To the left!] di layar ▶
lainnya
cetak [To the right!] di layar ▶
selesai
tunggu [0.5] detik

asal#

Properti originY melaporkan koordinat y dari sudut kiri atas kotak pembatas objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 0 hingga 240.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke originY.#
(objek [AIVision1 v] [originY v])

Contoh

saat dimulai
[Display if an object is close or far from the robot.]
selamanya
bersihkan baris [1] di layar
atur kursor ke baris [1] kolom [1] di layar
dapatkan data [Klasifikasi AI v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
jika <(objek [AIVision1 v] [originY v]) [math_less_than v] [80]> maka
cetak [Far!] di layar ▶
lainnya
cetak [Close!] di layar ▶
selesai
tunggu [0.5] detik

tagID#

Properti tagID melaporkan nomor identifikasi dari ID AprilTag yang terdeteksi sebagai bilangan bulat.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke tagID.#
(objek [AIVision1 v] [tagID v])

Contoh

saat dimulai
[Drive forward when AprilTag ID 0 is detected.]
selamanya
dapatkan data [AprilTag IDs v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
jika <(objek [AIVision1 v] [tagID v]) [math_equal v] [0]> maka
kendarai [maju v]
lainnya
hentikan mengemudi
selesai
tunggu [0.5] detik

Objek AI Vision itu apa?#

Blok AI Vision object is? melaporkan nilai Boolean yang menunjukkan apakah objek yang terdeteksi sesuai dengan klasifikasi tertentu.

  • Benar — Item dalam dataset adalah objek spesifik tersebut.

  • Salah — Item dalam dataset bukanlah objek spesifik tersebut.

AI Vision AI Classification adalah blok Boolean objek.#
<objek [AIVision1 v] adalah [BlueBall v]?>

Parameter

Keterangan

obyek

Which AI Classification to compare the item to.

Contoh

saat dimulai
[Display if a Blue Cube is detected.]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision1 v]
bersihkan baris [1] di layar
atur kursor ke baris [1] kolom [1] di layar
jika <objek [AIVision1 v] ada?> maka
jika <objek [AIVision1 v] adalah [BlueCube v]?> maka
cetak [Cube detected!] di layar ▶
tunggu [0.5] detik

Apakah objek AI Vision itu AprilTag?#

Blok Apakah objek AI Vision adalah AprilTag? melaporkan nilai Boolean yang menunjukkan apakah objek yang terdeteksi adalah AprilTag yang cocok dengan ID tertentu.

  • Benar — Objek yang terdeteksi adalah AprilTag dengan ID yang diberikan.

  • Salah — Objek yang terdeteksi bukanlah AprilTag dengan ID yang diberikan.

Objek AI Vision adalah blok Boolean AprilTag.#
<objek [AIVision1 v] adalah AprilTag [0]?>

Parameter

Keterangan

AprilTag ID

Nomor ID yang akan dibandingkan dengan AprilTag yang terdeteksi.

Contoh

saat dimulai
[Report if AprilTag 3 is detected.]
selamanya
bersihkan layar
atur kursor ke baris [1] kolom [1] di layar
dapatkan data [AprilTag IDs v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
jika <objek [AIVision1 v] adalah AprilTag [3]?> maka
cetak [That is 3!] di layar ▶
lainnya
cetak [That isn't 3!] di layar ▶
selesai
selesai
tunggu [0.1] detik

Apakah objek AI Vision memiliki ID AprilTag?#

Blok AI Vision object is AprilTag ID? melaporkan nilai Boolean yang menunjukkan apakah ID AprilTag yang terdeteksi cocok dengan ID tertentu.

  • Benar — ID AprilTag adalah angkanya.

  • Salah — ID AprilTag bukanlah angka.

AI Vision mendeteksi AprilTag ID sebagai blok Boolean.#
<[AIVision1 v] object is AprilTag ID [1] ?>

Parameter

Keterangan

Nomor ID AprilTag

Angka yang akan dibandingkan dengan nomor ID AprilTag yang terdeteksi.

Contoh:

saat dimulai
[Report if AprilTag ID 3 is detected.]
selamanya
bersihkan layar
atur kursor ke baris [1] kolom [1] di layar
dapatkan data [AprilTag IDs v] dari [AIVision1 v]
jika <objek [AIVision1 v] ada?> maka
jika <[AIVision1 v] object is AprilTag ID [3] ?> maka
cetak [That is 3!] di layar ▶
lainnya
cetak [That isn't 3!] di layar ▶
selesai
selesai
tunggu [0.1] detik