[Documentation] [TitleIndex] [WordIndex

المتطلبات

في هذ الدرس سنتعامل مع حزم من (ros-tutorials)، لذا ثبت هذه الحزمة باستخدام التعليمة:

‎$ sudo apt-get install ros-<distro>-ros-tutorials

استبدل '<distro>' باسم نسخة ROS المطلوبة (noetic).

نظرة سريعة على مفاهيم نظام الملفات

أدوات نظام الملفات

ينتسر الرماز عبر عدة حزم ROS. قد تكون الملاحة باستخدام أدوات موجه الأوامر مثل ls و cd صعبة عند البحث في كل نظام التشغيل، لذلك قدم ROS تعليمات مخصصة للبحث في فضاءات عمل ROS.

اسخدام rospack

تسمح rospack بالحصول على معلومات عن الحزم. في هذا الدرس، سنركز على خيار البحث find والذي يرجع مسار الحزمة.

الاستخدام:

‎$ rospack find [package_name]

مثال:

‎$ rospack find roscpp

النتيجة:

إذا ثُبَِت ROS Noetic باستخدام apt على نظام Ubuntu Linux فيجب الحصول على:

استخدام roscd

تعتبر roscd جزءاً من مجموعة rosbash. تسمح بتغيير المجلد (cd) مباشرة نحو الحزمة.

الاستخدام:

‎$ roscd <package-or-stack>[/subdir]

للانتقال إلى مجلد حزمة roscpp نفذ:

‎$ roscd roscpp

للتحقق، نطبع مجلد العمل الحالي باستخدام تعليمة Unix pwd:

‎$ pwd

ويجب الحصول على:

حيث YOUR_INSTALL_PATH/share/roscpp هو مسار rospack find نفسه في التعليمة السابقة.

لاحظ أن roscd مثل كل أدوات ROS ستجد فقط الحزم الموجودة في المجلدات المكتوبة في متحول البيئة ROS_PACKAGE_PATH. لرؤية محتوى المتحول ROS_PACKAGE_PATH أكتب:

‎$ echo $ROS_PACKAGE_PATH

يجب أن يحتوي المتحول ROS_PACKAGE_PATH قائمة بأسماء مجلدات الحزم يفصل في ما بينها فاصلة منقوطة. بعد التثبيت يجب أن يكون ROS_PACKAGE_PATH بالشكل:

مثل كل متحولات البيئة يمكن إضافة مجلدات أخرى إليه بإذافة فاصلة منقوطة في نهايته ومسار المجلد.

المجلدات الفرعية

يمكن للتعليمة roscd أن تنقل مجلد العمل إلى مجلد فرعي داخل الحزمة.

جرب:

‎$ roscd roscpp/cmake

‎$ pwd

يجب أن تحصل على:

roscd log

تأخذك التعليمة roscd log إلى المجلد الذي يخزن فيه ROS ملفات التسجيل. ملاحظة: في حال لم تكن قد شغلت أي برنامج ROS حتى الآن فستحصل على خطأ، لأن هذا المجلد غير موجود بعد.

في حال كنت قد شغلت أحد برامج Ros من قبل جرب التعليمة:

‎$ roscd log

استخدام rosls

إن rosls جزء من مجموعة rosbash. تسمح ls بكتابة أسماء الملفات والمجلدات في الحزمة من دون الحاجة لكتابة المسار المطلق للحزمة. الاستخدام:

‎$ rosls <package-or-stack>[/subdir]

مثال:

‎$ rosls roscpp_tutorials

النتيجة:

التكميل التلقائي باستخدام زر Tab

في حال كانت كتابة اسم الحزمة بشكل كامل صعباً، فيمكن استخدام التكميل التلقائي باستخدام الزر TAB TAB completion، حيث نكتفي بكتابة الحروف الأولى ثم ضغط زر TAB، مثلاً في المثال السابق كانت roscpp_tutorials طويلة، لذا نكتب:

‎$ roscd roscpp_tut<<< now push the TAB key >>>‎

وبعد الضغط على زر TAB يتم التكميل بشكل تلقائي:

‎$ roscd roscpp_tutorials/‎

ينجح الإكمال عندما يكون هناك خيار واحد فقط للتكميل، أما عند وجود اكثر من خيار فلنجرب:

‎$ roscd tur<<< now push the TAB key >>>‎

نلاحظ بعد ضغط زر TAB أن التكميل التلقائي تم بحيث يكمل أكثر ما يمكن:

‎$ roscd turtle

أما الباقي، ففي هذه الحالة توجد عدة حزم تبدأ بالكلمة turtle لذلك نضغط الزر TAB مرة أخرى وهذا سيظهر كل الحزم التي تبدأ بالكلمة turtle:

على موجه الأوامر حالياً لا تزال التعليمة هي:

‎$ roscd turtle

وبمجرد كتابة حرف يميز الحزمة التي نريد مثل s، نضغط TAB:

‎$ roscd turtles<<< now push the TAB key >>>‎

ولأنه بقيت حزمة واحدة تبدأ بالكلمة الجديدة turtles فإنه يتم الإكمال بشكل تلقائي لكامل اسم الحزمة:

‎$ roscd turtlesim/‎

إن أردت الحصول على قائمة بأسماء الحزم المثبتة حالياً، يمكن كذلك استخدام الإكمال التلقائي:

‎$ rosls <<< now push the TAB key twice >>>‎

مراجعة

من السهل رؤية الشبه بين أدوات ROS وتعليمات Linux المقابلة:

يستخدم هذا الأسلوب في التشابه مع أدوات ROS الأخرى.


2022-08-13 12:28