VEX Yapay Zeka Robotunu Kodlama

Bu makale, VEXlink kullanarak robottan robota iletişimin durumunu ve ayrıca durumu Jetson'a bildiren bir gösterge panosunu görüntüleyen örnek bir projeyi kapsayacaktır. Ai_demo projesi Githubbarındırılıyor. Bu demo projesi, USB seri bağlantısı aracılığıyla Jetson işlemcisinden veri toplar. Veriler alındıktan sonra V5 Brain'in ekranında görüntülenir ve ayrıca VEXlink aracılığıyla bağlanan ortak bir V5 robotuna iletilir.

Not: Bu proje, V5 için VS Code Extension'ın en son sürümünü gerektirir. V5 için VS Code Uzantısını buradan indirin.


NVIDIA Jetson Nano'dan VEX V5'e Beyin İletişimi

Jetson işlemcisi, VEX AI yazılımından aşağıdaki verileri toplayan bir uygulama içerir:

VEX AI kullanım sürecini gösteren, V5 robotik sistemlerinde etkili uygulama için temel bileşenleri ve iş akışını gösteren diyagram.

Robot Konum verileri:

  • Robotun saha merkezinden metre cinsinden X,Y konumu.
  • Robotun Azimutu (İstikamet), Yükseklik (Adım), Dönüş (Dönme) değerlerinin tümü radyan cinsindendir.

Nesne Algılama verileri (üç tür):

VEX AI sistem bileşenlerini ve bunların etkileşimlerini gösteren diyagram, VEX AI'nın V5 kategorisinde robotik işlevselliği nasıl geliştirdiğini göstermektedir.

Görüntü Algılama (birini yazın):
  • Bu veriler VEX AI Intel Kamera tarafından algılanan bir nesneyi temsil eder.
  • Bu veriler nesneyi kamera görüntüsüne göre tanımlar.
  • X, Y, genişlik ve yükseklik değerleri piksel birimindedir. Piksel değerleri, görüntünün ve nesne algılama kutusunun sol üst köşesine referanslıdır. Görüntü çözünürlüğü 640x480'dir.

 

V5 Kategori Açıklaması kapsamında VEX AI'nın özelliklerini ve bileşenlerini gösteren, robotikteki uygulamalarını ve faydalarını vurgulayan diyagram.

Harita Algılama (ikinci tip):

  • Bu veriler, GPS Sensörü ile aynı koordinat sistemindeki nesnenin sahadaki konumunu metre cinsinden rapor ederek temsil eder.
  • Her nesne aynı zamanda nesnenin alanın merkezine göre konumunu da içerir. X ve Y değerleri, ilgili eksenlerdeki alanın merkezinden itibaren metre cinsindendir. Z'nin değeri alan döşemelerinden metredir (yükseklik).

Algılama Nesnesi (üçüncü tip):

VEX AI sistem bileşenlerini ve bunların etkileşimlerini gösteren, V5 robotik platformundaki temel özellikleri ve işlevleri vurgulayan diyagram.

  • Bu, algılanan nesnelerle ilgili tüm bilgileri kapsar.
  • Her nesne, algılanan nesnenin sınıflandırmasını temsil eden bir değer içerir. (Sınıf Kimliği: 0 = GreenTriBall, 1 = RedTriBall, 2 = BlueTriBall)
  • Her nesne ayrıca VEX AI'nin tespite olan güvenini temsil eden bir olasılık içerir. Bu, model.py'deki düşük olasılıklı tespitleri ortadan kaldıran bir filtreden sonradır.
  • Ayrıca nesnenin derinliği VEX AI Intel Kameradan metre cinsinden raporlanıyor.
  • Görüntü Algılama ve Harita Algılama, nesnenin hem görüntüdeki hem de gerçek dünyadaki koordinatlarını temsil etmek için her nesneye eklenir.

ai_demo programının dökümü:

Main.cpp

V5 Kategorisindeki VEX AI'nın özelliklerini ve işlevlerini gösteren, teknolojinin robotik uygulamalarda nasıl etkili bir şekilde kullanılabileceğini gösteren diyagram.

VEX projeleri için standart şunları içerir:

VEX AI Kullanımı bölümündeki V5 Kategori Açıklaması'nın bir parçası olarak VEX AI sistem bileşenlerini ve bunların etkileşimlerini gösteren diyagram.

Jetson sınıfının bir örneğini bildirin. Bu sınıf, Jetson'a veri istekleri göndermek ve USB seri bağlantısı yoluyla veri almak için kullanılır.

#MANAGER_ROBOT 1'i tanımlayın

V5 robotiği bağlamında VEX AI'nın özelliklerini ve bileşenlerini gösteren, temel işlevleri ve kullanım yönergelerini vurgulayan diyagram.

Robot_link sınıfının bir örneğini bildirin. Bu nesne, bu robot ile bir ortak robot arasında bağlantı kurmak ve veri aktarmak için kullanılacaktır. Aynı proje iki ayrı robota indirilebilir. Bir robotun şu satıra ihtiyacı olacak:

//#MANAGER_ROBOT 1'i tanımla

Kodu ikinci robota yüklemeden önce şu satırı açıklamanız gerekecektir:

robot_link sınıfı, robotun VEXlink'ini kurar ve iki robot arasında veri iletimini ve alımını yönetir. Bu yazıda bu sınıfın nasıl çalıştığına dair ayrıntılara girmeyeceğiz. Öncelikle VEXlink'in nasıl çalıştığını anlamak iyi bir fikir olacaktır. V5 VEXlink API'nin kullanımı hakkında daha detaylı bilgi için, bu yeni kütüphaneler ve robotlar arası iletişimde nasıl etkin bir şekilde kullanılacağı açıklanmaktadır.

  • Yarışma Etkinliği sorumluları

    V5 robotik sisteminde VEX AI'nın özelliklerini ve bileşenlerini gösteren, robot performansını ve programlamasını geliştirme yeteneklerini vurgulayan diyagram.

    VAIC ile VRC arasındaki en büyük farklardan biri sürücü kontrol süresinin olmamasıdır. Bunun yerine iki özerk dönem vardır; izolasyon dönemi ve etkileşim dönemi. Bu örnekte her otonom dönem için ayrı rutinler bulunmaktadır. VEX API iki farklı geri aramayı desteklemediğinden, hangi rutinin yürütüleceğini belirlemek için programda bir bayrak bulunmalıdır. Bu örnek programda, "firstAutoFlag", otonom ilk kez etkinleştirildiğinde İzolasyon işlevini çağırmak ve otonom ikinci kez etkinleştirildiğinde etkileşim işlevini çağırmak için kullanılır. Unutulmaması gereken bir nokta, herhangi bir nedenle maçın sıfırlanması gerekiyorsa, ilk AutoFlag'in sıfırlanabilmesi için demo programının yeniden başlatılması gerekeceğidir.

  • Ana()

    V5 Kategorisindeki VEX AI'nın özelliklerini ve işlevlerini gösteren, gelişmiş robotik programlama ve otomasyon için temel bileşenleri ve bunların etkileşimlerini vurgulayan diyagram.

    Bu projenin ana görevi budur. VEXcode ortamını doğru şekilde ayarlamak için vexcodeInit() çağrılmasıyla başlar. Daha sonra Jetson'dan aldığımız verileri depolamak için yerel bir AI_RECORD nesnesi bildirilir. Ekranın en güncel verilerle güncellenmesini sağlamak için ayrı bir görev de ayarlanmıştır. Bu görevin kodu gösterge tablosu.cpp dosyasında bulunur. Otonom geri arama, otonom dönemler başlatıldığında işlemek üzere de kaydedilir.

    Ana while() döngüsü, jetson_comms nesnesindeki en son verilerin yerel AI_RECORD nesnemize kopyalanmasıyla başlar. Daha sonra robotun konum bilgisini bağlantı nesnesine aktararak ortak robotumuza iletilmesini sağlar. Verilerin işlenmesi tamamlandıktan sonra Jetson'dan daha fazla veri talep ediyor ve 66 milisaniye boyunca uyuyor. Bu veri için yoklama oranı 15Hz'dir. AI sistem verileri yaklaşık 15Hz'de güncellendiğinden daha hızlı anket yapmanın bir anlamı yok.

    Not: Jetson harita verilerinin yalnızca tek bir görev tarafından talep edilmesi gerekir.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: