प्रौद्योगिकी साझेदारी

ROS बुनियादी शिक्षण-ROS संचालन प्रबन्धन

2024-07-12

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

ROS संचालन प्रबन्धन

1. ROS संचालनप्रबन्धनस्य संक्षिप्तं वर्णनम्

ROS बहु-प्रक्रिया (नोड्) वितरितरूपरेखा अस्ति, सम्पूर्णं ROS प्रणाली कार्यान्वयनम् अस्ति:

अनेकाः मेजबानाः समाविष्टाः भवितुम् अर्हन्ति;
प्रत्येकस्मिन् होस्ट् मध्ये बहुविधाः कार्यक्षेत्राणि सन्ति;
प्रत्येकं कार्यक्षेत्रे बहुविधाः कार्यसङ्कुलाः सन्ति;
प्रत्येकं फंक्शन्-सङ्कुलं बहुविध-नोड् (Node) भवति, भिन्न-भिन्न-नोड्-मध्ये च स्वकीयाः नोड्-नामानि सन्ति;
प्रत्येकं नोड् एकेन वा अधिकेन विषयैः सह सेट् अपि भवितुं शक्नोति...

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु
बहुस्तरीय ROS प्रणाल्यां तस्य कार्यान्वयनस्य परिपालनस्य च काश्चन समस्याः उत्पद्यन्ते, यथा,
1. भिन्न-भिन्न-फंक्शन-सङ्कुलं कथं संयोजयितुं शक्यते----(meta-function package)
2. विभिन्नानि ROS नोड्स कथं आरभ्यन्ते----(launch file)
3. फंक्शन् संकुलस्य, नोड्, विषयस्य, पैरामीटर् च डुप्लिकेटनामभिः सह कथं निबद्धव्यम्----(डुप्लिकेट् नामस्य समस्यायाः समाधानम्)
4. भिन्न-भिन्न-होस्ट्-मध्ये नोड्स् कथं संवादं कुर्वन्ति----(वितरितसञ्चारः)

अस्य अध्यायस्य मुख्यसामग्री ROS इत्यस्मिन् उपर्युक्तसमस्यानां समाधानस्य परिचयं करोति (अस्य अध्यायस्य विषयवस्तुसारणीं पश्यन्तु अपेक्षिताः शिक्षणलक्ष्याः अपि उपर्युक्तसमस्यानां अनुरूपाः सन्ति)

  • मेटा-फंक्शन्-सङ्कुलानाम् उपयोगाय वाक्यविन्यासस्य निपुणता;
  • प्रक्षेपणसञ्चिकानां उपयोगस्य वाक्यविन्यासे निपुणतां प्राप्नुवन्तु;
  • ROS कार्यक्षेत्रकवरेजं किम् अस्ति तथा च सुरक्षाजोखिमाः के सन्ति इति अवगच्छन्तु;
  • डुप्लिकेट् नोड् नामभिः सह कथं व्यवहारः कर्तव्यः इति अवगच्छन्तु;
  • द्वितीयकनामयुक्तानि विषयाणि कथं नियन्त्रितव्यानि इति अवगच्छन्तु;
  • द्वितीयकनामभिः सह पैरामीटर्-नामानि कथं नियन्त्रयितुं शक्यन्ते इति अवगच्छन्तु;
  • ROS वितरितं संचारं प्राप्तुं समर्थः।

2. ROS मेटा-फंक्शन् संकुलम्

परिदृश्यम् : ROS मध्ये व्यवस्थितं कार्यं पूर्णं कर्तुं बहुविधकार्यात्मकसंकुलं सम्मिलितं भवितुम् अर्हति, यथा रोबोट् नेविगेशनमॉड्यूलस्य कार्यान्वयनम् अस्य मॉड्यूलस्य अन्तर्गतं भिन्नाः उपस्तरीयाः कार्यात्मकाः संकुलाः सन्ति यथा नक्शा, स्थितिनिर्धारणम्, मार्गनियोजनम् इत्यादयः अतः यदा आह्वानकर्त्ता मॉड्यूल् संस्थापयति तदा प्रत्येकं फंक्शन् संकुलं एकैकं संस्थापयितुं आवश्यकं वा?

स्पष्टतया, एकैकं फंक्शन् संकुलं संस्थापनं अकुशलं भवति, भिन्न-भिन्न-फंक्शन-सङ्कुलानाम् एकस्मिन् फंक्शन्-संकुल-स्थापनं कुर्वन् केवलं संकुल-कृतं फंक्शन्-सङ्कुलं प्रत्यक्षतया आह्वयन्तु .

२.१ अवधारणा

MetaPackage इति Linux इत्यस्मिन् सञ्चिकाप्रबन्धनप्रणालीसंकल्पना अस्ति । इदं ROS मध्ये एकं वर्चुअल् संकुलं नास्ति, परन्तु इदं अन्येषु सॉफ्टवेयर संकुलेषु अवलम्बते एवं वयं तत् पुस्तकस्य निर्देशिका अनुक्रमणिकारूपेण चिन्तयितुं शक्नुमः -पैकेज्स् संकुलसङ्ग्रहे सन्ति, कुत्र डाउनलोड् कर्तव्यम् इति च ।

उदाहरणतया:

  • sudo apt install ros-noetic-desktop-full आदेशः ros संस्थापनसमये meta-function संकुलस्य उपयोगं करोति ।
    तत्र केचन सामान्याः MetaPackages अपि सन्ति: navigation moveit!

२.२ कार्यम्

उपयोक्तृस्थापनस्य सुविधायै अस्माकं केवलं एतत् एकं संकुलं आवश्यकं यत् अन्येषां सम्बद्धानां सॉफ्टवेयर-सङ्कुलानाम् एकत्र व्यवस्थितीकरणाय, संस्थापनाय च ।

२.३ कार्यान्वयनम्

step1: प्रथमं: नूतनं फंक्शन् संकुलं रचयन्तु
step2: ततः: package.xml परिवर्तनं कुर्वन्तु, सामग्री निम्नलिखितरूपेण भवति:

<exec_depend>एकीकृतविशेषतासङ्कुलम्</exec_depend>

<export>
<metapackage />
</export>
अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

step3: अन्ते: CMakeLists.txt परिवर्तयन्तु, सामग्री निम्नलिखितरूपेण अस्ति:

cmake_minimum_required(संस्करणम् ३.०.२) २.
परियोजना(डेमो) २.
find_package (catkin आवश्यक)
catkin_metapackage () २.

केवलं उपरिष्टाद् चत्वारि पङ्क्तयः स्थापयित्वा शेषं विलोपयन्तु ।

इदमपि पश्यन्तु : १.
http://wiki.ros.org/catkin/package.xml # मेटापैकेज

3. ROS-प्रक्षेपणसञ्चिका

वयं प्रक्षेपणसञ्चिकानां उपयोगेन अपरिचिताः न स्मः प्रथमे अध्याये वयं परिचयं दत्तवन्तः ।

एकस्य कार्यक्रमस्य बहुविधं नोड् आरभ्यत इति आवश्यकं भवेत्, यथा ROS इत्यस्य अन्तःनिर्मितं लघुकच्छपप्रकरणं यदि भवान् कच्छपस्य गतिं नियन्त्रयितुम् इच्छति तर्हि भवान् बहुविधविण्डो, आरम्भिकरोस्कोर, कच्छपान्तरफलकनोड्, कीबोर्डनियन्त्रणनोड् च आरभ्यत क्रमशः । यदि एकैकं आरभ्य rosrun इति प्रतिवारं आह्वयते तर्हि स्पष्टतया अकुशलं भवति ।

स्वीकृता अनुकूलनरणनीतिः अस्ति यत् प्रबन्धननोड् आरभ्य प्रक्षेपणसञ्चिकां संग्रहयितुं roslaunch आदेशस्य उपयोगः भवति, तदनन्तरं पाठ्यक्रमेषु प्रक्षेपणसञ्चिकायाः ​​अपि बहुवारं उपयोगः भवति

3.1.ROS नोड् प्रबन्धन प्रक्षेपणसञ्चिका

३.१.१ अवधारणा

प्रक्षेपणसञ्चिका XML प्रारूपसञ्चिका अस्ति या बहुविधस्थानीयदूरस्थनोड्स् आरभ्य पैरामीटर् सर्वरे पैरामीटर्स् सेट् कर्तुं शक्नोति ।

३.१.२ कार्यम्

नोड्स-विन्यासं स्टार्टअपं च सरलीकरोतु तथा च ROS प्रोग्राम्-स्टार्टअप-दक्षतां सुदृढं कुर्वन्तु ।

३.१.३ प्रयोगः

प्रदर्शनार्थं कच्छपं उदाहरणरूपेण गृह्यताम्

step1. नूतनं प्रक्षेपणसञ्चिकां रचयन्तु
फंक्शन् संकुलस्य अधः launch निर्देशिकां योजयित्वा, निर्देशिकायां नूतनं xxxx.launch सञ्चिकां रचयन्तु, प्रक्षेपणसञ्चिकां सम्पादयन्तु च

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

step2. आह्वानं प्रक्षेपणसञ्चिकां कुर्वन्तु

roslaunch संकुलनाम xxx.launch

नोट्: यदा roslaunch आदेशः प्रक्षेपणसञ्चिकां निष्पादयति तदा प्रथमं roscore आरब्धम् अस्ति वा इति निर्धारयिष्यति अन्यथा roscore स्वयमेव आह्वयति ।

सन्दर्भयितुं शक्नोति : १.
http://wiki.ros.org/roslaunch/XML इति ग्रन्थः

३.२ सञ्चिकाटैग् प्रारम्भं कुर्वन्तु

https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=150&spm_id_from=पृष्ठचालक&vd_स्रोत=15dd2e64f0499027ca66125b65dd2de9