
Membangun Robot Terkoneksi dengan NVIDIA Isaac dan ROS2
Seeed Studio AIoT Marketing and Partnership Diterjemahkan oleh : Digiware
9/10/20257 min baca
ROS adalah serangkaian pustaka perangkat lunak dan alat sumber terbuka yang membantu Anda membangun aplikasi robot. Di sini, para profesional dan penggemar dapat berkolaborasi dan berbagi kode untuk pengembangan perangkat lunak. Insinyur dapat menggunakan kembali blok kode dengan cepat dan mudah menemukan semua alat yang diperlukan untuk membangun perangkat robot yang berfungsi penuh. Anda mungkin menyadari bahwa ada ROS1 dan ROS2 di luar sana, dan cukup sulit untuk memutuskan mana yang harus dipilih di awal atau kapan harus beralih ke yang lain. Sekarang, mari kita bahas artikel ini untuk mencari tahu apa itu ROS2 dan mengapa kita harus antusias tentangnya dibandingkan dengan versi sebelumnya.


Apa Itu ROS2?
ROS2, yang dibangun dari nol agar siap untuk penggunaan komersial, dirombak dari kerangka sistem operasi robot yang ada dan dioptimalkan untuk penggunaan industri. ROS2 dikembangkan agar dapat diskalakan dalam aplikasi baru seperti robotika seluler, gerombolan drone, dan mobil swakemudi.


Pertama, kita perlu mempelajari beberapa fitur dasar dari ROS2:
DDS (Data Distribution Service): Sebuah saluran komunikasi yang dapat berinteraksi dengan semua kode.
Nodes: File kode yang dieksekusi yang memanfaatkan fungsionalitas ROS2. Saluran komunikasi individu antara nodes disebut Topic.
Nodes memiliki tiga cara utama untuk berkomunikasi satu sama lain:
Metode Publisher/Subscriber: Satu node menerbitkan informasi yang disebut massage (pesan). Arsitektur ini dapat diskalakan sehingga satu publisher dapat mengirim pesan ke banyak subscriber.
Metode Services: Sebuah node service client mengirim permintaan ke node lain yang bertanggung jawab untuk menyelesaikan permintaan tersebut, yang disebut service server. Setelah menyelesaikan permintaan, service server akan mengirimkan kembali respons.
Metode Actions: Satu node menetapkan tujuan untuk node lain sebagai action server, kemudian action server akan memproses tujuan tersebut dan mengirim pembaruan kemajuan ke client. Pembaruan kemajuan ini disebut Feedback. Action server akan terus mengirimkan umpan balik ke client sampai tujuannya tercapai. Akhirnya, action server akan mengirimkan Results (hasil) dari tindakan tersebut kembali untuk membuktikan bahwa tujuannya telah tercapai.
Node Parameter: Memungkinkan konfigurasi nilai variabel tertentu dalam node, daripada mengedit kode dan mengkompilasi ulang proyek berulang kali.


Mengapa Kedatangan ROS2 Penting?
ROS1 awalnya dibangun dan dirilis oleh Willow Garage pada tahun 2007 untuk mempercepat penelitian robotika. Namun, ROS1 tidak dibuat untuk penggunaan komersial, melainkan untuk menciptakan alat penelitian. Oleh karena itu, masalah seperti keamanan, topologi jaringan, dan waktu operasional sistem bukanlah prioritas. Seiring ROS kini diadopsi dalam dunia komersial, banyak kekurangan utamanya menjadi jelas. Oleh karena itu, semakin diperlukan untuk membangun kembali ROS dari awal untuk penggunaan komersial, yang kemudian menjadi ROS2. Sebagai respons terhadap persyaratan penggunaan komersial, ketentuan berikut telah ditambahkan:
Keamanan: Harus aman dengan enkripsi yang sesuai jika diperlukan.
Sistem Tertanam (Embedded Systems): ROS2 harus bisa berjalan pada sistem tertanam.
Jaringan Beragam (Diverse networks): ROS2 harus bisa berjalan dan berkomunikasi di berbagai jaringan, mulai dari LAN hingga multi-satelit, untuk mengakomodasi beragam lingkungan di mana robot dapat beroperasi dan perlu berkomunikasi.
Komputasi Waktu Nyata (Real-time computing): Perlu mampu melakukan komputasi secara andal dalam waktu nyata, karena efisiensi waktu operasional sangat penting dalam robotika.
Kesiapan Produk (Product Readiness): Perlu sesuai dengan standar keselamatan/industri yang relevan agar siap dipasarkan.
Perubahan Antara ROS1 dan ROS2
Menggunakan DDS sebagai protokol jaringan: Ini meningkatkan jaminan keamanan dan keandalan dibandingkan ROS1.
ROS2 menghilangkan satu titik kegagalan ROS1 (ROS master): Ini meningkatkan toleransi kesalahan pada sistem.
Di ROS1, ROS master bertindak sebagai perantara untuk mengidentifikasi dua node yang perlu dihubungkan, lalu membuat koneksi langsung untuk mereka. Namun, ketika ROS master gagal, kedua node ini hanya dapat terus berkomunikasi satu sama lain sebagai node yang terisolasi dan tidak dapat berkomunikasi dengan node baru.
ROS2 berkinerja lebih baik daripada ROS1 pada jaringan yang lemah atau rentan (lossy networks), seperti koneksi Wi-Fi atau satelit.
ROS1 berkinerja baik pada jaringan yang andal karena dibangun dengan protokol TCP yang memadai. Namun, TCP/IP gagal memberikan kinerja yang andal pada jaringan yang tidak andal karena transmisi ulang data. Sebaliknya, ROS2 menggunakan komunikasi DDS tanpa bergantung pada kondisi jaringan.
Pustaka klien ROS2 berbagi implementasi dasar yang sama, yaitu rcl.
Dibandingkan dengan ROS1 di mana setiap pustaka klien (seperti roscpp atau rospy) ditulis sepenuhnya dalam bahasanya sendiri, ROS2 membungkus implementasi rcl yang umum, yang umumnya memberikan kinerja yang lebih konsisten di berbagai bahasa. Ini juga menyederhanakan kemampuan pengembang untuk membuat pustaka klien baru untuk bahasa baru.
Alasan untuk Antusias tentang ROS2
API modern, dependensi minimal, dan portabilitas yang lebih baik.
Manfaat dari DDS RMW (ROS middleware):
Pengaturan QoS (Quality of Service) yang andal.
Multicast UDP, memori bersama, TLS melalui TCP/IP.
Mampu beroperasi secara waktu nyata.
Penemuan tanpa master (master-less discovery).
Lebih mudah bekerja dengan banyak node dalam satu proses.
Fitur runtime yang lebih dinamis seperti pemetaan ulang topik dan penamaan alias.
Parameter dinamis.
Eksekusi node yang sinkron dan terjadwal.
Manajemen sumber daya paket yang lebih efisien.
Cara Penerapan dan Mulai Menggunakan


NVIDIA Jetson mengintegrasikan DeepStream SDK dan ROS
NVIDIA menggunakan kerangka kerja yang ada untuk penerapan model deep learning, menggabungkan TensorRT untuk meningkatkan kinerja penalaran model, dan menerapkan berbagai model AI untuk klasifikasi dan deteksi objek, termasuk ResNet18, MobileNetV1 / V2, SSD, YOLO, FasterRCNN.
Untuk node encoder dan decoder ISAAC ROS, Anda dapat menggunakan model YOLOv5 seperti model_file_path atau engine_file_path untuk menerbitkan keluaran inferensi sebagai tensors dari tipe isaac_ros_tensor_list_interfaces/TensorList ke node decoder. Kemudian, kita berlangganan tensors dari node TensorRT/Triton, mengurai tensors ke dalam parameter spesifik, dan akhirnya menerbitkan hasilnya sebagai pesan Detection2DArray untuk setiap gambar.


Anda dapat mempelajari selengkapnya dari webinar NVIDIA tentang pipeline DNN Inference NVIDIA Isaac ROS dan cara menggunakan model Anda dengan contoh YOLOv5.
Untuk estimasi jarak ke hambatan, ada model hebat yang disebut Efficient Semi-Supervised (ESS), DNN visual depth estimation yang memperkirakan disparitas untuk pasangan gambar stereo dan mengembalikan peta disparitas berkelanjutan untuk gambar yang diberikan. Menggabungkan ini dengan ROS2, Anda dapat merujuk pada paket seperti isaac_ros_stereo_image_proc, isaac_ros_ess, dan isaac_ros_bi3d.


Untuk membangun solusi berbasis AI end-to-end menggunakan pemrosesan multi-sensor, pemahaman video, dan gambar, NVIDIA menyediakan node ros2_deepstream yang melakukan dua tugas inferensi sesuai dengan proyek DeepStream Python Apps: Deteksi Objek dan Klasifikasi Atribut. Setiap tugas inferensi juga menghasilkan jendela visual dengan bounding box dan label di sekitar objek yang terdeteksi.
Untuk estimasi postur manusia, model pra-pelatihan menginferensi 17 bagian tubuh berdasarkan kategori dalam dataset COCO. Anda dapat menggunakan paket ros2_trt_pose di sini untuk melabeli gambar Anda dan memvisualisasikannya. Kemudian Anda mendapatkan keluaran gambar waktu nyata dengan sambungan dan tulang tubuh
Untuk membangun solusi berbasis AI end-to-end menggunakan pemrosesan multi-sensor, pemahaman video, dan gambar, NVIDIA menyediakan node ros2_deepstream yang melakukan dua tugas inferensi sesuai dengan proyek DeepStream Python Apps: Deteksi Objek dan Klasifikasi Atribut. Setiap tugas inferensi juga menghasilkan jendela visual dengan bounding box dan label di sekitar objek yang terdeteksi.


Mulai Pengembangan ROS
Anda dapat memulai dari HUMBLE HAWKSBILL, panduan yang direkomendasikan yang menampilkan konsep, tutorial, langkah-langkah instalasi, dan banyak proyek menarik lainnya. Untuk ROS2, ia mendukung Gazebo Fortress, simulator robot berbasis ROS yang mencakup lebih dari selusin kamera segmentasi, sensor seperti GPS, antarmuka grafis tampilan 3D, dan banyak lagi.
Selain itu, Movelt HUMBLE menyuntikkan energi ke dalam pengembangan sistem manipulasi lengan robot, terutama untuk fungsi Hybrid programming: Penggunaan perencana gerakan global (lebih lambat) dan perencana gerakan lokal (lebih cepat) memungkinkan robot untuk menyelesaikan tugas yang berbeda di lingkungan online dan dinamis.
Mengelola Siklus Pengembangan ROS2 dengan Nimbus
Untuk mengelola siklus pengembangan ROS2 Anda dengan lebih baik dan mendapatkan langkah-langkah mudah dalam proses integrasi robot, Anda juga dapat menggunakan Cogniteam Nimbus untuk lebih fokus pada pengembangan perangkat lunak. Nimbus menggunakan aplikasi dalam wadah (containerized applications) sebagai komponen perangkat lunak, diatur, dihubungkan, dan dirakit ulang dari Web melalui kode, antarmuka konsol, atau menggunakan GUI sehingga siapa pun, bahkan tanpa pengetahuan khusus ROS, dapat memahami dan melihat berbagai blok bangunan eksekusi robot yang membentuk komponen-komponen ini. Ini juga memungkinkan penggunaan berbagai distribusi ROS (termasuk komponen ROS1 dan ROS2) pada robot yang sama untuk menyelesaikan masalah keterkaitan (coupling) yang bermasalah antara versi OS dan ROS.
Mulai Pengembangan ROS dengan Produk Seeed Jetson
reComputer J2021: AI Dunia Nyata di Tepi (the Edge)
Dibangun dengan Jetson Xavier NX 8GB.
J2021 adalah kotak AI tepi berukuran tangan yang dibangun dengan modul Jetson Xavier NX 8GB yang memberikan kinerja AI hingga 21 TOPs. Ia memiliki serangkaian I/O yang kaya termasuk port USB 3.1 (4x), M.2 key E untuk Wi-Fi, M.2 Key M untuk SSD, RTC, CAN, Raspberry Pi GPIO 40-pin, dan sebagainya. Dengan case aluminium, kipas pendingin, sistem JetPack yang sudah terpasang, sebagai alternatif untuk NVIDIA Jetson Xavier NX Dev Kit, ia siap untuk pengembangan dan penerapan aplikasi AI Anda berikutnya. Sangat ideal untuk membangun aplikasi otonom dan tugas AI yang kompleks seperti pengenalan gambar, deteksi objek, estimasi postur, segmentasi semantik, pemrosesan video, dan banyak lagi.


Papan Pembawa (Carrier Board) untuk Jetson Nano/Xavier NX/TX2 NX
Papan pembawa reComputer J202 memiliki desain dan fungsi yang hampir sama dengan papan pembawa NVIDIA® Jetson Xavier NX™. Ia bekerja sempurna dengan modul Jetson Nano/Xavier NX/TX2 NX, dan terdiri dari port USB 3.1 (4x), M.2 key E untuk Wi-Fi, M.2 Key M untuk SSD, RTC, CAN, Raspberry Pi GPIO 40-pin, dan sebagainya, mempercepat pengembangan dan penerapan aplikasi AI Anda berikutnya. Dengan beberapa konektor kamera, ia cocok untuk menjalankan banyak jaringan saraf secara paralel untuk aplikasi seperti klasifikasi gambar, deteksi objek, segmentasi, dan pemrosesan ucapan.


DigiWare
Robotic & Electronic Components Online Store in Indonesia
Komplek Ruko RMI Blok i No. 22
031-5039460
© 2024. All rights reserved.
customerservice@digiwarestore.com
Surabaya, Jawa Timur, 60284
Our Social Media
Marketplace
Tokopedia ( Surabaya )
Tokopedia ( Bekasi )

