Penglihatan#

Perkenalan#

Drone VEX AIR memiliki dua sensor penglihatan yang mendeteksi dan melacak ID AprilTag. Sensor ini memungkinkan drone untuk menganalisis lingkungan sekitarnya, mengikuti objek, dan bereaksi berdasarkan data visual yang terdeteksi.

Berikut adalah daftar semua blok yang tersedia:

Aksi — Mengontrol umpan Vision dan menangkap data objek.

Pengaturan — Sesuaikan objek mana yang terdeteksi yang dapat diakses.

Nilai — Mengambil keberadaan objek, klasifikasi, dan properti.

Tindakan#

mendapatkan data objek#

Blok tumpukan get object data menyaring data dari bingkai Sensor Penglihatan. Sensor Penglihatan dapat mendeteksi ID AprilTag.

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 Vision. Dataset kosong akan dilaporkan jika tidak ada objek yang cocok yang terdeteksi.

Blok tumpukan Dapatkan data objek.#
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]

Parameter

Keterangan

tanda tangan

Memfilter dataset agar hanya menyertakan data dengan tanda tangan yang diberikan. Tanda tangan yang tersedia adalah semua AprilTags.

kamera

Sensor penglihatan untuk mengambil data, baik ke depan atau ke bawah.

Contoh

saat dimulai
[Climb upward when an AprilTag ID is detected.]
terbang ke ketinggian [300] [mm v] ▶
selamanya
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]
jika <objek Vision ada?> maka
naik/turun [naik v] sejauh [200] [mm v] ▶

Pengaturan#

atur item objek Visi#

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

Blok tumpukan item objek Set AI Vision.#
atur item objek Vision ke [1]

Parameter

Keterangan

barang

Nomor item dalam dataset yang akan digunakan.

Contoh

saat dimulai
[Display the smallest-appearing AprilTag ID.]
selamanya
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]
bersihkan konsol
jika <objek Vision ada?> maka
atur item objek Vision ke (jumlah objek Vision)
cetak (objek Vision [id v]) di konsol ▶

Nilai-nilai#

Objek visi ada#

Blok Boolean Objek Visi ada melaporkan apakah Sensor Visi yang ditentukan saat ini mendeteksi objek apa pun.

  • Benar — Sensor Penglihatan yang ditentukan mendeteksi suatu objek.

  • Salah — Sensor Penglihatan yang ditentukan tidak mendeteksi objek.

Tampilkan atau sembunyikan blok tumpukan dasbor AI Vision.#
<objek Vision ada?>

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai
[Climb upward when an AprilTag ID is detected.]
terbang ke ketinggian [300] [mm v] ▶
selamanya
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]
jika <objek Vision ada?> maka
naik/turun [naik v] sejauh [200] [mm v] ▶

Objek visi adalah AprilTag ID#

Blok Boolean Vision object is AprilTag ID melaporkan apakah AprilTag ID adalah nomor ID tertentu.

  • Benar — ID AprilTag adalah angkanya.

  • Salah — ID AprilTag bukanlah angka.

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

Parameter

Keterangan

Nomor ID AprilTag

Angka yang akan dibandingkan dengan nomor ID AprilTag yang terdeteksi, dari 0 hingga 37.

Contoh

saat dimulai
[Display when the target AprilTag ID is detected.]
selamanya
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]
bersihkan konsol
jika <objek Vision ada?> maka
jika <Vision object is AprilTag ID [21]> maka
cetak [Target found!] di konsol ▶
selesai

penghitungan objek penglihatan#

Blok pelapor Vision object count melaporkan jumlah objek yang terdeteksi dalam dataset sebagai bilangan bulat.

Blok tumpukan item objek Set AI Vision.#
(jumlah objek Vision)

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai
[Display how many AprilTag IDs are detected.]
selamanya
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]
bersihkan konsol
cetak (jumlah objek Vision) di konsol ▶
tunggu [0.2] detik

Properti objek visi#

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

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

Semua nilai properti kecuali id menjelaskan posisi, ukuran, orientasi, atau arah objek yang terdeteksi pada saat blok get object data digunakan. Nilai-nilai ini diukur dalam piksel atau derajat. Setiap Sensor Visi memiliki resolusi yang berbeda:

  • Tampilan depan: 640 x 480 piksel

  • Menghadap ke bawah: 640 x 400 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 640.

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

Contoh

saat dimulai
[Show if the AprilTag ID appears large or small.]
selamanya
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]
bersihkan konsol
jika <objek Vision ada?> maka
jika <(objek Vision [lebar v]) [math_greater_than v] [100]> maka
cetak [Large] di konsol ▶
lainnya
cetak [Small] di konsol ▶
selesai
selesai
tunggu [0.2] detik

tinggi#

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

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

Contoh

saat dimulai
[Show if the AprilTag ID appears large or small.]
selamanya
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]
bersihkan konsol
jika <objek Vision ada?> maka
jika <(objek Vision [tinggi v]) [math_greater_than v] [100]> maka
cetak [Large] di konsol ▶
lainnya
cetak [Small] di konsol ▶
selesai
selesai
tunggu [0.2] detik

pusatX#

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

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

Contoh

saat dimulai
[Show if an AprilTag ID is to the left or the right of the camera.]
selamanya
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]
bersihkan konsol
jika <objek Vision ada?> maka
jika <(objek Vision [centerX v]) [math_less_than v] [320]> maka
cetak [To the left] di konsol ▶
lainnya
cetak [To the right] di konsol ▶
selesai
selesai
tunggu [0.2] detik

pusatY#

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

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

Contoh

saat dimulai
[Take off and attempt to align the drone with an AprilTag ID on the wall.]
[Adjust the takeoff height to observe different results.]
terbang ke ketinggian [800] [mm v] ▶
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]
jika <objek Vision ada?> maka
jika <(objek Vision [centerY v]) [math_less_than v] [240]> maka
cetak [Below the target!] di konsol ▶
lainnya
cetak [Above the target!] di konsol ▶
selesai
lainnya
cetak [No target found!] di konsol ▶

bantalan#

Properti bearing melaporkan sudut yang menunjukkan posisi suatu objek relatif terhadap drone. Perilakunya bergantung pada Sensor Penglihatan yang digunakan.

Nilai 0° menunjukkan bahwa pusat objek dan sensor sejajar. Nilai positif berarti objek berada di sebelah kanan, sedangkan nilai negatif berarti objek berada di sebelah kiri.

Sensor

Pengembalian

Ke bawah

Derajat putaran bagian depan drone agar sejajar dengan pusat objek, dari –180º hingga 180º.

Maju

Derajat pergeseran objek ke kiri atau ke kanan dari pusat Sensor Penglihatan, dari –180º hingga 180º.

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

Contoh

saat dimulai
[Align the front of the drone to an AprilTag ID.]
atur kecepatan belok ke (15)%
terbang ke ketinggian [500] [mm v] ▶
selamanya
dapatkan data [semua AprilTag v] dari Vision kamera [ke bawah v]
jika <objek Vision ada?> maka
jika <[-20] [math_less_than v] (objek Vision [bearing v]) [math_less_than v] [20]> maka
[Hover once sensor is centered on the AprilTag ID.]
melayang
putar suara [berhasil v] ▶
lainnya jika <(objek Vision [bearing v]) [math_less_than v] [-21]> maka
belok [kiri v]
lainnya
belok [kanan v]

rotasi#

Properti rotasi melaporkan orientasi ID AprilTag yang terdeteksi sebagai bilangan bulat dalam derajat dari 1 hingga 359.

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

Contoh

saat dimulai
[Turn left or right based on the rotation of an AprilTag ID.]
terbang ke ketinggian [1000] [mm v] ▶
selamanya
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]
jika <objek Vision ada?> maka
jika <[240] [math_less_than v] (objek Vision [rotasi v]) [math_less_than v] [300]> maka
belok [kiri v] sejauh [90] derajat ▶
lainnya jika <[60] [math_less_than v] (objek Vision [rotasi v]) [math_less_than v] [120]> maka
belok [kanan v] sejauh [90] derajat ▶
lainnya
melayang

asalX#

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

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

Contoh

saat dimulai
[Draw lines to the AprilTag ID origin from all corners.]
selamanya
bersihkan layar
get [all AprilTags v] data from vision [forward v] camera
jika <objek Vision ada?> maka
gambar garis [0] [0] (objek Vision [originX v]) (objek Vision [originY v]) di layar
gambar garis [0] [480] (objek Vision [originX v]) (objek Vision [originY v]) di layar
gambar garis [640] [0] (objek Vision [originX v]) (objek Vision [originY v]) di layar
gambar garis [640] [480] (objek Vision [originX v]) (objek Vision [originY v]) di layar
selesai
tunggu [0.2] detik

asalY#

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

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

Contoh

saat dimulai
[Draw lines to the AprilTag ID origin from all corners.]
selamanya
bersihkan layar
get [all AprilTags v] data from vision [forward v] camera
jika <objek Vision ada?> maka
gambar garis [0] [0] (objek Vision [originX v]) (objek Vision [originY v]) di layar
gambar garis [0] [480] (objek Vision [originX v]) (objek Vision [originY v]) di layar
gambar garis [640] [0] (objek Vision [originX v]) (objek Vision [originY v]) di layar
gambar garis [640] [480] (objek Vision [originX v]) (objek Vision [originY v]) di layar
selesai
tunggu [0.2] detik

pengenal#

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

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

Contoh

saat dimulai
[Display the detected AprilTag ID.]
selamanya
dapatkan data [semua AprilTag v] dari Vision kamera [maju v]
bersihkan konsol
jika <objek Vision ada?> maka
cetak (objek Vision [id v]) di konsol ▶
selesai
tunggu [0.2] detik