سیستم عامل ربات ROS: به دنیای برنامه نویسی ربات‌ها خوش آمدید

فریمورک ROS یک مجموعه نرم افزارها و محیط توسعه کد برای ربات است کمک می‌کند تا ربات را بصورت ماژولار با زبان‌های برنامه‌نویسی مختلف توسعه داده شود همچنین محیط های شبیه سازی همانند گزبو، turtlesim و گراف های نموداری براحتی امکان بررسی سریع پروژه و دیباگ آن را برای توسعه دهنده فراهم می‌کند. برخلاف اسمش سیستم عامل(OS) نیست. پس اگر به دنیای رباتیک علاقه دارید بهترین گزینه برای ورود به آن یادگیری این فریمورک شگفت انگیز و توانمند است.درک ROS و کار با آن ابتدا برای اکثر کاربران مشکل است همانطور که برای خودم رخ داد و تا به تسلط نسبی برسیم نیاز به تمرین و آموزش دارد پس صبور باشید و با ما در آموزش که سعی می‌شود جامع و با زبان ساده باشد همراه باشید!گزارش معروفی از رسانه بلومبرگ درباره تاریخچه تولد ROS و قابلیت های آن در اینترنت وجود دارد که با زیرنویس فارسی در ویدئو زیر مشاهده کنید به درک شما از ین پلتفرم و فلسفه آن آشنا خواهید شد: https://www.aparat.com/v/br3UW ویژگی های فریمورک رآس:1) مدیریت منابع سیستم2) شبیه سازی و مصور سازی اجزا مختلف ربات3) قابلیت توسعه کد بصورت ماژولار و درک آن برای افراد دیگر4) کدنویسی اجزا مختلف بصورت موازی و به زبان های برنامه نویسی مختلفبرای مثال اگر اجزا مختلف یک ربات هوشمند را بصورت زیر فرض کنیم:اجزا مختلف یک ربات زمینی هوشمندفریمورک رآس می‌تواند این اجزا را در قالب 5 نود مدیریت کند میتوان دوربین را با استفاده از کد پایتون خواند، تخمین موقعیت را ا استفاده از کد سی‌پلاس‌پلاس انجام داد.مدیریت نودها توسط رآسمفاهیم مختلف در رآس:تاپیک:بین نودهای مختلف در ربات تبادل داده رخ میدهد برای مثال نود تخمین موقعیت برای محاسبه مکان ربات نیاز به داده سنسور انکودر دارد از این رو نود Wheel Encoder باید داده هایی که از سنسور خوانده را به نو Position Estimator بفرستد.در اینجا نود Wheel Encoder در نقش پابلیشر (Publisher) و نود Position Estimator در نقش سابسکرایبر (Subscriber) است.نحوه ارسال داده میان نودها در قالب یک topicدر ضمن تعداد پابلیشر و سابسکرایبرها محدودیتی ندارد مثلا یک نود میتواند داده از چند نود مختلف سابسکرایب کند یا همزمان در نقش پابلیشر و سابسکرایبر باشد. مثلا در یک کوادکوپتر برای تخمین موقعیت(بعنوان یک نود)، باید از داده های GPS، بینایی و سنسور اینرسی استفاده کند پس از همه این نودها داده را سابسکرایب میکند.ساختار پیچیده تربرای ارسال تاپیک در رآس منابع زیادی مصرف میشود در برخی موارد، نیازی به ارسال دائم یک داده نیست فقط در صورتی که یک نود آن داده را درخواست(Request) کرد ROS Master آن را در اختیار نود قرار میدهد این سبب صرفه جویی در منابع سیستم میشود. به این شکل اشتراک داده و مدیریت آن Service می‌گویند.ساختار serviceجمع‌بندی:پس می توان فریمورک رآس را بعنوان ابزاری تعریف کرد که الگوریتم ربات را به چند قسمت مجزا(nodes) تقسیم میکند که هر نود را میتوان به زبان های مختلف توسعه داد برای ارتباط میان این نودها از service و topic استفاده می‌شود تاپیک با نرخ معینی در طول زمان ارسال میشود و جنس آن میتواند رشته، عدد و.. باشد سرویس نیز بسته به درخواست یک نود در اختیار آن قرار میگیرد و در استفاده از منابع صرفه جویی میشود. در ادامه با ابزارهای گرافیکی و شبیه سازی در رآس آشنا خواهید شد. شبیه سازی این امکان را میدهد که بدون نیاز به ربات فیزیکی الگوریتم را تست کرد درصورت وجود اشتباه در الگوریتم آن را متوجه شد بدون اینکه خسارت فیزیکی متوجه ربات شود.بدون رآس استفاده از زبانهای برنامه‌نویسی مختلف برای یک ربات بسیار زمان‌بر و سخت بود دیباگ کردن یک پروژه بزرگ تقریبا غیرممکن بود فهم آن برای عضو جدید تیم سخت بود رآس کمک میکند وقت خود را صرف خلاقیت و توسعه ربات کنید تا اینکه درگیر مشکلات ابتدایی باشید.در سری بعدی نحوه نصب و استفاده از فریمورک را در محیط لینوکس(اوبونتو) فراخواهیم گرفت پس همراه ما باشید.آدرس گیت‌هابآدرس یوتیوبآدرس تلگرامآدرس آپارات