مدیریت وابستگیهای سیستم
- در این آموزش با نحوه استفاده از rosdep برای نصب وابستگیهای سیستم آشنا خواهید شد.
در بعضی از مواقع بستههای ROS به کتابخانههای خارجی و ابزارهایی نیاز دارند که باید توسط سیستم عامل ارائه شوند. این کتابخانه ها و ابزارهای مورد نیاز معمولاً به عنوان وابستگیهای سیستم شناخته می شوند ( از جمله متداولترین این وابستگیها میتوان به roscpp و std_msgs اشاره کرد). در برخی موارد این وابستگیها به طور پیش فرض نصب نشده است، لذا ROS یک ابزار ساده، تحت عنوان rosdep را فراهم کرده است، که برای دانلود و نصب وابستگی های سیستم استفاده می شود.
یک پکیج (یا همان بسته) باید در جایی اعلام کند که به چه وابستگیهایی نیاز دارد، این کار در مانیفیست آن پکیج انجام میشود. برای مثال بیایید تا به مانیفیست پکیج turtlesim نگاهی بیاندازیم:
برای این منظور ابتدا به مسیر بسته مورد نظر رفته
[sourcecode language=”plain”]
roscd turtlesim
[/sourcecode]
سپس دستور زیر را اجرا کنید.
[sourcecode language=”plain”]
cat package.xml
[/sourcecode]
با اجرای این دستور محتویات مانیفیست بسته را مشاهده خواهید کرد، که بخش مربوط به وابستگیهای آن به صورت زیر است.
<package>
...
...
<build_depend>message_generation</build_depend>
<build_depend>libqt4-dev</build_depend>
<build_depend>qt4-qmake</build_depend>
<build_depend>rosconsole</build_depend>
<build_depend>roscpp</build_depend>
<build_depend>roscpp_serialization</build_depend>
<build_depend>roslib</build_depend>
<build_depend>rostime</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>std_srvs</build_depend>
</package>
همانطور که میبینید بسته turtlesim به این کتابخانهها و بستهها نیاز دارد.
دستور rosdep
rosdep ابزاری است که می توانید از آن برای نصب وابستگی های مورد نیاز بستههای ROS استفاده کنید.
فرمت کلی آن به صورت زیر است:
[sourcecode language=”plain”]
rosdep install [package]
[/sourcecode]
به عنوان مثال برای نصب وابستگیهای بسته turtlesim از دستور زیر استفاده کنید.
[sourcecode language=”plain”]
rosdep install turtlesim
[/sourcecode]
در صورتی که تا اینجای کار آموزشهای سایت ایران رآس را دنبال کرده باشید، احتمالاً این اولین باری است که از این دستور استفاده میکنید و هنگام اجرای دستور با پیغام خطایی به صورت زیر مواجه خواهید شد.
ERROR: your rosdep installation has not been initialized yet. Please run:
sudo rosdep init
rosdep update
این پیغام به شما میگوید که مقدار دهی اولیه برای rosdep انجام نشده است و در ادامه از شما میخواهد که دو دستور sudo rosdep init و rosdep update را اجرا کنید.
اگر پس از اجرای این دستورات، مجدداً دستور نصب وابستگیهای بسته turtlesim را وارد کنید در خروجی پیغامی به این صورت مشاهده خواهید کرد.
[sourcecode language=”plain”]
All required rosdeps installed successfully
[/sourcecode]