Visi AI#

Perkenalan#

Sensor Penglihatan AI pada Robot Coding VEX AIM mendeteksi dan melacak objek, warna, dan ID AprilTag. Hal ini memungkinkan robot untuk menganalisis lingkungannya, mengikuti objek, dan bereaksi berdasarkan data visual yang terdeteksi.

Sensor Penglihatan AI memiliki resolusi 320×240 piksel. Titik asal (0, 0) terletak di pojok kiri atas, sehingga pusat sensor berada di (160, 120), seperti yang ditunjukkan pada diagram di bawah ini:

Diagram yang menunjukkan resolusi Sensor Penglihatan AI AIM, dengan koordinat 0, 0 di kiri atas diagram, 320, 0 di kanan atas, dan 0, 240 di kiri bawah, dengan 160, 120 tepat di tengah.

Berikut adalah daftar semua blok:

Aksi — Mengontrol umpan AI Vision dan menangkap data objek.

  • Penampil AI Vision di layar — Mengaktifkan atau menonaktifkan tampilan langsung AI Vision di layar robot.

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

Pengaturan — Sesuaikan objek mana yang terdeteksi yang dapat diakses.

Nilai — Mengembalikan keberadaan objek, klasifikasi, dan properti.

Tindakan#

Penampil AI Vision di layar#

Blok tumpukan Penampil Visi AI di layar mengaktifkan atau menonaktifkan umpan Visi AI langsung di layar robot. Saat diaktifkan, layar menampilkan data sensor waktu nyata, mencegah gambar atau teks lain muncul. Untuk menampilkan konten lain, gunakan blok ini untuk menyembunyikan umpan.

Tampilkan atau sembunyikan blok tumpukan dasbor AI Vision.#
AI Vision [tampilkan v] penampil di layar

Parameter

Keterangan

status

Mengontrol tampilan umpan data pada layar robot: show menampilkan umpan data, sedangkan hide menyembunyikan umpan data dari layar.

Contoh

Sekumpulan blok yang dimulai dengan blok “when started”, diikuti oleh blok komentar yang berbunyi “Lihat umpan Sensor Visi AI selama lima detik”. Blok “show AI Vision dashboard” menampilkan umpan, kemudian blok “wait” menghentikan eksekusi selama lima detik. Setelah menunggu, blok “hide AI Vision dashboard” menghapus umpan dari tampilan.#
saat dimulai
[View the AI Vision Sensor's feed for five seconds.]
AI Vision [tampilkan v] penampil di layar
tunggu [5] detik
AI Vision [sembunyikan v] penampil di layar

mendapatkan data objek#

Blok tumpukan get object data menyaring data dari bingkai AI Vision Sensor ke satu tanda tangan tunggal — deskripsi tersimpan dari sesuatu yang dapat dikenali oleh 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.#
ambil data [bola olahraga v] dari AI Vision

Parameter

Keterangan

tanda tangan

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

  • bola olahraga
  • tong oranye
  • tong biru
  • robot AIM
  • ID AprilTag 0
  • ID AprilTag 1
  • ID AprilTag 2
  • ID AprilTag 3
  • ID AprilTag 4
  • semua kargo - Bola olahraga dan semua tong
  • NAMA - Warna atau kode warna di mana NAMA adalah nama yang dikonfigurasi di AI Vision Utility

Contoh

Tumpukan blok yang dimulai dengan blok “when started”, diikuti oleh blok komentar yang berbunyi “Bergerak maju jika Bola Olahraga terdeteksi”. Blok get object data mengambil gambar bola olahraga. Blok “if” kemudian memeriksa apakah objek AI Vision ada. Jika benar, blok “move forward” menggerakkan robot maju sejauh 10 milimeter.#
saat dimulai
[Move forward if a sports ball is detected.]
selamanya
ambil data [bola olahraga v] dari AI Vision
jika <objek AI Vision ada?> maka
gerak [maju v] sejauh [10] [mm v] ▶

Tanda Warna#

Tanda Warna (Color Signature) adalah warna unik yang dapat dikenali oleh Sensor Penglihatan AI. Tanda warna ini memungkinkan sensor untuk mendeteksi dan melacak objek berdasarkan warnanya. Setelah Tanda Warna dikonfigurasi di Utilitas Penglihatan AI, 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.

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.]
ambil data [Red_Box v] dari AI Vision
jika <objek AI Vision ada?> maka
cetak [Color signature detected!] di layar ▶

Kode Warna#

Kode Warna adalah pola terstruktur yang terdiri dari 2 hingga 4 Tanda Warna yang disusun dalam urutan tertentu. Setelah Kode Warna dikonfigurasi di Utilitas Visi AI, sensor dapat 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.

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 BlueRed 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.]
ambil data [BlueRed v] dari AI Vision
jika <objek AI Vision ada?> maka
cetak [Color 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 AI Vision ke (1)

Parameter

Keterangan

barang

Nomor item dalam dataset yang akan digunakan.

Contoh

Tumpukan blok yang dimulai dengan blok “when started”, diikuti oleh blok komentar yang berbunyi “Tampilkan ID AprilTag terbesar yang terdeteksi”. Di dalam loop “forever”, blok “get object data” menangkap 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 width of the smallest detected object.]
selamanya
ambil data [semua kargo v] dari AI Vision
bersihkan baris [1] di layar
atur kursor ke baris [1] kolom [1] di layar
jika <objek AI Vision ada?> maka
atur item objek AI Vision ke (jumlah objek AI Vision)
cetak (objek AI Vision [lebar v]) di layar ▶

Nilai-nilai#

memiliki objek#

Blok Boolean has object melaporkan apakah robot saat ini memiliki objek yang terdeteksi di dekat Kicker.

  • Benar — Robot tersebut memiliki objek tersebut.

  • Salah — Robot tersebut tidak memiliki objek tersebut.

<memiliki [bola olahraga v] ? :: custom-ai-vision>

Parameter

Keterangan

obyek

Objek yang akan dideteksi oleh penendang robot:

  • bola olahraga
  • tong apa pun
  • tong oranye
  • tong biru

Contoh

Tumpukan blok yang dimulai dengan blok “when started”, diikuti oleh blok komentar yang berbunyi “Tendang ketika robot memiliki Bola”. Di dalam loop “forever”, blok “if” memeriksa apakah robot memiliki bola olahraga. Jika benar, blok objek “tendang” dieksekusi dengan daya sedang.#
saat dimulai
[Kick when the robot has a sports ball.]
selamanya
jika <memiliki [bola olahraga v] ? :: custom-ai-vision> maka
tendang objek [sedang v]

Objek AI Vision ada.#

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

  • Benar — Dataset tersebut mencakup objek yang terdeteksi.

  • Salah — Tidak ada objek yang terdeteksi.

Objek AI Vision berupa blok Boolean.#
<objek AI Vision ada?>

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

Tumpukan blok yang dimulai dengan blok “when started”, diikuti oleh blok komentar yang berbunyi “Bergerak maju jika Bola terdeteksi”. Blok “get object data” menangkap gambar bola olahraga. Blok “if” kemudian memeriksa apakah objek AI Vision ada. Jika benar, blok “move forward” menggerakkan robot maju sejauh 10 milimeter.#
saat dimulai
[Move forward if a sports ball is detected.]
selamanya
ambil data [bola olahraga v] dari AI Vision
jika <objek AI Vision ada?> maka
gerak [maju v] sejauh [10] [mm v] ▶

Objek AI Vision adalah#

Blok Boolean AI Vision object melaporkan 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 AI Vision adalah [bola olahraga v]?>

Parameter

Keterangan

obyek

Benda mana yang harus dibandingkan dengan barang ini:

  • bola olahraga
  • tong oranye
  • tong biru
  • robot AIM

Contoh

Tumpukan blok yang dimulai dengan blok “when started”, diikuti oleh blok komentar yang bertuliskan “Tampilkan jika bola olahraga terdeteksi”. Di dalam loop “forever”, blok “get object data” menangkap gambar menggunakan Klasifikasi AI. Layar dibersihkan, dan kursor diatur ke baris 1, kolom 1. Blok “if” memeriksa apakah objek AI Vision ada, dan jika benar, blok “if” lainnya memverifikasi apakah klasifikasinya adalah bola olahraga. Jika ya, blok “print” menampilkan “Bola terdeteksi!” di layar, diikuti oleh blok “wait” yang berhenti selama 0,5 detik sebelum mengulangi proses.#
saat dimulai
[Display if a sports ball is detected.]
selamanya
ambil data [semua kargo v] dari AI Vision
bersihkan baris [1] di layar
atur kursor ke baris [1] kolom [1] di layar
jika <objek AI Vision ada?> maka
jika <objek AI Vision adalah [bola olahraga v]?> maka
cetak [Sports ball detected!] di layar ▶
tunggu [0.5] detik

Objek AI Vision adalah AprilTag ID#

Blok Boolean AI Vision object is AprilTag ID melaporkan 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.#
<AI Vision object is AprilTag ID [1] ?>

Parameter

Keterangan

AprilTag ID

Angka yang akan dibandingkan dengan nomor ID AprilTag yang terdeteksi.

Penghitungan objek AI Vision#

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

jumlah objek AI Vision

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai
[Display the amount of sports balls and barrels.]
selamanya
bersihkan baris [1] di layar
atur kursor ke baris [1] kolom [1] di layar
ambil data [semua kargo v] dari AI Vision
jika <objek AI Vision ada?> maka
cetak (jumlah objek AI Vision) 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 AI Vision [lebar v]

Semua nilai properti kecuali tagID menjelaskan posisi, ukuran, orientasi, atau arah objek yang terdeteksi pada saat blok get object data digunakan. Nilai-nilai ini diukur dalam piksel atau derajat, berdasarkan resolusi sensor 320 x 240 piksel.

Sebuah tong biru dengan garis oranye berada di tengah bingkai, dikelilingi oleh kotak pembatas hitam. Sumbu x dan y diberi label 0 hingga 320 dari kiri ke kanan di bagian atas, dan 0 hingga 240 dari atas ke bawah di sepanjang sisi kiri.

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.

Catatan: Nilai piksel relatif terhadap sistem koordinat sensor. Lihat diagram di Pendahuluan untuk referensi.

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

Sebuah tong biru dengan garis oranye berada di tengah bingkai, dikelilingi oleh kotak pembatas hitam. Dua garis putus-putus merah vertikal memanjang dari bagian atas bingkai ke tepi kiri dan kanan kotak pembatas. Panah hitam berkepala ganda di antara garis-garis ini menunjukkan ukuran lebar.

Contoh

saat dimulai
[Move towards a blue barrel until its width is larger than 100 pixels.]
selamanya
ambil data [tong biru v] dari AI Vision
jika <objek AI Vision ada?> maka
jika <(objek AI Vision [lebar v]) [math_less_than v] [100]> maka
gerak [maju v]
selesai
lainnya
hentikan semua gerakan

tinggi#

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

Catatan: Nilai piksel relatif terhadap sistem koordinat sensor. Lihat diagram di Pendahuluan untuk referensi.

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

Sebuah tong biru dengan garis oranye berada di tengah bingkai, dikelilingi oleh kotak pembatas hitam. Dua garis putus-putus merah horizontal membentang dari sisi kiri bingkai ke tepi atas dan bawah kotak pembatas. Panah hitam berkepala ganda di antara garis-garis ini menunjukkan pengukuran tinggi.

Contoh

saat dimulai
[Move towards a blue barrel until its height is larger than 100 pixels.]
selamanya
ambil data [tong biru v] dari AI Vision
jika <objek AI Vision ada?> maka
jika <(objek AI Vision [tinggi v]) [math_less_than v] [100]> maka
gerak [maju v]
selesai
lainnya
hentikan semua gerakan

pusatX#

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

Catatan: Nilai piksel relatif terhadap sistem koordinat sensor. Lihat diagram di Pendahuluan untuk referensi.

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

Sebuah tong biru dengan garis oranye berada di tengah bingkai, dikelilingi oleh kotak pembatas hitam. Garis putus-putus merah vertikal membentang dari bagian atas bingkai ke tengah kotak pembatas, menunjukkan koordinat X dari pusatnya.

Contoh

saat dimulai
[Turn slowly until a blue barrel is centered in front of the robot.]
atur kecepatan belok ke [30]%
belok [kanan v]
selamanya
ambil data [tong biru v] dari AI Vision
jika <objek AI Vision ada?> maka
jika <[140] [math_less_than v] (objek AI Vision [centerX v]) [math_less_than v] [180]> maka
hentikan semua gerakan

pusatY#

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

Catatan: Nilai piksel relatif terhadap sistem koordinat sensor. Lihat diagram di Pendahuluan untuk referensi.

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

Sebuah tong biru dengan garis oranye berada di tengah bingkai, dikelilingi oleh kotak pembatas hitam. Garis putus-putus merah horizontal membentang dari sisi kiri bingkai ke tengah kotak pembatas, menunjukkan koordinat Y dari pusatnya.

Contoh

saat dimulai
[Move towards a blue barrel until its center y-coordinate is more than 140 pixels.]
selamanya
ambil data [tong biru v] dari AI Vision
jika <objek AI Vision ada?> maka
jika <(objek AI Vision [centerY v]) [math_less_than v] [140]> maka
gerak [maju v]
selesai
lainnya
hentikan semua gerakan

asalX#

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

Catatan: Nilai piksel relatif terhadap sistem koordinat sensor. Lihat diagram di Pendahuluan untuk referensi.

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

Sebuah tong biru dengan garis oranye berada di tengah bingkai, dikelilingi oleh kotak pembatas hitam. Garis putus-putus merah vertikal membentang dari bagian atas bingkai ke tepi kiri kotak pembatas, menunjukkan koordinat X dari titik asal kotak pembatas.

Contoh

saat dimulai
[Display if an orange barrel is to the left or the right.]
selamanya
bersihkan baris [1] di layar
atur kursor ke baris [1] kolom [1] di layar
ambil data [tong oranye v] dari AI Vision
jika <objek AI Vision ada?> maka
jika <(objek AI Vision [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

asalY#

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

Catatan: Nilai piksel relatif terhadap sistem koordinat sensor. Lihat diagram di Pendahuluan untuk referensi.

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

Sebuah tong biru dengan garis oranye berada di tengah bingkai, dikelilingi oleh kotak pembatas hitam. Garis putus-putus merah horizontal membentang dari sisi kiri bingkai ke tepi atas kotak pembatas, menunjukkan koordinat Y dari titik asal kotak pembatas.

Contoh

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

rotasi#

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

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke rotasi.#
objek AI Vision [rotasi v]

Antarmuka kamera menampilkan objek yang ditumpuk secara vertikal dengan bagian atas berwarna biru dan bagian bawah berwarna merah, berpusat di dalam bingkai. Label di bawah objek bertuliskan Red_Blue A:270° CX:185 CY:81 W:93 H:150, yang menunjukkan nama objek, sudut rotasi, koordinat pusat X dan Y, lebar, dan tinggi. Garis kisi dan sumbu numerik menandai dimensi gambar, dengan X berkisar dari 0 hingga 320 dan Y dari 0 hingga 240.

Contoh

saat dimulai
[Slide left or right depending on how the Color Code is rotated.]
selamanya
ambil data [Red_Blue v] dari AI Vision
jika <objek AI Vision ada?> maka
jika <[50] [math_less_than v] (objek AI Vision [rotasi v]) [math_less_than v] [100]> maka
gerak [kanan v]
lainnya jika <[270] [math_less_than v] (objek AI Vision [rotasi v]) [math_less_than v] [330]> maka
gerak [kiri v]
lainnya
hentikan semua gerakan
selesai
lainnya
hentikan semua gerakan

bantalan#

Properti bearing melaporkan seberapa jauh suatu objek berada di sebelah kiri atau kanan dari pusat pandangan Sensor Penglihatan AI dalam satuan derajat. Nilai 0 berarti objek berada di tengah, nilai positif berarti objek berada di sebelah kanan, dan nilai negatif berarti objek berada di sebelah kiri.

Sebuah robot pengkodean VEX AIM di lapangan, dengan bola olahraga berada secara diagonal di depan dan di sebelah kiri. Sebuah sudut digambar antara pusat robot dan bola olahraga, dan diberi label -30 derajat. Sebuah robot pengkodean VEX AIM di lapangan, dengan bola olahraga berada secara diagonal ke depan dan ke kanan. Sebuah sudut digambar antara pusat robot dan bola olahraga, dan diberi label 30 derajat.
saat dimulai
[Keep the blue barrel directly in front of the robot.]
atur kecepatan belok ke [40]%
selamanya
ambil data [tong biru v] dari AI Vision
jika <objek AI Vision ada?> maka
jika <(objek AI Vision [bearing v]) [math_greater_than v] [5]> maka
belok [kanan v]
lainnya jika <(objek AI Vision [bearing v]) [math_less_than v] [-5]> maka
belok [kiri v]
lainnya
hentikan semua gerakan

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 AI Vision [tagID v]

Contoh

saat dimulai
[Move forward when AprilTag ID 0 is detected.]
selamanya
ambil data [AprilTag ID 0 v] dari AI Vision
jika <objek AI Vision ada?> maka
gerak [maju v]
selesai
hentikan semua gerakan