در شروع یادگیری ROS شاید شما فکر کنید که باید همه ی ساختار ها و قواعد را یکجا باد بگیرید، با این طرز فکر، ذهن خود را درگیر یادگیری بخش هایی می کنید که شاید هیچ وقت به کار شما نیایند، شما فراموش کرده اید که اینترنت و اسناد آنلاین همیشه در دسترس شما هستند. حتی کاربران حرفه ای جزئیات زیادی را از اسناد آنلاین در بین انجام کارهای تحقیقاتی، مطالعه می کنند و تکرار نکته ی کلیدی به یاد سپردن ساختار ها و قواعد است.
این آموزش راهنمای است برای مفهوم سیستم فایل ROS و همچنین دستورات roscd, rosls, rospack را نیز پوشش می دهد.
نصب ros_tutorials
نصب ros_tutorials با دستور زیر انجام می شود:
$ sudo apt-get install ros-xxx-ros-tutorials
به جای xxx در دستور بالا، با توجه به توزیع ROS نصب شده روی سیستم، یکی از موارد fuerte,groovy،hydro،indigo،kinetic انتخاب گردد.
مروری بر مفهوم سیستم فایل
Packages
واحدی برای سازماندهی کدهای ROS هستند. هر بسته می تواند شامل کتابخانه ها ،فایل های اجرایی ،اسکریپت ها و موارد دیگر باشد. به بیان ساده تر Packageها پروژه ای هستند که با تفکیک فایل ها برای هدف خاصی تعریف شده است.
Manifest
اظهارنامه توضیحاتی از یک بسته است، فایل XMLی بنام package.xml که بایستی در شاخه ی اصلی بسته های سازگار با catkin گنجانده شده باشد. این فایل مشخصاتی در مورد بسته از جمله نام بسته، شماره ی نسخه، سازنده، نگهدارنده و همچنین وابستگی به بسته های دیگر را تعریف می کند
ابزار های سیستم فایل
rospack
rospack ما را قادر می سازد اطلاعاتی در مورد بسته ها را به دست بیاوریم. این دستور را به سادگی با اجرا در ترمینال می توانید آزمایش کنید.
$ rospack help USAGE: rospack[options] [package] Allowed commands: help cflags-only-I [--deps-only] [package] cflags-only-other [--deps-only] [package] depends [package] (alias: deps) depends-indent [package] (alias: deps-indent) depends-manifests [package] (alias: deps-manifests) depends-msgsrv [package] (alias: deps-msgsrv) depends-on [package] depends-on1 [package] depends-why --target= [package] (alias: deps-why) depends1 [package] (alias: deps1) export [--deps-only] --lang= --attrib= [package] find [package] langs libs-only-L [--deps-only] [package] libs-only-l [--deps-only] [package] libs-only-other [--deps-only] [package] list list-duplicates list-names plugins --attrib= [--top= ] [package] profile [--length= ] [--zombie-only] rosdep [package] (alias: rosdeps) rosdep0 [package] (alias: rosdeps0) vcs [package] vcs0 [package] Extra options: -q Quiets error reports. If [package] is omitted, the current working directory is used (if it contains a package.xml or manifest.xml).
به عنوان مثال انتخاب find آدرس به بسته را بر میگرداند.
YOUR_INSTALL_PATH/share/roscpp
اگر ROS را از طریق مخزن نصب کرده باشیم خواهیم داشت:
/opt/ros/kinetic/share/roscpp
roscd
roscd بخشی از مجموعه rosbash است، اجازه می دهد تا دایرکتوری مستقیما به دایرکتوری یک بسته یا یک پشته تغییر دهید.
$ roscd --help usage: roscd package Jump to target package.
به عنوان نمونه:
$ roscd /opt/ros/kinetic$ $ roscd roscpp /opt/ros/kinetic/share/roscpp$
به یاد داشته باشید که بسته ی roscpp برای برنامه نویسی cpp و معادل آن rospy برای python می باشد.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.