Görüş#
giriiş#
VEX AIR Drone, AprilTag kimliklerini algılayan ve izleyen iki adet Görsel Sensöre sahiptir. Bu sensörler, dronun çevresini analiz etmesine, nesneleri takip etmesine ve algılanan görsel verilere göre tepki vermesine olanak tanır.
Aşağıda mevcut tüm blokların listesi bulunmaktadır:
İşlemler — Görüntü akışını kontrol edin ve nesne verilerini yakalayın.
Nesne verilerini al — AprilTag Kimlikleri için verileri yakalar.
Ayarlar — Algılanan hangi nesnelere erişileceğini ayarlayın.
Vizyon nesne öğesini ayarla — Algılanan nesne listesinden belirli bir nesneyi seçer.
Değerler — Nesnenin varlığını, sınıflandırmasını ve özelliklerini alın.
Görsel nesne mevcut — Bir nesnenin algılanıp algılanmadığını bildirir.
Görsel nesne AprilTag Kimliği — Algılanan bir AprilTag Kimliğinin belirli bir kimlikle eşleşip eşleşmediğini kontrol eder.
Görsel nesne sayısı — Tespit edilen nesne sayısını bildirir.
Görsel nesne özelliği — Şunlar gibi ayrıntıları alır:
centerX & centerY — Sensörün görüş alanındaki merkez konum koordinatları.
yön — Nesnenin ön Görüş Sensörüne göre açısı veya dronun nesneye doğru dönmesi için gereken derece.
döndürme — Nesnenin yönü.
originX & originY — Sensörün görüş alanındaki sol üst köşe konum koordinatları.
id — Bir AprilTag ID’sinin tanımlama numarası.
Eylemler#
nesne verilerini al#
Nesne verilerini al yığın bloğu, Görsel Sensörün çerçevesindeki verileri filtreler. Görsel Sensörler AprilTag Kimliklerini algılayabilir.
Veri seti, 0 indeksinden başlayarak genişliğe göre en büyükten en küçüğe doğru sıralanmış nesneleri depolar. Her nesnenin özelliklerine Vision object property bloğu kullanılarak erişilebilir. Eşleşen nesne bulunmazsa boş bir veri seti raporlanır.
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
Parametre |
Tanım |
|---|---|
imza |
Veri kümesini yalnızca belirtilen imzaya ait verileri içerecek şekilde filtreler. Mevcut imzalar tüm AprilTags’tir. |
kamera |
Verileri almak için kullanılan Görüntü Sensörü, ileri veya aşağı yönden veri toplar. |
Örnek
başladığında
[Climb upward when an AprilTag ID is detected.]
[300] [mm v] yüksekliğe kalkış yap ▶
sonsuza kadar
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
eğer <Vision nesnesi var mı?> ise
[yukarı v] yönünde [200] [mm v] tırman ▶
Ayarlar#
Vision nesne öğesini ayarla#
Set Vision object item yığın bloğu, veri kümesindeki hangi öğenin kullanılacağını belirler.
Vision nesne öğesini [1] olarak ayarla
Parametreler |
Tanım |
|---|---|
öğe |
Veri setinde kullanılacak öğenin numarası. |
Örnek
başladığında
[Display the smallest-appearing AprilTag ID.]
sonsuza kadar
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
konsolu temizle
eğer <Vision nesnesi var mı?> ise
Vision nesne öğesini (Vision nesne sayısı) olarak ayarla
konsolda (Vision nesnesi [id v]) yazdır ▶
Değerler#
Görsel nesne mevcuttur.#
Görüş nesnesi mevcut Boolean bloğu, belirtilen Görüş Sensörünün şu anda herhangi bir nesne algılayıp algılamadığını bildirir.
Doğru — Belirtilen Görüntü Sensörü bir nesne algılıyor.
Yanlış — Belirtilen Görüntü Sensörü herhangi bir nesne algılamadı.
<Vision nesnesi var mı?>
Parametre |
Tanım |
|---|---|
Bu bloğun parametresi yok. |
Örnek
başladığında
[Climb upward when an AprilTag ID is detected.]
[300] [mm v] yüksekliğe kalkış yap ▶
sonsuza kadar
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
eğer <Vision nesnesi var mı?> ise
[yukarı v] yönünde [200] [mm v] tırman ▶
Görsel nesne AprilTag ID’dir.#
Vision nesnesi AprilTag ID Boolean bloğu, AprilTag ID’nin belirli bir kimlik numarası olup olmadığını bildirir.
Doğru — AprilTag ID’si numaradır.
Yanlış — AprilTag ID’si numara değildir.
<Vision object is AprilTag ID [1]>
Parametreler |
Tanım |
|---|---|
Nisan Etiketi kimlik numarası |
Tespit edilen AprilTag kimlik numarasıyla karşılaştırılacak sayı (0 ile 37 arası). |
Örnek
başladığında
[Display when the target AprilTag ID is detected.]
sonsuza kadar
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
konsolu temizle
eğer <Vision nesnesi var mı?> ise
eğer <Vision object is AprilTag ID [21]> ise
konsolda [Target found!] yazdır ▶
son
Görsel nesne sayısı#
Görsel nesne sayısı raporlama bloğu, veri kümesindeki tespit edilen nesnelerin sayısını tam sayı olarak rapor eder.
(Vision nesne sayısı)
Parametreler |
Tanım |
|---|---|
Bu bloğun parametresi yok. |
Örnek
başladığında
[Display how many AprilTag IDs are detected.]
sonsuza kadar
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
konsolu temizle
konsolda (Vision nesne sayısı) yazdır ▶
[0.2] saniye bekle
Görsel nesne özelliği#
Nesne verilerini al bloğu kullanıldıktan sonra depolanan her nesneyle birlikte birden fazla özellik bulunur (aşağıda gösterilmiştir).
(Vision nesnesi [genişlik v])
id dışındaki tüm özellik değerleri, nesne verilerini al bloğunun kullanıldığı anda algılanan nesnenin konumunu, boyutunu, yönünü veya açısını tanımlar. Bu değerler piksel veya derece cinsinden ölçülür. Her Görüş Sensörünün farklı bir çözünürlüğü vardır:
Öne bakan: 640 x 480 piksel
Aşağıya bakan: 640 x 400 piksel
Parametre |
Tanım |
|---|---|
mülk |
Algılanan nesnenin hangi özelliğini kullanacağız: |
Genişlik#
Genişlik özelliği, algılanan nesnenin genişliğini piksel cinsinden, 1 ile 640 arasında tam sayı olarak bildirir.
(Vision nesnesi [genişlik v])
Örnek
başladığında
[Show if the AprilTag ID appears large or small.]
sonsuza kadar
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
konsolu temizle
eğer <Vision nesnesi var mı?> ise
eğer <(Vision nesnesi [genişlik v]) [math_greater_than v] [100]> ise
konsolda [Large] yazdır ▶
değilse
konsolda [Small] yazdır ▶
son
son
[0.2] saniye bekle
yükseklik#
Height özelliği, algılanan nesnenin yüksekliğini piksel cinsinden, 1 ile 480 arasında tam sayı olarak bildirir.
(Vision nesnesi [yükseklik v])
Örnek
başladığında
[Show if the AprilTag ID appears large or small.]
sonsuza kadar
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
konsolu temizle
eğer <Vision nesnesi var mı?> ise
eğer <(Vision nesnesi [yükseklik v]) [math_greater_than v] [100]> ise
konsolda [Large] yazdır ▶
değilse
konsolda [Small] yazdır ▶
son
son
[0.2] saniye bekle
merkezX#
centerX özelliği, algılanan nesnenin merkezinin x koordinatını piksel cinsinden, 1 ile 640 arasında tam sayı olarak bildirir.
(Vision nesnesi [merkezX v])
Örnek
başladığında
[Show if an AprilTag ID is to the left or the right of the camera.]
sonsuza kadar
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
konsolu temizle
eğer <Vision nesnesi var mı?> ise
eğer <(Vision nesnesi [merkezX v]) [math_less_than v] [320]> ise
konsolda [To the left] yazdır ▶
değilse
konsolda [To the right] yazdır ▶
son
son
[0.2] saniye bekle
merkezY#
centerY özelliği, tespit edilen nesnenin merkezinin y koordinatını piksel cinsinden, 1 ile 480 arasında tam sayı olarak bildirir.
(Vision nesnesi [merkezY v])
Örnek
başladığında
[Take off and attempt to align the drone with an AprilTag ID on the wall.]
[Adjust the takeoff height to observe different results.]
[800] [mm v] yüksekliğe kalkış yap ▶
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
eğer <Vision nesnesi var mı?> ise
eğer <(Vision nesnesi [merkezY v]) [math_less_than v] [240]> ise
konsolda [Below the target!] yazdır ▶
değilse
konsolda [Above the target!] yazdır ▶
son
değilse
konsolda [No target found!] yazdır ▶
yatak#
Yön özelliği, bir nesnenin drone’a göre konumunu gösteren bir açıyı bildirir. Davranış, kullanılan Görüş Sensörüne bağlıdır.
0° değeri, nesnenin ve sensörün merkezlerinin hizalandığını gösterir. Pozitif değerler nesnenin sağda, negatif değerler ise solda olduğunu ifade eder.
Sensör |
İadeler |
|---|---|
Aşağı doğru |
İnsansız hava aracının ön kısmının, cismin merkeziyle hizalanması için dönmesi gereken açı (derece cinsinden), -180º ile 180º arasındadır. |
İleri |
Nesnenin, görüş sensörünün merkezine göre sola veya sağa doğru -180º ile 180º arasında değişen açıdaki uzaklığını gösterir. |
(Vision nesnesi [yön açısı v])
Örnekler
başladığında
[Align the front of the drone to an AprilTag ID.]
dönüş hızını (15)% olarak ayarla
[500] [mm v] yüksekliğe kalkış yap ▶
sonsuza kadar
Vision [aşağıya v] kamerasından [tüm AprilTag'ler v] verilerini al
eğer <Vision nesnesi var mı?> ise
eğer <[-20] [math_less_than v] (Vision nesnesi [yön açısı v]) [math_less_than v] [20]> ise
[Hover once sensor is centered on the AprilTag ID.]
askıda kal
[başarı v] sesini çal ▶
değilse eğer <(Vision nesnesi [yön açısı v]) [math_less_than v] [-21]> ise
[sol v] yönüne dön
değilse
[sağ v] yönüne dön
rotasyon#
Döndürme özelliği, algılanan AprilTag ID’sinin yönünü 1 ile 359 derece arasında tam sayı olarak bildirir.
(Vision nesnesi [döndürme v])
Örnek
başladığında
[Turn left or right based on the rotation of an AprilTag ID.]
[1000] [mm v] yüksekliğe kalkış yap ▶
sonsuza kadar
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
eğer <Vision nesnesi var mı?> ise
eğer <[240] [math_less_than v] (Vision nesnesi [döndürme v]) [math_less_than v] [300]> ise
[sol v] yönüne [90] derece dön ▶
değilse eğer <[60] [math_less_than v] (Vision nesnesi [döndürme v]) [math_less_than v] [120]> ise
[sağ v] yönüne [90] derece dön ▶
değilse
askıda kal
originX#
originX özelliği, algılanan nesnenin sınırlayıcı kutusunun sol üst köşesinin x koordinatını piksel cinsinden, 1 ile 640 arasında tam sayı olarak bildirir.
(Vision nesnesi [başlangıçX v])
Örnek
başladığında
[Draw lines to the AprilTag ID origin from all corners.]
sonsuza kadar
ekranı temizle
get [all AprilTags v] data from vision [forward v] camera
eğer <Vision nesnesi var mı?> ise
ekranda [0] [0] (Vision nesnesi [başlangıçX v]) (Vision nesnesi [başlangıçY v]) noktaları arasına çizgi çiz
ekranda [0] [480] (Vision nesnesi [başlangıçX v]) (Vision nesnesi [başlangıçY v]) noktaları arasına çizgi çiz
ekranda [640] [0] (Vision nesnesi [başlangıçX v]) (Vision nesnesi [başlangıçY v]) noktaları arasına çizgi çiz
ekranda [640] [480] (Vision nesnesi [başlangıçX v]) (Vision nesnesi [başlangıçY v]) noktaları arasına çizgi çiz
son
[0.2] saniye bekle
originY#
originY özelliği, tespit edilen nesnenin sınırlayıcı kutusunun sol üst köşesinin y koordinatını piksel cinsinden, 1 ile 480 arasında tam sayı olarak bildirir.
(Vision nesnesi [başlangıçY v])
Örnek
başladığında
[Draw lines to the AprilTag ID origin from all corners.]
sonsuza kadar
ekranı temizle
get [all AprilTags v] data from vision [forward v] camera
eğer <Vision nesnesi var mı?> ise
ekranda [0] [0] (Vision nesnesi [başlangıçX v]) (Vision nesnesi [başlangıçY v]) noktaları arasına çizgi çiz
ekranda [0] [480] (Vision nesnesi [başlangıçX v]) (Vision nesnesi [başlangıçY v]) noktaları arasına çizgi çiz
ekranda [640] [0] (Vision nesnesi [başlangıçX v]) (Vision nesnesi [başlangıçY v]) noktaları arasına çizgi çiz
ekranda [640] [480] (Vision nesnesi [başlangıçX v]) (Vision nesnesi [başlangıçY v]) noktaları arasına çizgi çiz
son
[0.2] saniye bekle
İD#
id özelliği, tespit edilen AprilTag ID’sinin tanımlama numarasını tam sayı olarak bildirir.
(Vision nesnesi [id v])
Örnek
başladığında
[Display the detected AprilTag ID.]
sonsuza kadar
Vision [ileri v] kamerasından [tüm AprilTag'ler v] verilerini al
konsolu temizle
eğer <Vision nesnesi var mı?> ise
konsolda (Vision nesnesi [id v]) yazdır ▶
son
[0.2] saniye bekle