رآس چیست؟

اگر در حوزه رباتیک کار می‌­کنید و تا کنون چیزی راجع به رآس نشنیده‌­اید خواندن این مقاله را از دست ندهید!

ROS مخفف  Robot Operating System  به معنی سیستم عامل ربات است. این که این سیستم عامل دقیقاً چیست؟ کجا نصب می­‌شود؟ چطور باید با آن کار کرد؟ و …. سؤالاتی است که ما در این سایت به شما آموزش می­‌دهیم. در همین ابتدا این نکته را بگویم که هر امکاناتی که برای شبیه­‌سازی و پیاده‌­سازی یک ربات از مبتدی تا حرفه­‌ای‌­ترین قابلیتی که شما فکرش را بکنید از شبیه‌­سازی گرافیکی گرفته تا پیاده‌­سازی سخت­‌افزاری در رآس قابل اجراست.

پس نگران نباشید، تنها کافیست ما را دنبال کنید.

ساختار رآس

در ابتدای شکل‌گیریROS، به دلیل اینکه در کارهای رباتیکی نیاز به دسترسی به فایل‌های سیستمی بوده و این دسترسی در  سیستم‌عامل ویندوز موجود نبود، تیم ROS تصمیم به بنا نهادن سیستم‎‌عامل خود بر روی لینوکس گرفت. سیستم‌عامل لینوکس برخلاف ویندوز، سیستم‌عاملی متن‌باز بوده که کد منبع‌های آن در دسترس است و به سادگی می‌توان در فایل‌های سیستمی آن تغییر ایجاد کرد.

ROS برای برقراری ارتباط بین وسایل جانبی مختلف و استفاده بهینه از حافظه و پردازنده کامپیوتر، به فایل‎‌های سیستمی نیاز دارد، به این جهت نمی‌توان ROS را به طور صریح در یکی از دسته‌بندی‌های نرم‌افزاری قرار داد. لذا به خاطر نزدیکی به فایل‌های سیستمی و هسته سیستم‌عامل، آن را سیستم‌عامل می‌نامند، اما از یک نگاه دیگر به دلیل مستقل نبودن آن (چرا که باید بر روی یکی از توزیع‌های سیستم‌عامل لینوکس نظیر اوبونتو نصب شود) نمی‌توان آن را سیستم‌عامل نامید. در نتیجه محیط ROS  از این جهت که قابلیت برقراری ارتباط بین قسمت‌های مختلف سخت‌افزاری را دارد، را می‌توان در دسته میان افزارها قرار داد.

کتابخانه­‌ها و بسته‌های نرم‌افزاری متعدد که هر روز نیز به تعداد آنها افزوده می‌شود، موجب شده که ROS به ابزاری بی‌نظیر برای کارهای رباتیکی تبدیل شود.

برای درک بهتر عملکرد ROS مقایسه‌ای بین آن و جستجوگرهای اینترنتی انجام می‌دهیم. همانطور که می‌دانید، اطلاعات یک سایت اینترنتی بر روی سرور وب قرار دارد و کل این مجموعه تحت نظر سرور DNS فعالیت می‌کند. به این ترتیب که هنگامی که کاربر نشانی سایت خاصی را در جستجوگر اینترنتی خود وارد می‌کند، جستجوگر با برقراری ارتباط با سرور DNS نحوه ارسال درخواست برای سرور وب را دریافت کرده و آن را برای سرور وب ارسال می‌کند. سرور وب نیز پس از دریافت درخواست از جستجوگر، اطلاعات درخواست شده را به نمایش در می‌آورد. شمای کلی این ارتباط در شکل زیر آورده شده است.

نحوه ارتباط مرورگرهای اینترنتی با سرور

به این ترتیب کاربر اینترنتی برای دسترسی به اطلاعات مورد نیاز خود، نیازی به دانستن هیچ یک از مطالب بالا و نحوه برقراری ارتباطات بین سرور DNS، سرور وب و جستجوگر و نوع داده‌های ارسالی آنها ندارد.

محیط ROS نیز برای کاربران خود چنین قابلیتی را فراهم آورده است، به این ترتیب که مثلاً برای برقراری ارتباط یک حسگر و گرفتن داده از آن، کاربر نیازی به دانستن نحوه ارتباط بین قسمت‌های مختلف سخت‌افزار و نرم‌افزار سیستم ندارد و تنها باید نحوه برقراری ارتباط بین نودها در ROS را بداند.(برای آشنایی با مفهوم نود در رآس این آموزش را بخوانید.) در این صورت کاربر می‌تواند داده‌های ارسالی سنسور را با فرمتی که برای داده‌های خروجی از آن نود تعریف شده دریافت کند.

خلاصه این که …

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