Οραμα#

Εισαγωγή#

Το VEX AIR Drone διαθέτει δύο αισθητήρες όρασης που ανιχνεύουν και παρακολουθούν τα AprilTag IDs. Αυτοί επιτρέπουν στο drone να αναλύει το περιβάλλον του, να ακολουθεί αντικείμενα και να αντιδρά με βάση τα ανιχνευόμενα οπτικά δεδομένα.

Παρακάτω είναι μια λίστα με όλα τα διαθέσιμα μπλοκ:

Ενέργειες — Έλεγχος της ροής Vision και καταγραφή δεδομένων αντικειμένων.

Ρυθμίσεις — Προσαρμόστε ποια ανιχνευμένα αντικείμενα θα έχουν πρόσβαση.

Τιμές — Ανάκτηση παρουσίας, ταξινόμησης και ιδιοτήτων αντικειμένου.

Ενέργειες#

λήψη δεδομένων αντικειμένου#

Το μπλοκ στοίβας λήψη δεδομένων αντικειμένου φιλτράρει δεδομένα από το πλαίσιο του Αισθητήρα Όρασης. Οι Αισθητήρες Όρασης μπορούν να ανιχνεύσουν αναγνωριστικά AprilTag.

Το σύνολο δεδομένων αποθηκεύει αντικείμενα ταξινομημένα από το μεγαλύτερο στο μικρότερο κατά πλάτος, ξεκινώντας από τον δείκτη 0. Η πρόσβαση στις ιδιότητες κάθε αντικειμένου είναι δυνατή χρησιμοποιώντας το μπλοκ Ιδιότητα αντικειμένου Vision. Αναφέρεται ένα κενό σύνολο δεδομένων εάν δεν εντοπιστούν αντικείμενα που να ταιριάζουν.

Το μπλοκ στοίβας δεδομένων αντικειμένου “Λήψη”.#
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]

Παράμετρος

Περιγραφή

υπογραφή

Φιλτράρει το σύνολο δεδομένων ώστε να περιλαμβάνει μόνο δεδομένα της δεδομένης υπογραφής. Η διαθέσιμη υπογραφή είναι όλες οι ετικέτες April.

κάμερα

Ο αισθητήρας όρασης για την ανάκτηση δεδομένων, είτε προς τα εμπρός είτε προς τα κάτω.

Παράδειγμα

όταν ξεκινά
[Climb upward when an AprilTag ID is detected.]
απογείωση σε [300] [mm v] ▶
για πάντα
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]
αν <υπάρχει αντικείμενο Vision;> τότε
ανύψωση [πάνω v] για [200] [mm v] ▶

Ρυθμίσεις#

ορισμός αντικειμένου Vision#

Το μπλοκ στοίβας set Vision object item ορίζει ποιο στοιχείο στο σύνολο δεδομένων θα χρησιμοποιηθεί.

Το μπλοκ στοίβας στοιχείων αντικειμένου Set AI Vision.#
ορισμός στοιχείου αντικειμένου Vision σε [1]

Παράμετροι

Περιγραφή

είδος

Ο αριθμός του στοιχείου στο σύνολο δεδομένων που θα χρησιμοποιηθεί.

Παράδειγμα

όταν ξεκινά
[Display the smallest-appearing AprilTag ID.]
για πάντα
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]
εκκαθάριση κονσόλας
αν <υπάρχει αντικείμενο Vision;> τότε
ορισμός στοιχείου αντικειμένου Vision σε (πλήθος αντικειμένων Vision)
εκτύπωση (αντικείμενο Vision [id v]) στην κονσόλα ▶

Αξίες#

Το αντικείμενο όρασης υπάρχει#

Το αντικείμενο Όρασης υπάρχει Boolean μπλοκ αναφέρει εάν ο καθορισμένος Αισθητήρας Όρασης ανιχνεύει αυτήν τη στιγμή αντικείμενα.

  • Αληθές — Ο καθορισμένος αισθητήρας όρασης ανιχνεύει ένα αντικείμενο.

  • Ψευδές — Ο καθορισμένος αισθητήρας όρασης δεν ανιχνεύει κάποιο αντικείμενο.

Το μπλοκ στοίβας εμφάνισης ή απόκρυψης του πίνακα ελέγχου AI Vision.#
<υπάρχει αντικείμενο Vision;>

Παράμετρος

Περιγραφή

Αυτό το μπλοκ δεν έχει παραμέτρους.

Παράδειγμα

όταν ξεκινά
[Climb upward when an AprilTag ID is detected.]
απογείωση σε [300] [mm v] ▶
για πάντα
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]
αν <υπάρχει αντικείμενο Vision;> τότε
ανύψωση [πάνω v] για [200] [mm v] ▶

Το αντικείμενο όρασης είναι το AprilTag ID#

Το αντικείμενο Vision είναι το AprilTag ID Το Boolean μπλοκ αναφέρει εάν το AprilTag ID είναι ένας συγκεκριμένος αριθμός ID.

  • Σωστό — Το AprilTag ID είναι ο αριθμός.

  • Λάθος — Το αναγνωριστικό AprilTag δεν είναι ο αριθμός.

Το αναγνωριστικό AprilTag που εντόπισε το AI Vision είναι ένα λογικό μπλοκ.#
<Vision object is AprilTag ID [1]>

Παράμετροι

Περιγραφή

Αριθμός αναγνώρισης AprilTag

Ο αριθμός που θα συγκριθεί με τον ανιχνευμένο αριθμό αναγνωριστικού AprilTag από 0 έως 37.

Παράδειγμα

όταν ξεκινά
[Display when the target AprilTag ID is detected.]
για πάντα
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]
εκκαθάριση κονσόλας
αν <υπάρχει αντικείμενο Vision;> τότε
αν <Vision object is AprilTag ID [21]> τότε
εκτύπωση [Target found!] στην κονσόλα ▶
τέλος

Αριθμός οπτικών αντικειμένων#

Το μπλοκ αναφοράς Vision object count αναφέρει την ποσότητα των ανιχνευμένων αντικειμένων στο σύνολο δεδομένων ως ακέραιο αριθμό.

Το μπλοκ στοίβας στοιχείων αντικειμένου Set AI Vision.#
(πλήθος αντικειμένων Vision)

Παράμετροι

Περιγραφή

Αυτό το μπλοκ δεν έχει παραμέτρους.

Παράδειγμα

όταν ξεκινά
[Display how many AprilTag IDs are detected.]
για πάντα
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]
εκκαθάριση κονσόλας
εκτύπωση (πλήθος αντικειμένων Vision) στην κονσόλα ▶
περίμενε [0.2] δευτερόλεπτα

Ιδιότητα αντικειμένου όρασης#

Υπάρχουν πολλές ιδιότητες που περιλαμβάνονται σε κάθε αντικείμενο (φαίνεται παρακάτω) που αποθηκεύονται μετά τη χρήση του μπλοκ get object data.

Το μπλοκ αναφοράς ιδιοτήτων αντικειμένου AI Vision.#
(αντικείμενο Vision [πλάτος v])

Όλες οι τιμές ιδιοτήτων εκτός από το id περιγράφουν τη θέση, το μέγεθος, τον προσανατολισμό ή την κατεύθυνση του ανιχνευμένου αντικειμένου τη στιγμή που χρησιμοποιήθηκε το μπλοκ λήψη δεδομένων αντικειμένου. Αυτές οι τιμές μετριούνται σε pixel ή μοίρες. Κάθε αισθητήρας όρασης έχει διαφορετική ανάλυση:

  • Μπροστινή όψη: 640 x 480 pixel

  • Προς τα κάτω: 640 x 400 pixel

Παράμετρος

Περιγραφή

ιδιοκτησία

Ποια ιδιότητα του ανιχνευμένου αντικειμένου θα χρησιμοποιηθεί:

πλάτος#

Η ιδιότητα πλάτος αναφέρει το πλάτος του ανιχνευμένου αντικειμένου σε pixel ως ακέραιο αριθμό από το 1 έως το 640.

Το μπλοκ στοίβας ιδιοτήτων αντικειμένου AI Vision με την παράμετρο ορισμένη σε πλάτος.#
(αντικείμενο Vision [πλάτος v])

Παράδειγμα

όταν ξεκινά
[Show if the AprilTag ID appears large or small.]
για πάντα
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]
εκκαθάριση κονσόλας
αν <υπάρχει αντικείμενο Vision;> τότε
αν <(αντικείμενο Vision [πλάτος v]) [math_greater_than v] [100]> τότε
εκτύπωση [Large] στην κονσόλα ▶
αλλιώς
εκτύπωση [Small] στην κονσόλα ▶
τέλος
τέλος
περίμενε [0.2] δευτερόλεπτα

ύψος#

Η ιδιότητα ύψος αναφέρει το ύψος του ανιχνευμένου αντικειμένου σε pixel ως ακέραιο αριθμό από το 1 έως το 480.

Το μπλοκ στοίβας ιδιοτήτων αντικειμένου AI Vision με την παράμετρο ορισμένη σε ύψος.#
(αντικείμενο Vision [ύψος v])

Παράδειγμα

