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

ROS2 + DDS:Panduan Lapangan untuk Interoperabilitas

Meskipun ROS 2 dirancang untuk menggunakan DDS sebagai kerangka konektivitasnya (lihat posting blog saya sebelumnya - ROS 2 + DDS:Ketika Ekosistem Menggabungkan untuk informasi lebih lanjut), proses integrasi memiliki beberapa kebiasaan yang harus diakomodasi agar sistem DDS murni untuk beroperasi secara mulus dengan sistem ROS 2. Blog ini berfungsi sebagai panduan lapangan praktis untuk interoperabilitas dan mencakup beberapa masalah yang diketahui pada rilis "Bouncy Bolson" (Juli 2018) dari ROS 2 dan cara menguranginya.

Pembaruan dengan ROS 2

ROS 2 adalah proyek yang terus berkembang. Mungkin ada perubahan dalam rilis ROS 2 di masa mendatang yang selanjutnya memengaruhi interoperabilitas. Karena itu, selalu ingat bahwa saat menggunakan rmw_connext_cpp lapisan di bawah ROS 2 – masih Connext DDS. Kekuatan dan fleksibilitas yang melekat pada perpustakaan Connext masih tersedia, menggunakan metode yang sama seperti implementasi non-ROS. Anda memiliki kendali atas sistem Anda.

Berikut ini ikhtisar pengaturan yang dapat memengaruhi interoperabilitas antara sistem DDS murni dan ROS 2 (ROS 2 “Bouncy Bolson” kecuali ditentukan lain):

Nama Topik dan Partisi

ROS 2 mengidentifikasi namespace dari data topik dengan mengkodekannya dalam nama atau partisi DDS dari topik. Topik data pengguna akan berada di ruang nama “rt” (Topik ROS), dikodekan dalam DDS sebagai:

Jenis Data Topik

Saat menggunakan lapisan RMW Connext di bawah ROS2, Anda mungkin telah memperhatikan bahwa semua topik “rt/*” ROS2 dilaporkan selama penemuan memiliki tipe data yang sama:

Jenis definisi ini disisipkan oleh lapisan ROS2 rmw_connext_cpp untuk mewakili serialisasi data topik, meskipun data topik tidak berubah. Ketika koneksi dicoba dengan topik DDS menggunakan tipe data asli -- ketidakcocokan QoS akan terjadi, mencegah koneksi.

Solusi termudah adalah dengan menekan pengumuman kode jenis ini dari peserta ROS2. Ini dapat dilakukan dengan menambahkan file USER_QOS_PROFILES.xml ke direktori yang digunakan untuk meluncurkan peserta ROS2. File ini berisi pengaturan QoS untuk menekan kode jenis dan berbagi jenis objek, seperti:

Perhatikan bahwa file ini juga menetapkan keandalan ke "Usaha Terbaik" – ini hanya titik awal contoh.

Perhatikan juga bahwa file QoS ini hanya memengaruhi peserta ROS2 yang diluncurkan untuk direktori yang sama dengan file QoS. Jika diperlukan, setiap peserta ROS2 dapat memiliki file QoS kustomnya sendiri di direktori terpisah.

Pilihan Transportasi

Menghubungkan sistem DDS ke sistem ROS2 dapat mengakibatkan peringatan tentang non-addressable locators/transports yang tidak terpasang. Hal ini dikarenakan peserta memiliki daftar angkutan yang tersedia berbeda, seperti peserta A(udpv4) menemukan peserta B(udpv4, udpv6); Peringatan akan diberikan bahwa peserta A tidak akan dapat terhubung menggunakan udpv6.

Pemilihan transport dengan Connext RMW di bawah ROS2 menggunakan metode yang sama seperti pada sistem khusus Connext:

  1. Setel transport yang diizinkan dalam file USER_QOS_PROFILES.xml dengan menambahkan ke bagian , seperti pada:

    UDPV4|SHMEM

  2. Setel rekan awal (dan aktifkan / nonaktifkan multicast) dengan menambahkan file “NDDS_DISCOVERY_PEERS” ke direktori yang digunakan untuk meluncurkan aplikasi. File teks biasa harus berisi daftar yang dipisahkan koma dari rekan-rekan yang diinginkan untuk ditemukan, seperti: localhost,192.168.1.12,shmem:// (contoh ini menonaktifkan penemuan multicast)

Pilihan RMW di ROS2

Pastikan untuk mengatur variabel lingkungan untuk memilih Connext sebagai lapisan RMW di bawah ROS2:

RMW_IMPLEMENTATION=rmw_connext_cpp

Ini juga dapat diteruskan pada baris perintah saat meluncurkan aplikasi ROS2, seperti di:

RMW_IMPLEMENTATION=rmw_connext_cpp ros2 jalankan demo_nodes_cpp pembicara

Dukungan Tanpa Batas

Beberapa topik ROS2 menggunakan urutan dan string yang tidak terbatas. Aplikasi DDS yang berusaha untuk saling beroperasi menggunakan topik ini harus mengaktifkan 'Dukungan Tanpa Batas' di pembuat kode DDS.

Melihat ke Depan dengan RTI

Nantikan artikel berikutnya dalam seri ini, yang membahas kesenjangan penting (walaupun sementara) dalam jajaran ROS2:rekam dan putar ulang data topik.

Jika Anda siap untuk memulai dengan tim di RTI dan meningkatkan sistem komunikasi Anda, hubungi kami hari ini. Pakar kami siap membantu Anda.


Teknologi Internet of Things

  1. Panduan untuk Penandaan Laser
  2. Buka Perangkat Lunak DDS vs. RTI DDS
  3. ROS2 + DDS:Mainkan Lagi
  4. Integrasi ROS2 + DDS:Ketika Ekosistem Menggabungkan | RTI
  5. Robot ROS
  6. Panduan Manufaktur Cepat
  7. Di jalan dengan IoT
  8. Panduan Pembeli Platform IoT Industri
  9. Panduan untuk Pengaku PCB
  10. Panduan Anda untuk Servis dan Perbaikan Lapangan Alat Berat