Berbagi teknologi

Pembelajaran dasar ROS-manajemen operasi ROS

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Manajemen operasi ROS

1. Penjelasan singkat tentang manajemen operasi ROS

ROS adalah kerangka kerja terdistribusi multi-proses (node), implementasi sistem ROS yang lengkap:

Mungkin mencakup banyak host;
Ada beberapa ruang kerja di setiap host;
Setiap ruang kerja berisi beberapa paket fungsi;
Setiap paket fungsi berisi beberapa node (Node), dan node yang berbeda memiliki nama node sendiri;
Setiap node juga dapat diatur dengan satu atau lebih topik...

Masukkan deskripsi gambar di sini
Dalam sistem ROS multi level, beberapa masalah mungkin timbul dalam implementasi dan pemeliharaannya, seperti,
1. Cara mengaitkan paket fungsi yang berbeda----(paket fungsi meta)
2. Bagaimana memulai berbagai node ROS----(meluncurkan file)
3. Bagaimana menangani duplikat nama paket fungsi, node, topik, dan parameter----(Memecahkan masalah nama duplikat)
4. Bagaimana node pada host yang berbeda berkomunikasi----(komunikasi terdistribusi)

Isi utama bab ini memperkenalkan solusi permasalahan ROS di atas (lihat daftar isi bab ini).

  • Kuasai sintaks untuk menggunakan paket meta-fungsi;
  • Kuasai sintaks penggunaan file peluncuran;
  • Memahami cakupan ruang kerja ROS dan risiko keamanan apa saja yang ada;
  • Memahami cara menangani duplikat nama node;
  • Memahami cara menangani topik dengan nama duplikat;
  • Memahami cara menangani nama parameter duplikat;
  • Mampu mencapai komunikasi terdistribusi ROS.

2. Paket meta-fungsi ROS

Skenario: Menyelesaikan fungsi sistematis di ROS mungkin melibatkan beberapa paket fungsional, seperti penerapan modul navigasi robot, yang memiliki paket fungsional sub-level berbeda seperti peta, penentuan posisi, perencanaan jalur, dll. Jadi ketika pemanggil menginstal modul, apakah ia perlu menginstal setiap paket fungsi satu per satu?

Jelas sekali, menginstal paket fungsi satu per satu tidak efisien. Di ROS, disediakan cara untuk mengemas paket fungsi yang berbeda ke dalam satu paket fungsi. Saat menginstal modul fungsi tertentu, panggil saja paket fungsi yang dipaketkan secara langsung .

2.1 Konsep

MetaPackage adalah konsep sistem manajemen file di Linux. Ini adalah paket virtual di ROS. Ia tidak memiliki konten substantif, tetapi bergantung pada paket perangkat lunak lain. Dengan cara ini, paket lain dapat digabungkan -paket ada dalam koleksi paket dan di mana mengunduhnya.

Misalnya:

  • Perintah sudo apt install ros-noetic-desktop-full menggunakan paket meta-fungsi saat menginstal ros. Paket meta-fungsi ini bergantung pada beberapa paket fungsi lain di ROS.
    Ada juga beberapa MetaPackages yang umum: navigasi moveit!

2.2 Fungsi

Untuk memudahkan instalasi pengguna, kita hanya memerlukan satu paket ini untuk mengatur dan menginstal paket perangkat lunak terkait lainnya secara bersamaan.

2.3 Implementasi

langkah1: Pertama: buat paket fungsi baru
langkah2: Kemudian: modifikasi package.xml, isinya sebagai berikut:

<exec_depend>Paket fitur terintegrasi</exec_depend>

<export>
<metapackage />
</export>
Masukkan deskripsi gambar di sini

langkah3: Terakhir: modifikasi CMakeLists.txt, isinya sebagai berikut:

cmake_minimum_diperlukan(VERSI 3.0.2)
proyek (demo)
temukan_paket(catkin DIPERLUKAN)
catkin_metapackage()

Simpan saja empat baris di atas dan hapus sisanya.

Lihat juga:
http://wiki.ros.org/catkin/package.xml#Metapackages

3. File peluncuran ROS

Kita sudah tidak asing lagi dengan penggunaan file peluncuran.

Sebuah program mungkin perlu memulai beberapa node, seperti kasus penyu kecil yang ada di ROS. Jika Anda ingin mengontrol pergerakan penyu, Anda perlu memulai beberapa jendela, memulai roscore, simpul antarmuka penyu, dan simpul kontrol keyboard. masing-masing. Jika rosrun dipanggil setiap kali memulai satu per satu, itu jelas tidak efisien.

Strategi optimasi yang diterapkan adalah dengan menggunakan perintah roslaunch untuk mengumpulkan file peluncuran untuk memulai node manajemen, dan dalam tutorial selanjutnya, file peluncuran juga digunakan berkali-kali.

3.1

3.1.1 Konsep

File peluncuran adalah file format XML yang dapat memulai beberapa node lokal dan jarak jauh dan mengatur parameter di server parameter.

3.1.2 Fungsi

Menyederhanakan konfigurasi dan pengaktifan node serta meningkatkan efisiensi pengaktifan program ROS.

3.1.3 Penggunaan

Ambil turtlesim sebagai contoh untuk didemonstrasikan

langkah1. Buat file peluncuran baru
Tambahkan direktori peluncuran di bawah paket fungsi, buat file xxxx.launch baru di direktori, dan edit file peluncuran

<launch>
<node pkg=“turtlesim” type=“turtlesim_node” name=“myTurtle” output=“screen” />
<node pkg=“turtlesim” type=“turtle_teleop_key” name=“myTurtleContro” output=“screen” />
</launch>

langkah2.Panggil file peluncuran

nama paket roslaunch xxx.launch

Catatan: Ketika perintah roslaunch mengeksekusi file peluncuran, pertama-tama ia akan menentukan apakah roscore dimulai, jika tidak, roscore akan dipanggil secara otomatis.

Dapat merujuk ke:
http://wiki.ros.org/roslaunch/XML

3.2 meluncurkan tag file

https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=150&spm_id_from=pageDriver&vd_source=15dd2e64f0499027ca66125b65dd2de9