Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah versi linux ros?

Apakah versi linux ros?

青灯夜游
青灯夜游asal
2023-04-12 16:13:061287semak imbas

ros ialah pengedaran linux. Nama penuh ROS ialah Sistem Operasi Robot, yang diterjemahkan sebagai sistem pengendalian robot ia berdasarkan kernel Linux dan hanya boleh dijalankan di bawah Linux. ROS menyediakan beberapa perkhidmatan sistem pengendalian standard, seperti abstraksi perkakasan, kawalan peranti asas, pelaksanaan fungsi biasa, pemesejan antara proses dan pengurusan paket. ROS boleh dibahagikan kepada dua lapisan Lapisan bawah ialah lapisan sistem pengendalian yang diterangkan di atas, dan lapisan yang lebih tinggi ialah pelbagai pakej perisian yang disumbangkan oleh pangkalan pengguna yang luas untuk melaksanakan fungsi yang berbeza, seperti pemetaan kedudukan, perancangan tindakan, persepsi, dll. .

Apakah versi linux ros?

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Pengenalan kepada definisi ROS

ROS adalah singkatan kepada Robot Operating System, yang diterjemahkan sebagai sistem pengendalian robot. Berdasarkan kernel Linux, pada masa ini ia hanya berjalan di bawah Linux.

Pereka ROS menggambarkan ROS sebagai "ROS = Paip + Alat + Keupayaan + Ekosistem", iaitu, ROS ialah koleksi mekanisme komunikasi, pakej perisian alat, kemahiran robot peringkat tinggi dan ekosistem robot.

Seperti namanya, ROS ialah sebuah sistem. Ia serupa dengan sistem pengendalian biasa yang kami gunakan ROS merangkum perkakasan robot asas Dalam erti kata lain, pelbagai parameter asas yang terkandung dalam robot yang berbeza adalah sama di mata mereka yang membangun menggunakan ROS. Ia juga harus dinyatakan di sini bahawa ROS pada masa ini tidak mempunyai antara muka visual. Windows dan Linux yang kami gunakan boleh terus melihat dan mengendalikan antara muka imej kerana mereka mempunyai antara muka visual, tetapi ROS tidak. Apa yang dipanggil sistem pengendalian kami tidak semestinya mempunyai antara muka visual Jika anda berminat, anda boleh melihat sistem pengendalian terawal, yang hanya mempunyai baris arahan dan tiada antara muka berwarna-warni.

ROS menyediakan beberapa perkhidmatan sistem pengendalian standard, seperti pengabstrakan perkakasan, kawalan peranti asas, pelaksanaan fungsi biasa, pemesejan antara proses dan pengurusan paket. ROS adalah berdasarkan seni bina graf, supaya proses pada nod berbeza boleh menerima, menerbitkan dan mengagregat pelbagai maklumat (seperti penderiaan, kawalan, status, perancangan, dll.).

ROS boleh dibahagikan kepada dua lapisan Lapisan bawah ialah lapisan sistem pengendalian yang diterangkan di atas, dan lapisan yang lebih tinggi ialah pelbagai pakej perisian yang disumbangkan oleh pangkalan pengguna yang luas untuk melaksanakan fungsi yang berbeza, seperti pemetaan kedudukan, perancangan tindakan, persepsi, simulasi, dll.

ROS ialah perkataan polisemi, dan ia juga boleh menjadi mekanisme komunikasi. Dalam pembangunan ROS, nod digunakan untuk mewakili aplikasi, dan nod ialah program boleh laku. Komunikasi antara nod adalah melalui ROS. ROS menguruskan setiap nod melalui pengurus nod (Master). Bagi pelaksanaan khusus prinsip itu, kita akan membincangkannya kemudian.

Selain itu, ROS juga mewakili satu siri kit alatan, algoritma, kemahiran, platform, ekologi, dll. untuk pembangunan robot.

Sejarah ROS. Secara terang-terangan, ROS ialah apa yang difikirkan oleh sekumpulan orang besar yang lebih baik apabila membangunkan robot (ia boleh menjadi beberapa perpustakaan dan perisian yang berguna, atau ia boleh menjadi beberapa idea, protokol dan piawaian). Dalam pembangunan robot, tidak ada standard bersatu untuk pelbagai robot Setiap kali anda membangunkan robot yang anda tidak pernah lihat sebelum ini, anda perlu belajar banyak perkara lagi, yang sangat menyusahkan sistem pengendalian untuk mencipta Saya fikir mengapa tidak kita juga boleh membina sistem untuk robot untuk merangkum lapisan bawah? Maka lahirlah ROS. Selepas bertahun-tahun menggilap, ROS telah menjadi semakin sempurna, dan semakin ramai yang menggunakannya.

Fungsi ROS

Jika anda ingin bertanya kepada saya apa yang ROS lakukan, maka anda hanya perlu tahu satu ayat sahaja. ROS digunakan untuk pembangunan lengan robot atau robot.

Dalam sejarah pembangunan robot, kerja standardisasi belum dilakukan. Robot yang berbeza menggunakan sistem, program, dsb. yang berbeza, yang menjadikannya sangat sukar untuk dibangunkan selagi ia merentas platform. Untuk menyelesaikan masalah sebegini, ROS dilahirkan. ROS boleh menjadikan perkakasan asas telus kepada pembangun melalui enkapsulasi, mengurangkan kesukaran pembangunan merentas platform.

Sebab kami memilih ROS adalah semua orang harus memahaminya seperti yang dinyatakan di atas tidak lebih dari itu ia digunakan oleh ramai orang dan mempunyai populariti yang meluas. ROS mengandungi banyak medan, data, fungsi, kandungan, pengetahuan, dll. Adakah anda ingin menyusun pangkalan data anda sendiri tanpa menggunakannya?

1. Ciri prestasi ROS

Sebelum mempelajari ROS secara formal, mari kita perkenalkan dahulu beberapa ciri ROS, iaitu sistem operasi meta, mekanisme komunikasi teragih, dan Perisian gandingan longgar rangka kerja, perpustakaan fungsi sumber terbuka yang kaya, dsb., untuk membantu semua orang membina pemahaman persepsi.

ROS ialah sistem operasi meta dalam bidang robotik. Dalam erti kata lain, ia bukan sistem pengendalian dalam erti kata sebenar Penjadualan tugas asasnya, penyusunan, pemacu peranti, dll. masih dilengkapkan oleh sistem pengendalian asalnya Ubuntu Linux.

ROS sebenarnya ialah sistem sub-operasi yang dijalankan pada Ubuntu Linux, atau rangka kerja perisian, tetapi ia menyediakan fungsi seperti sistem pengendalian seperti abstraksi perkakasan, panggilan fungsi dan pengurusan proses. Ia juga menyediakan Fungsi dan alatan untuk mengambil, menyusun dan merentas platform.

Idea teras ROS adalah untuk menjadikan fungsi perisian robot menjadi nod, dan nod berkomunikasi dengan menghantar mesej antara satu sama lain. Nod ini boleh digunakan pada hos yang sama, pada hos yang berbeza, atau bahkan di Internet. Nod induk (master) dalam mekanisme komunikasi rangkaian ROS bertanggungjawab untuk mengurus dan menjadualkan proses komunikasi antara pelbagai nod dalam rangkaian, dan pada masa yang sama menyediakan perkhidmatan untuk mengkonfigurasi parameter global dalam rangkaian.

ROS ialah rangka kerja perisian gandingan longgar yang menggunakan mekanisme komunikasi teragih untuk mencapai komunikasi proses antara nod. Kod perisian ROS disusun secara longgar, dengan proses pembangunan yang fleksibel dan pengurusan dan penyelenggaraan yang mudah.

ROS mempunyai perpustakaan fungsi sumber terbuka yang kaya. ROS ialah perisian sumber terbuka berdasarkan protokol BSD (Pengedaran Perisian Berkeley), yang membenarkan sesiapa sahaja mengubah suai, menggunakan semula, mengedar semula dan menggunakannya dalam produk komersial dan sumber tertutup Menggunakan ROS, anda boleh membina prototaip robot anda sendiri dengan cepat.

2. Versi pengedaran ROS

Serupa dengan versi pengedaran Linux, versi pengedaran ROS mempunyai satu siri pakej fungsi yang biasa digunakan terbina dalam, iaitu, Sistem ROS dibungkus dan dipasang ke dalam sistem asli. ROS pada asalnya dibangunkan berdasarkan sistem Ubuntu Nama versi keluaran ROS juga menggunakan peraturan yang sama seperti Ubuntu, iaitu nama versi terdiri daripada dua perkataan Inggeris dengan huruf pertama yang sama, dan huruf pertama versi dipilih. dalam tertib menaik abjad, Rajah 1- 1 menunjukkan beberapa keluaran utama ROS.

Apakah versi linux ros?
Rajah 1-1 Versi utama ROS

Seni bina sistem ROS

Selepas memasang ROS, ramai rakan harus bersemangat untuk mula menulis program dengan segera. Memandangkan seni bina ROS agak kompleks, untuk mudah memahami pelbagai konsep yang dihadapi nanti, mari kita bincangkan dahulu seni bina sistem ROS supaya semua orang dapat memahami secara menyeluruh tentang pelbagai konsep dalam ROS. Menurut kenyataan rasmi, seni bina ROS boleh difahami dari perspektif Graf pengiraan, Sistem fail dan Komuniti sumber terbuka masing-masing.

1 Fahami seni bina ROS dari perspektif graf pengiraan

Unit asas program boleh laku dalam ROS dipanggil nod (nod), antara nod Komunikasi dijalankan melalui mekanisme mesej, yang membentuk rajah rangkaian, juga dipanggil rajah pengiraan, seperti yang ditunjukkan dalam Rajah 1-3.

Apakah versi linux ros?
Rajah 1-3 Struktur graf pengiraan ROS

Nod ialah atur cara boleh laku, biasanya juga dipanggil proses. Setiap program boleh laku yang dicipta dalam pakej fungsi ROS menjadi nod ROS selepas dimulakan dan dimuatkan ke dalam proses sistem, seperti nod 1, nod 2, nod 3, dsb. dalam Rajah 1-3.

Nod berkomunikasi dengan menghantar dan menerima mesej Mekanisme penghantaran dan penerimaan mesej dibahagikan kepada topik(topik), perkhidmatan(perkhidmatan) dan tindakan<.>( tindakan). Dalam Rajah 1-3, nod 2 dan nod 3, nod 2 dan nod 5 menggunakan komunikasi topik, nod 2 dan nod 4 menggunakan komunikasi perkhidmatan, dan nod 1 dan nod 2 menggunakan komunikasi tindakan. Nod, topik, perkhidmatan dan tindakan dalam graf pengiraan mesti mempunyai nama unik sebagai pengecam.

ROS menggunakan nod untuk memisahkan kod dan fungsi, meningkatkan toleransi kesalahan dan kebolehselenggaraan sistem. Oleh itu, adalah lebih baik untuk setiap nod berfungsi dengan fungsi tunggal tertentu daripada mencipta satu nod yang besar dan merangkumi semua. Jika anda menggunakan C++ untuk menulis nod, anda perlu menggunakan perpustakaan roscpp yang disediakan oleh ROS jika anda menggunakan Python untuk menulis nod, anda perlu menggunakan perpustakaan rospy yang disediakan oleh ROS.

Mesej ialah kunci kepada graf pengiraan, termasuk mekanisme mesej dan jenis mesej. Terdapat tiga jenis mekanisme mesej: topik, perkhidmatan dan tindakan Data yang dipindahkan dalam setiap mekanisme mesej mempunyai jenis data tertentu (iaitu jenis mesej boleh dibahagikan kepada jenis mesej topik, jenis mesej perkhidmatan dan jenis mesej tindakan). Mekanisme mesej dan jenis mesej akan diterangkan dalam Bahagian 1.5.

Pakej data (rosbag) ialah fail dalam ROS yang digunakan khas untuk menyimpan dan memainkan semula data dalam topik Beberapa data sensor yang sukar dikumpul boleh direkodkan dalam pakej data dan kemudian dimainkan semula berulang kali.

Pelayan parameter boleh menyediakan parameter yang diubah suai dengan mudah untuk nod dalam keseluruhan rangkaian ROS. Parameter boleh dianggap sebagai pembolehubah global dalam nod yang boleh diubah suai secara luaran, termasuk parameter statik dan parameter dinamik. Parameter statik biasanya digunakan untuk menetapkan mod kerja nod apabila nod bermula, parameter dinamik boleh digunakan untuk mengkonfigurasi nod secara dinamik atau menukar status kerja nod apabila nod sedang berjalan, seperti parameter kawalan PID dalam nod kawalan motor.

Nod induk bertanggungjawab untuk penjadualan dan pengurusan proses komunikasi antara pelbagai nod. Oleh itu, nod induk mesti dimulakan terlebih dahulu dan boleh dimulakan melalui arahan roscore.

2 Fahami seni bina ROS dari perspektif sistem fail

Komponen program ROS yang berbeza harus diletakkan dalam folder yang berbeza, dan folder ini menyimpan fail mengikut berbeza. Atur, ini ialah struktur sistem fail ROS, seperti yang ditunjukkan dalam Rajah 1-4.

Apakah versi linux ros?
Rajah 1-4 Struktur sistem fail ROS

Ruang kerja ialah pakej yang mengandungi pakej fungsi, pakej kompilasi dan Dalam folder fail boleh laku yang disusun, pengguna boleh mencipta berbilang ruang kerja mengikut keperluan mereka sendiri dan membangunkan pakej berfungsi untuk tujuan berbeza dalam setiap ruang kerja. Dalam Rajah 1-4, kami mencipta ruang kerja bernama catkin_ws, yang mengandungi tiga folder: src, build dan devel.

  • folder src meletakkan setiap pakej fungsi dan fail konfigurasi CMake CMakeLists.txt yang mengkonfigurasi pakej fungsi. Untuk menerangkan di sini, memandangkan kod sumber dalam ROS disusun menggunakan alat catkin, dan alat catkin adalah berdasarkan teknologi CMake, kita akan melihat fail konfigurasi CMake CMakeLists.txt dalam ruang fail sumber src dan setiap pakej fungsi ini memainkan peranan Konfigurasikan peranan penyusunan.
  • bina folder meletakkan cache, konfigurasi, fail perantaraan, dsb. yang dijana semasa menyusun pakej fungsi CMake dan catkin.
  • folder devel mengandungi atur cara boleh laku yang disusun ini boleh dijalankan terus tanpa pemasangan. Setelah kod sumber pakej fungsi disusun dan diuji, fail boleh laku yang disusun ini boleh dieksport terus dan dikongsi dengan pembangun lain.

Pakej fungsi ialah bentuk asas organisasi perisian dalam ROS Ia mempunyai struktur minimum dan kandungan minimum untuk mencipta program ROS Ia mengandungi kod sumber nod ROS, skrip, fail konfigurasi, dll.

i. CMakeLists.txt ialah fail konfigurasi pakej fungsi, yang digunakan untuk menyusun konfigurasi kompilasi semasa menyusun pakej fungsi Cmake.

ii package.xml ialah fail manifes pakej fungsi. Ia menggunakan format teg XML untuk menandakan pelbagai maklumat berkaitan pakej fungsi, seperti nama pakej, maklumat pembangun, kebergantungan, dll., terutamanya untuk menjadikan fungsi pemasangan dan pengedaran pakej lebih mudah.

iii. sertakan/ ialah direktori fail pengepala pakej fungsi dan fail pengepala *.h yang disertakan dalam program pakej fungsi boleh diletakkan di sini. Sebab mengapa direktori sertakan juga menambah laluan peringkat pertama adalah untuk membezakan dengan lebih baik antara fail pengepala yang ditentukan sendiri dan fail pengepala standard sistem. Walau bagaimanapun, folder ini tidak diperlukan Contohnya, sesetengah program tidak mempunyai fail pengepala.

iv. Ketiga-tiga folder msg, srv dan action digunakan untuk menyimpan fail definisi bagi mesej topik bukan standard, mesej perkhidmatan dan mesej tindakan. ROS menyokong pengguna untuk menyesuaikan jenis mesej yang digunakan dalam proses komunikasi mesej. Mesej tersuai ini tidak perlu, kerana program ini hanya menggunakan jenis mesej standard.

v. direktori skrip menyimpan Bash, Python dan fail skrip lain, yang tidak diperlukan.

vi. Direktori pelancaran menyimpan fail permulaan nod. Fail *.launch digunakan untuk memulakan satu atau lebih nod. Ia sangat berguna dalam projek besar dengan berbilang nod.

vii. Direktori src menyimpan kod sumber yang sepadan dengan nod pakej fungsi Terdapat berbilang program nod dalam pakej fungsi untuk melengkapkan fungsi yang berbeza, dan setiap program nod boleh dijalankan secara berasingan. Direktori src di sini menyimpan kod sumber program nod ini Anda boleh membuat folder dan fail seperti yang diperlukan untuk mengatur kod sumber Kod sumber boleh ditulis dalam C++, Python, dll.

3. Memahami seni bina ROS dari perspektif komuniti sumber terbuka

ROS ialah perisian sumber terbuka berkongsi dan menyumbang perisian dan tutorial, membentuk a Komuniti sumber terbuka ROS yang berkuasa, seperti yang ditunjukkan dalam Rajah 1-5.

Apakah versi linux ros?
Rajah 1-5 Struktur komuniti sumber terbuka ROS

Pembangunan ROS bergantung pada sumber terbuka dan perisian kongsi, dan ini kod disediakan dengan Perkongsian dan penerbitan oleh organisasi yang berbeza, seperti perkongsian kod sumber GitHub, keluaran gudang perisian Ubuntu, perpustakaan pihak ketiga, dsb. Wiki rasmi ROS ialah komuniti perbincangan dokumen yang penting, di mana anda boleh menerbitkan dan mengubah suai halaman dokumen yang sepadan dengan mudah. Laman utama jawapan ROS mengandungi sejumlah besar soalan dan jawapan daripada pembangun ROS, dan perbincangan mengenai pelbagai isu yang dihadapi dalam pembangunan ROS sangat aktif.

Cadangan berkaitan: "Tutorial Video Linux"

Atas ialah kandungan terperinci Apakah versi linux ros?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah fail imej dalam linuxArtikel seterusnya:Apakah fail imej dalam linux