Mengkodekan Robot AI VEX

Artikel ini akan membahas contoh proyek yang menampilkan dasbor yang melaporkan status komunikasi robot ke robot menggunakan VEXlink dan juga status ke Jetson. Proyek ai_demo dihosting di Github kami. Proyek demo ini mengumpulkan data dari prosesor Jetson melalui koneksi serial USB. Setelah data diterima, data tersebut ditampilkan di layar V5 Brain dan juga dikirimkan ke robot mitra V5 yang terhubung melalui VEXlink.

Catatan: Proyek ini memerlukan versi terbaru dari Ekstensi VS Code untuk V5. Unduh Ekstensi VS Code untuk V5 di sini.


Komunikasi Otak NVIDIA Jetson Nano ke VEX V5

Prosesor Jetson berisi aplikasi yang mengumpulkan data berikut dari perangkat lunak VEX AI:

Diagram yang mengilustrasikan proses penggunaan VEX AI, memamerkan komponen utama dan alur kerja untuk implementasi yang efektif dalam sistem robotika V5.

Data Lokasi Robot:

  • Lokasi X,Y robot dalam meter dari pusat lapangan.
  • Azimuth (Heading), Elevation (Pitch), Rotation (Roll) Robot semuanya dalam radian.

Data Deteksi Objek (tiga jenis):

Diagram yang mengilustrasikan komponen sistem VEX AI dan interaksinya, menunjukkan bagaimana VEX AI meningkatkan fungsionalitas robotika dalam kategori V5.

Deteksi Gambar (tipe satu):
  • Data ini mewakili objek yang terdeteksi oleh VEX AI Intel Camera.
  • Data ini mendeskripsikan objek dengan mengacu pada gambar kamera.
  • Nilai untuk X, Y, lebar, dan tinggi dalam satuan piksel. Nilai piksel mengacu pada sudut kiri atas kotak deteksi gambar dan objek. Resolusi gambar 640x480.

 

Diagram yang mengilustrasikan fitur dan komponen VEX AI, menyoroti aplikasi dan manfaatnya dalam robotika, sebagai bagian dari Deskripsi Kategori V5.

Deteksi Peta (tipe dua):

  • Data ini menunjukkan lokasi objek di lapangan dalam sistem koordinat yang sama dengan Sensor GPS, dilaporkan dalam meter.
  • Setiap objek juga berisi lokasi objek relatif terhadap pusat bidang. Nilai untuk X dan Y dalam satuan meter dari pusat lapangan pada sumbu masing-masing. Nilai Z adalah meter dari petak lapangan (ketinggian).

Objek Deteksi (tipe tiga):

Diagram yang mengilustrasikan komponen sistem VEX AI dan interaksinya, menyoroti fitur dan fungsi utama dalam platform robotika V5.

  • Ini merangkum semua informasi tentang objek yang terdeteksi.
  • Setiap objek berisi nilai yang mewakili klasifikasi objek yang terdeteksi. (ID Kelas: 0 = GreenTriball, 1 = RedTriBall, 2 = BlueTriBall)
  • Setiap objek juga mengandung probabilitas yang mewakili keyakinan VEX AI dalam deteksi. Ini setelah filter dalam model.py yang menghilangkan deteksi probabilitas rendah.
  • Selain itu, kedalaman objek dilaporkan dalam meter dari Kamera VEX AI Intel.
  • Deteksi Gambar dan Deteksi Peta dilampirkan ke setiap objek untuk mewakili koordinat objek pada gambar dan dunia nyata.

Rincian program ai_demo:

Utama.cpp

Diagram yang mengilustrasikan fitur dan fungsionalitas VEX AI dalam Kategori V5, menunjukkan cara penggunaan teknologi secara efektif untuk aplikasi robotika.

Standar mencakup untuk proyek VEX:

Diagram yang mengilustrasikan komponen sistem VEX AI dan interaksinya, sebagai bagian dari Deskripsi Kategori V5 di bagian Menggunakan VEX AI.

Nyatakan contoh kelas Jetson. Kelas ini digunakan untuk mengirim permintaan data ke Jetson serta menerima data melalui koneksi serial USB.

#definisikan MANAJER_ROBOT 1

Diagram yang mengilustrasikan fitur dan komponen VEX AI dalam konteks robotika V5, menyoroti fungsi utama dan panduan penggunaan.

Nyatakan contoh kelas robot_link. Objek ini akan digunakan untuk menghubungkan dan mentransfer data antara robot ini dan robot mitra. Proyek yang sama dapat diunduh ke dua robot terpisah. Satu robot harus memiliki garis:

//#definisikan MANAJER_ROBOT 1

Sebelum Anda memuat kode ke robot kedua, Anda perlu mengomentari baris tersebut:

Kelas robot_link menyiapkan VEXlink robot dan menangani pengiriman dan penerimaan data antara kedua robot. Kami tidak akan membahas secara rinci dalam artikel ini tentang cara kerja kelas tersebut. Ada baiknya untuk memahami terlebih dahulu cara kerja VEXlink. Untuk informasi lebih rinci tentang penggunaan V5 VEXlink API, ini pustaka baru dan cara menggunakannya secara efektif untuk komunikasi robot-ke-robot.

  • Penanganan Acara Kompetisi

    Diagram yang mengilustrasikan fitur dan komponen VEX AI dalam sistem robotika V5, menyoroti kemampuannya untuk meningkatkan kinerja dan pemrograman robot.

    Salah satu perbedaan terbesar antara VAIC dan VRC adalah tidak adanya periode kontrol pengemudi. Sebaliknya ada dua periode otonomi, periode isolasi dan periode interaksi. Dalam contoh ini, ada rutinitas terpisah untuk setiap periode otonomi. Karena VEX API tidak mendukung dua panggilan balik yang berbeda, harus ada tanda dalam program untuk menentukan rutin mana yang akan dieksekusi. Dalam program contoh ini, "firstAutoFlag" digunakan untuk memanggil fungsi Isolasi saat otonomi diaktifkan untuk pertama kalinya, dan fungsi interaksi saat otonomi diaktifkan untuk kedua kalinya. Satu hal yang perlu diperhatikan adalah jika karena alasan tertentu pertandingan perlu diatur ulang, program demo perlu dimulai ulang agar firstAutoFlag dapat diatur ulang.

  • Utama()

    Diagram yang mengilustrasikan fitur dan fungsionalitas VEX AI dalam Kategori V5, menyoroti komponen utama dan interaksinya untuk pemrograman dan otomatisasi robotika yang ditingkatkan.

    Ini adalah tugas utama untuk proyek ini. Dimulainya dengan memanggil vexcodeInit() untuk menyiapkan lingkungan VEXcode dengan benar. Berikutnya, objek AI_RECORD lokal dideklarasikan untuk menyimpan data yang kami terima dari Jetson. Tugas terpisah juga disiapkan untuk menangani pembaruan layar dengan data terkini. Kode untuk tugas tersebut terdapat dalam berkas dashboard.cpp. Panggilan balik otonom juga didaftarkan untuk menangani kapan periode otonom dimulai.

    Perulangan while() utama dimulai dengan menyalin data terkini dari objek jetson_comms ke objek AI_RECORD lokal kita. Kemudian, ia meneruskan informasi lokasi robot ke objek tautan sehingga dapat dikirimkan ke robot mitra kami. Setelah selesai memproses data, ia meminta lebih banyak data dari Jetson dan tidur selama 66 milidetik. Laju polling untuk data ini adalah 15Hz. Tidak ada alasan untuk melakukan polling lebih cepat karena data sistem AI diperbarui pada sekitar 15Hz.

    Catatan: data peta Jetson hanya perlu diminta oleh satu tugas.

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

Last Updated: