راس چیست؟

ROS یا سیستم عامل ربات،‌ چارچوب نرم افزاری برای توسعه ی نرم افزار ربات است. ROS کتابخانه و ابزارهایی برای توسعه دهندگان نرم افزار،‌ جهت ساخت کاربرد های نرم افزاری رباتیک فراهم می کند. این سیستم لایه انتزاعی سخت‌افزاری، راه انداز های دستگاه ها، کتابخانه ها،‌ ابزار های بصری، ارسال-پیام ها، مدیریت بسته ها و… را در اختیار کاربران قرار می دهد. ROS تحت مجوز منبع باز و BSD می باشد.

لوگوی سیستم عامل ربات (رآس)

توسعه ی ROS فعال بوده و نسخه ی پایدار آن هم اکنون ROS Melodic Morenia به اصطلاح Melodic می باشد و نسخه ای که توسط سایت توسعه دهنده برای کاربران توصیه شده ROS Kinetic Kame می باشد.

در تصویر زیر توزیع های مختلف نمایش داده شده است:

توزیع های رآس (ROS)، نسخه های Kinetic, Lunar, Indigo, Melodic

یک توزیع ROS، نسخه ای نهایی از بسته های ROS است که بر روی نسخه ی پایدار از لینوکس هدف گذاری شده است (به عنوان نمونه ابوتو). هدف از ارائه توزیع های ROS، امکان کار توسعه دهندگان بر روی کد نسبتاً پایداری است تا زمانی که توزیع بعدی ROS در آینده منتشر شود.

کدام توزیع را انتخاب کنیم؟

اگر می خواهید OpenCV3 را استفاده کنید، نسخه ی Indigo و بالاتر را استفاده کنید. برای استفاده ی شبیه ساز Gazebo می توانید از Jade برای Gazebo v5 و یا Indigo برای v2 آن بهره ببرید. اگر قابلیت های ROS مورد نظر شما بوده ولی نسخه ی آنها اهمیت زیادی برای شما ندارد آخرین نسخه ی LTS آن را انتخاب کنید ولی اگر قابلیت به روز بودن آن را ترجیح میدهید آخرین نسخه ی ROS را به کار گیرید.

انتخاب توزیع رآس، شبیه ساز gazebo و OpenCV

ساخت فضای کاری

در انتخاب توزیع ها برای ساخت فضای کاری یا Workspace نیز باید توجه داشت که catkin برای توزیع ROS Groovy و بعد آن می باشد و برای توزیع ROS Fuerte و ماقبل بایستی rosbuild را انتخاب کنید.

rosbuild حاوی اسکریپت هایی برای مدیریت سیستم ساخت (Build) برپایه ی CMake برای ROS است. هسته ی ابزار ساخت (Build) استفاده شده در ROS، ابزار CMake است. Cmake  ابزاری قدرتمندی برای پلتفرم های مختلف است که توابع پیکربندی و make را در بر دارد. تا توزیع ROS Fuerte،‌ بخشی از rosbuild به نام  rosmake اسکریپتی از بسته ی CMake بود که ROS توسط آن build می شد. با شروع توسعه ی ROS groovy، ابزار catkin سیستم توصیه شده ی build برای بسته های جدید شد.

فضای کاری Catkin

مجموعه ی catkin می تواند به عنوان پروژه ی جداگانه build شود، با همان طریقی که پروژه های CMake  می توانند build شوند، اما catkin مفهوم یک فضای کاری را نیز در بر دارد به گونه ای که می توانیم چندین build، بسته های مستقل را با هم یکجا انجام دهیم.

ساختار فضای کاری Catkin

یک فضای کاری catkin پوشه ای است که امکان اصلاح،ساخت و نصب بسته های catkin را فراهم می کند، قالب فضای کاری catkin با توجه به تعریف REP 128 به قرار زیر است:

https://gist.github.com/Ahrovan/bbd6a2b2a478625b1224b85330145b1d

فضای کاری catkin می تواند شامل چهار بخش مختلف باشد که هر کدام نقش های مختلفی در پروسه ی توسعه ی نرم افزاری بر عهده می گیرند.

  • بخش Source

بخش source حاوی کد سورس بسته های catkin است. اینجا همان جایی است که شما می توانید استخراج/بررسی/همزاد سازی سورس کد برای بسته هایی که میخواهید build کنید را انجام دهید. هر پوشه داخل بخش source شامل یک یا چندین بسته ی catkin است. این بخش بایستی در کنار پیکربندی، ساخت و یا نصب بدون تغییر باقی بماند. ریشه ی بخش Source شامل یک لینک نمادین به سطح بالای فایل CMakeLists.txt است. (catkin’s boiler-plate ‘toplevel’ CMakeLists.txt). این فایل توسط CMake در طول پیکربندی پروژه ی catkin در فضای کاری خواسته می شود. آن می تواند توسط فراخوانی catkin_init_workspace  در دایرکتوری بخش Source ساخته شود.

  • بخش Build

بخش build مکانی است که CMake برای build بسته های catkin از فضای source را فراخوانی می کند. CMake و catkin اطلاعات موقتی و دیگر اطلاعات خود را اینجا نگهداری میکنند.

  • بخش Development

بخش Development یا devel مکانی هست که اهداف build قبل نصب در آن قرار داده می شوند. اهداف راه در بخش فوق به همان ترتیبی که در نهایت نصب خواهند شد، سازمان دهی می شوند. این عمل باعث می شود محیط سودمندی برای تست و توسعه فراهم شود که نیازی به فراخوانی مراحله ی نصب نباشد. مکان ذخیره ی بخش devel توسط یک متغییر CMake مشخص catkin بنام CATKIN_DEVEL_PREFIX کنترل می شود و به صورت پیش فرض build space>/develspace> می باشد.

  • بخش  Install

هنگامی که اهداف build شده اند می توانند با فراخوانی (install target) در بخش فوق نصب شوند. معمولا با دستور make install انجام می شود. بخش نصب همیشه نباید در محل فضای کاری باشد، از آنجایی که بخش install  توسط CMAKE_INSTALL_PREFIX تعیین می شود و به صورت پیش فرض /usr/local سیستم است.

1 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *