Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Teknologi Internet of Things

Interoperabilitas ROS 2 dan DDS: Panduan Praktis untuk Integrasi Mulus

Interoperabilitas ROS 2 dan DDS: Panduan Praktis untuk Integrasi Mulus

ROS 2 bergantung pada DDS untuk lapisan komunikasi dasarnya, namun mencapai interoperabilitas yang sempurna antara penerapan DDS asli dan ROS 2 masih dapat menimbulkan tantangan yang halus. Panduan ini menguraikan langkah praktis dan penyesuaian konfigurasi yang telah terbukti efektif sejak rilis ROS 2 “Bouncy Bolson” (Juli 2018), membantu tim menghindari jebakan umum dan memanfaatkan kekuatan penuh Connext DDS dalam ROS 2.

Keadaan Saat Ini ROS 2

ROS 2 adalah framework yang berkembang pesat, dan rilis masa depan mungkin memperkenalkan nuansa interoperabilitas tambahan. Namun, saat Anda menjalankan ROS 2 dengan lapisan RMW rmw_connext_cpp, Anda masih menggunakan stack Connext DDS asli. Itu berarti Anda mempertahankan semua fitur canggih Connext—seperti kontrol QoS yang detail dan dukungan transport multi—sambil menikmati abstrak tingkat lebih tinggi ROS 2.

Pengaturan Interoperabilitas Kunci

Nama Topik & Partisi

ROS 2 mengenkode namespace topik dalam nama topik atau partisi DDS. Semua topik pengguna ROS 2 berada di namespace “rt” (ROS Topic). Dalam DDS ini direpresentasikan sebagai:

Interoperabilitas ROS 2 dan DDS: Panduan Praktis untuk Integrasi Mulus

Tipe Data Topik

Saat lapisan RMW Connext aktif, ROS 2 mengiklan setiap topik “rt/*” dengan tipe serialisasi generik. Akibatnya, aplikasi DDS murni yang mempublikasikan data asli yang strongly typed akan mengalami ketidakcocokan QoS dan tidak dapat terhubung.

Interoperabilitas ROS 2 dan DDS: Panduan Praktis untuk Integrasi Mulus

Cara termudah adalah menekan publikasi type-code otomatis dari peserta ROS 2. Tambahkan file USER_QOS_PROFILES.xml ke direktori yang meluncurkan node ROS 2 Anda. Konfigurasi minimal yang menyembunyikan type code dan menonaktifkan pembagian type object terlihat seperti ini:

Interoperabilitas ROS 2 dan DDS: Panduan Praktis untuk Integrasi Mulus

Silakan sesuaikan pengaturan keandalan sesuai kebutuhan aplikasi Anda; contoh di atas menggunakan “Best Effort” sebagai titik awal.

Ingat bahwa file QoS ini hanya berlaku untuk node ROS 2 yang dimulai dari direktori yang sama. Jika Anda membutuhkan konfigurasi terisolasi, letakkan file USER_QOS_PROFILES.xml terpisah di samping folder peluncuran setiap node.

Pemilihan Transport

Saat sistem DDS dan sistem ROS 2 berbagi jaringan yang sama, peringatan tentang transport yang hilang atau tidak didukung (misalnya, udpv6 tidak tersedia pada peserta yang hanya mendukung udpv4) dapat muncul. Untuk menghindari peringatan tersebut dan memastikan konektivitas yang andal, konfigurasikan preferensi transport secara eksplisit.

  1. Definisikan transport yang diizinkan dalam USER_QOS_PROFILES.xml dengan menambahkan mask <transport_builtin> di dalam <participant_qos>:
<participant_qos> <transport_builtin> <mask>UDPV4|SHMEM</mask> </transport_builtin> </participant_qos> 
  1. Buat file NDDS_DISCOVERY_PEERS di direktori peluncuran dan daftar alamat peer yang ingin Anda temukan. Contoh yang dipisahkan koma yang menonaktifkan penemuan multicast adalah:
localhost,192.168.1.12,shmem:// 

Memilih Lapisan RMW dalam ROS 2

Selalu atur variabel lingkungan RMW_IMPLEMENTATION ke rmw_connext_cpp sebelum memulai node ROS 2:

export RMW_IMPLEMENTATION=rmw_connext_cpp 

Atau teruskan secara inline saat meluncurkan node:

RMW_IMPLEMENTATION=rmw_connext_cpp ros2 run demo_nodes_cpp talker 

Sequences & Strings Tanpa Batas

Beberapa topik ROS 2 berisi sequences atau strings tanpa batas. Jika aplikasi DDS Anda perlu mengonsumsi atau mempublikasikan topik ini, aktifkan “Unbounded Support” di generator kode DDS. Lihat dokumentasi RTI untuk cara mengaktifkan opsi ini selama pembuatan kode.

Interoperabilitas ROS 2 dan DDS: Panduan Praktis untuk Integrasi Mulus

Langkah Selanjutnya dengan RTI

Kami akan membahas kesenjangan sementara dalam fitur ROS 2 saat ini—perekaman dan pemutaran ulang data topik—dalam bagian berikutnya dari seri ini. Sementara itu, jika Anda siap untuk menerapkan solusi ROS 2 yang andal dengan dukungan DDS, hubungi para ahli RTI kami. Kami akan membantu Anda menyempurnakan konfigurasi Anda dan mempercepat waktu ke pasar.


Teknologi Internet of Things

  1. Panduan Lengkap Tanda Laser: Jenis, Manfaat, dan Aplikasi
  2. OpenDDS vs. RTI Connext DDS: Memilih Solusi Data Distribution Service yang Tepat
  3. Memutar Ulang Data LiDAR ROS2 dengan RTI Recording Service dan DDS
  4. ROS2 Bouncy Bolson Menambahkan RTI Connext DDS Gratis: Meningkatkan Konektivitas & Diagnostik
  5. Robot ROS: Navigasi Dikontrol Terminal pada Raspberry Pi
  6. Manufaktur Cepat: Percepat Produksi untuk Bagian Kustom dan Volume Rendah
  7. IoT Merevolusi Layanan Lapangan: Pemeliharaan Prediktif dan ROI yang Tinggi
  8. Panduan Pembeli Platform IoT Industri: Tips Ahli dan Daftar Posisi Pengambilan Keputusan
  9. Menguasai Stiffener PCB: Panduan Lengkap untuk PCB Fleksibel
  10. Layanan Lapangan & Perbaikan On-Site Alat Berat Ahli – Kembali Kerja Lebih Cepat