informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
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...
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).
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 .
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:
Untuk memudahkan instalasi pengguna, kita hanya memerlukan satu paket ini untuk mengatur dan menginstal paket perangkat lunak terkait lainnya secara bersamaan.
langkah1: Pertama: buat paket fungsi baru
langkah2: Kemudian: modifikasi package.xml, isinya sebagai berikut:
<exec_depend>Paket fitur terintegrasi</exec_depend>
…
<export>
<metapackage />
</export>
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
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.
File peluncuran adalah file format XML yang dapat memulai beberapa node lokal dan jarak jauh dan mengatur parameter di server parameter.。
Menyederhanakan konfigurasi dan pengaktifan node serta meningkatkan efisiensi pengaktifan program ROS.
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
https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=150&spm_id_from=pageDriver&vd_source=15dd2e64f0499027ca66125b65dd2de9