όταν ξεκινά
[Show if the AprilTag ID appears large or small.]
για πάντα
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]
εκκαθάριση κονσόλας
αν <υπάρχει αντικείμενο Vision;> τότε
αν <(αντικείμενο Vision [ύψος v]) [math_greater_than v] [100]> τότε
εκτύπωση [Large] στην κονσόλα ▶
αλλιώς
εκτύπωση [Small] στην κονσόλα ▶
τέλος
τέλος
περίμενε [0.2] δευτερόλεπτα

κέντρο X#

Η ιδιότητα centerX αναφέρει τη συντεταγμένη x του κέντρου του ανιχνευμένου αντικειμένου σε pixel ως ακέραιο αριθμό από το 1 έως το 640.

Το μπλοκ στοίβας ιδιοτήτων αντικειμένου AI Vision με την παράμετρο ορισμένη σε centerX.#
(αντικείμενο Vision [centerX v])

Παράδειγμα

όταν ξεκινά
[Show if an AprilTag ID is to the left or the right of the camera.]
για πάντα
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]
εκκαθάριση κονσόλας
αν <υπάρχει αντικείμενο Vision;> τότε
αν <(αντικείμενο Vision [centerX v]) [math_less_than v] [320]> τότε
εκτύπωση [To the left] στην κονσόλα ▶
αλλιώς
εκτύπωση [To the right] στην κονσόλα ▶
τέλος
τέλος
περίμενε [0.2] δευτερόλεπτα

κέντροY#

Η ιδιότητα centerY αναφέρει τη συντεταγμένη y του κέντρου του ανιχνευμένου αντικειμένου σε pixel ως ακέραιο αριθμό από το 1 έως το 480.

Το μπλοκ στοίβας ιδιοτήτων αντικειμένου AI Vision με την παράμετρο ορισμένη σε centerY.#
(αντικείμενο Vision [centerY v])

Παράδειγμα

όταν ξεκινά
[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] ▶
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]
αν <υπάρχει αντικείμενο Vision;> τότε
αν <(αντικείμενο Vision [centerY v]) [math_less_than v] [240]> τότε
εκτύπωση [Below the target!] στην κονσόλα ▶
αλλιώς
εκτύπωση [Above the target!] στην κονσόλα ▶
τέλος
αλλιώς
εκτύπωση [No target found!] στην κονσόλα ▶

ρουλεμάν#

Η ιδιότητα διόπτευση αναφέρει μια γωνία που υποδεικνύει τη θέση ενός αντικειμένου σε σχέση με το drone. Η συμπεριφορά εξαρτάται από το ποιος αισθητήρας όρασης χρησιμοποιείται.

Μια τιμή 0° υποδεικνύει ότι το κέντρο του αντικειμένου και ο αισθητήρας είναι ευθυγραμμισμένα. Θετικές τιμές σημαίνουν ότι το αντικείμενο βρίσκεται στα δεξιά, ενώ αρνητικές τιμές σημαίνουν ότι το αντικείμενο βρίσκεται στα αριστερά.

Αισθητήρας

Επιστροφές

Προς τα κάτω

Μοίρες που πρέπει να περιστραφεί το μπροστινό μέρος του drone για να ευθυγραμμιστεί με το κέντρο του αντικειμένου, από –180º έως 180º.

Προς τα εμπρός

Μοίρες κατά τις οποίες το αντικείμενο είναι μετατοπισμένο αριστερά ή δεξιά από το κέντρο του αισθητήρα όρασης από –180º έως 180º.

Το μπλοκ στοίβας ιδιοτήτων αντικειμένου AI Vision με την παράμετρο ορισμένη σε centerY.#
(αντικείμενο Vision [ρουμβ v])

Παραδείγματα

όταν ξεκινά
[Align the front of the drone to an AprilTag ID.]
ορισμός ταχύτητας στροφής σε (15)%
απογείωση σε [500] [mm v] ▶
για πάντα
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [προς τα κάτω v]
αν <υπάρχει αντικείμενο Vision;> τότε
αν <[-20] [math_less_than v] (αντικείμενο Vision [ρουμβ v]) [math_less_than v] [20]> τότε
[Hover once sensor is centered on the AprilTag ID.]
αιώρηση
αναπαραγωγή ήχου [επιτυχία v] ▶
αλλιώς αν <(αντικείμενο Vision [ρουμβ v]) [math_less_than v] [-21]> τότε
στροφή [αριστερά v]
αλλιώς
στροφή [δεξιά v]

περιστροφή#

Η ιδιότητα περιστροφή αναφέρει τον προσανατολισμό του αναγνωριστικού AprilTag που εντοπίστηκε ως ακέραιο αριθμό σε μοίρες από 1 έως 359.

Το μπλοκ στοίβας ιδιοτήτων αντικειμένου AI Vision με την παράμετρο ορισμένη σε περιστροφή.#
(αντικείμενο Vision [περιστροφή v])

Παράδειγμα

όταν ξεκινά
[Turn left or right based on the rotation of an AprilTag ID.]
απογείωση σε [1000] [mm v] ▶
για πάντα
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]
αν <υπάρχει αντικείμενο Vision;> τότε
αν <[240] [math_less_than v] (αντικείμενο Vision [περιστροφή v]) [math_less_than v] [300]> τότε
στροφή [αριστερά v] για [90] μοίρες ▶
αλλιώς αν <[60] [math_less_than v] (αντικείμενο Vision [περιστροφή v]) [math_less_than v] [120]> τότε
στροφή [δεξιά v] για [90] μοίρες ▶
αλλιώς
αιώρηση

προέλευση X#

Η ιδιότητα originX αναφέρει τη συντεταγμένη x της επάνω αριστερής γωνίας του πλαισίου οριοθέτησης του ανιχνευμένου αντικειμένου σε pixel ως ακέραιο αριθμό από το 1 έως το 640.

Το μπλοκ στοίβας ιδιοτήτων αντικειμένου AI Vision με την παράμετρο ορισμένη σε originX.#
(αντικείμενο Vision [originX v])

Παράδειγμα

όταν ξεκινά
[Draw lines to the AprilTag ID origin from all corners.]
για πάντα
εκκαθάριση οθόνης
get [all AprilTags v] data from vision [forward v] camera
αν <υπάρχει αντικείμενο Vision;> τότε
σχεδίαση γραμμής [0] [0] (αντικείμενο Vision [originX v]) (αντικείμενο Vision [originY v]) στην οθόνη
σχεδίαση γραμμής [0] [480] (αντικείμενο Vision [originX v]) (αντικείμενο Vision [originY v]) στην οθόνη
σχεδίαση γραμμής [640] [0] (αντικείμενο Vision [originX v]) (αντικείμενο Vision [originY v]) στην οθόνη
σχεδίαση γραμμής [640] [480] (αντικείμενο Vision [originX v]) (αντικείμενο Vision [originY v]) στην οθόνη
τέλος
περίμενε [0.2] δευτερόλεπτα

προέλευσηY#

Η ιδιότητα originY αναφέρει τη συντεταγμένη y της επάνω αριστερής γωνίας του πλαισίου οριοθέτησης του ανιχνευμένου αντικειμένου σε pixel ως ακέραιο αριθμό από το 1 έως το 480.

Το μπλοκ στοίβας ιδιοτήτων αντικειμένου AI Vision με την παράμετρο ορισμένη σε originY.#
(αντικείμενο Vision [originY v])

Παράδειγμα

όταν ξεκινά
[Draw lines to the AprilTag ID origin from all corners.]
για πάντα
εκκαθάριση οθόνης
get [all AprilTags v] data from vision [forward v] camera
αν <υπάρχει αντικείμενο Vision;> τότε
σχεδίαση γραμμής [0] [0] (αντικείμενο Vision [originX v]) (αντικείμενο Vision [originY v]) στην οθόνη
σχεδίαση γραμμής [0] [480] (αντικείμενο Vision [originX v]) (αντικείμενο Vision [originY v]) στην οθόνη
σχεδίαση γραμμής [640] [0] (αντικείμενο Vision [originX v]) (αντικείμενο Vision [originY v]) στην οθόνη
σχεδίαση γραμμής [640] [480] (αντικείμενο Vision [originX v]) (αντικείμενο Vision [originY v]) στην οθόνη
τέλος
περίμενε [0.2] δευτερόλεπτα

ταυτότητα#

Η ιδιότητα id αναφέρει τον αριθμό αναγνώρισης του αναγνωριστικού AprilTag που εντοπίστηκε ως ακέραιο αριθμό.

Το μπλοκ στοίβας ιδιοτήτων αντικειμένου AI Vision με την παράμετρο ορισμένη σε tagID.#
(αντικείμενο Vision [id v])

Παράδειγμα

όταν ξεκινά
[Display the detected AprilTag ID.]
για πάντα
λήψη δεδομένων [όλα τα AprilTags v] από κάμερα Vision [εμπρός v]
εκκαθάριση κονσόλας
αν <υπάρχει αντικείμενο Vision;> τότε
εκτύπωση (αντικείμενο Vision [id v]) στην κονσόλα ▶
τέλος
περίμενε [0.2] δευτερόλεπτα