#2

نگاهی به ROS Filesystem

آماده سازی

برای این آموزش از یک بسته استفاده خواهیم کرد ، لطفا ان را نصب کنید:

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

نکته: به جای <distro> نسخه توزیع مورد استفاده خودتان را قرار دهید ( indigo, kinetic, lunar)

مرور اجمالی مفاهیم Filesystem

بسته ها (Packages): بسته ها واحد های مدیرت شده نرم افزاری می باشند. هر بسته می تواند شامل کتابخانه ها،فایل های اجرایی،اسکریپت ها یا سایر … باشد.

مانیفست – Manifests یا package.xml : مانیفست شرح یک بسته است. این سرویس برای تعیین وابستگی بین بسته ها و گرفتن اطلاعات متا در مورد بسته مانند نسخه ، نگهدارنده ، مجوز ، و غیره …

ابزارهای Filesystem

کد های زیادی در بسته های مختلف قرار دارد، استفاده از ابزار های ترمنیالی مثل cd و ls می تواند بسیار خسته کننده باشد به همین دلیل ROS ابزار هایی برای راحتی فراهم کرده است.

 

استفاده از rospack

rospack به شما در به دست اوردن اطلاعاتی از بسته ها کمک خواهد کرد ، برای مثال در این آموزش ما مسیر یه بسته را پیدا خواهیم کرد.

طریقه استفاده:

rospack find [package_name]

مثال:

rospack find roscpp

نتیجه:

YOUR_INSTALL_PATH/share/roscpp

اگر ROS Kinetic را از روی Ubuntu Linux نصب کرده باشید ، دقیقاً مشاهده خواهید کرد:

/opt/ros/kinetic/share/roscpp

استفاده از roscd:

roscd بخشی از مجموعه rosbash است. این دستور به شما این امکان را می دهد که به صورت مستقیم بین بسته ها و … جا به جا شوید

طریقه استفاده:

roscd [locationname[/subdir]]

مثال:

roscd roscpp

برای مطمن شدن از این که شما جا به جا شدید دستور pwd را در ترمینال وارد می کنیم

pwd

نتیجه:

YOUR_INSTALL_PATH/share/roscpp

شما می توانید مشاهده کنید که مسیر YOUR_INSTALL_PATH/share/roscpp دقیقا همان مسیری است که rospack به شما برگردانده بود.

نکته: roscd مثل مابقی ابزار های ROS تنها می تواند بسته هایی که در ROS_PACKAGE_PATH لیست شده اند را پیدا کند ، برای دیدن لیست موجود در ROS_PACKAGE_PATH دستور زیر را وارد کنید

echo $ROS_PACKAGE_PATH

ROS_PACKAGE_PATH شما باید شامل یک لیست از پوشه هایی که شما در آن بسته دارید باشد، یک ROS_PACKAGE_PATH معمولی ممکن است شبیه به همچین چیزی باشد:

/opt/ros/kinetic/base/install/share

ماننده هر environment paths دیگر شما می توانید مسیر جدید اضافه کنید که هر کدام توسط colon (‘:’) جدا شده اند

زیرشاخه ها:

roscd همچنین می توان به پوشه های زیرین جابهجا شود.

مثال:

$ roscd roscpp/cmake 
$ pwd

نتیجه:

YOUR_INSTALL_PATH/share/roscpp/cmake

roscd log

roscd log شما را به جایی که لاگ فایل ها در ان قرار دارند خواهد برد. نکته اگر تا به حال هیچ برنامه ای را اجرا نکرده اید یه خطا با عنوان وجود ندارد مواجه خواهید شد. در صورتی که قبلا برنامه ای را اجرا کرده اید دستور زیر را وارد کنید:

roscd log

استفاده از rosls

rosls بخشی از مجموعه rosbash است. این دستور این امکان را به شما می دهد که لیست فایل ها و پوشه های موجود در مورد جستجو شده را نمایش دهد (چیزی شبیه ls)

نحوه استفاده:

rosls [locationname[/subdir]]

مثال:

rosls roscpp_tutorials

نتیجه:

cmake launch package.xml srv

تکمیل خودکار به کمک  Tab

تایپ کردن متن ها به صورت کامل می تواند خسته کننده باشد. در مثال قبلی roscpp_tutorials یه نام نسبتا طولانی بود ، خوشبختانه بعضی از ابزار های ROS قابلیت تکمیل خودکار را پشتیبانی می کند.

امتحان کنید:

roscd roscpp_tut<<< تا این جا تایپ کد و تب را فشار دهید >>>

بعد از زدن دکمه TAB دستور به صورت خودکار تکمیل خواهد شد

roscd turtle

هر چند ممکن است چند بسته وجود داشته باشد که با tur شروع می شوند ، دو بار دکمه Tab را فشار داهید تا لیتسی از پیشنهاد ها را مشاهده کنید

turtle_actionlib/ turtlesim/ turtle_tf/

در ترمینال شما باید همچنان این را داشته باشید

roscd turtle

یک s تایپ کرده و دوباره دکمه Tab را فشار دهید

از انجایی که تنها یک بسته وجود دارد که با نام turtles شروع می شود همچین چیزی خواهید دید

roscd turtlesim/

اگر می خواهید لیست تمام بسته های نصب شده را مشاهده کنید می توانید از دستور زیر استفاده کنید

rosls <<< دو بار دکمه تب را فشار دهید >>>

مرور

شاید تا کنون متوجه الگوی های ابزار های ROS شده باشید.

  • rospack = ros + pack(age)
  • roscd = ros + cd
  • rosls = ros + ls

این الگو برای برخی ابزار های دیگر هم صدق می کند.

حالا شما اماده اید تا برای خود یک بسته بسازید.

نظر خود را بگویید

آدرس ایمیل شما منتشر نخواهد شد. قسمت های مورد نیاز علامت گذاری شده است *