رآس چیست؟
اگر در حوزه رباتیک کار میکنید و تا کنون چیزی راجع به رآس نشنیدهاید خواندن این مقاله را از دست ندهید!
ROS مخفف Robot Operating System به معنی سیستم عامل ربات است. این که این سیستم عامل دقیقاً چیست؟ کجا نصب میشود؟ چطور باید با آن کار کرد؟ و …. سؤالاتی است که ما در این سایت به شما آموزش میدهیم. در همین ابتدا این نکته را بگویم که هر امکاناتی که برای شبیهسازی و پیادهسازی یک ربات از مبتدی تا حرفهایترین قابلیتی که شما فکرش را بکنید از شبیهسازی گرافیکی گرفته تا پیادهسازی سختافزاری در رآس قابل اجراست.
پس نگران نباشید، تنها کافیست ما را دنبال کنید.
ساختار رآس
در ابتدای شکلگیریROS، به دلیل اینکه در کارهای رباتیکی نیاز به دسترسی به فایلهای سیستمی بوده و این دسترسی در سیستمعامل ویندوز موجود نبود، تیم ROS تصمیم به بنا نهادن سیستمعامل خود بر روی لینوکس گرفت. سیستمعامل لینوکس برخلاف ویندوز، سیستمعاملی متنباز بوده که کد منبعهای آن در دسترس است و به سادگی میتوان در فایلهای سیستمی آن تغییر ایجاد کرد.
ROS برای برقراری ارتباط بین وسایل جانبی مختلف و استفاده بهینه از حافظه و پردازنده کامپیوتر، به فایلهای سیستمی نیاز دارد، به این جهت نمیتوان ROS را به طور صریح در یکی از دستهبندیهای نرمافزاری قرار داد. لذا به خاطر نزدیکی به فایلهای سیستمی و هسته سیستمعامل، آن را سیستمعامل مینامند، اما از یک نگاه دیگر به دلیل مستقل نبودن آن (چرا که باید بر روی یکی از توزیعهای سیستمعامل لینوکس نظیر اوبونتو نصب شود) نمیتوان آن را سیستمعامل نامید. در نتیجه محیط ROS از این جهت که قابلیت برقراری ارتباط بین قسمتهای مختلف سختافزاری را دارد، را میتوان در دسته میان افزارها قرار داد.
کتابخانهها و بستههای نرمافزاری متعدد که هر روز نیز به تعداد آنها افزوده میشود، موجب شده که ROS به ابزاری بینظیر برای کارهای رباتیکی تبدیل شود.
برای درک بهتر عملکرد ROS مقایسهای بین آن و جستجوگرهای اینترنتی انجام میدهیم. همانطور که میدانید، اطلاعات یک سایت اینترنتی بر روی سرور وب قرار دارد و کل این مجموعه تحت نظر سرور DNS فعالیت میکند. به این ترتیب که هنگامی که کاربر نشانی سایت خاصی را در جستجوگر اینترنتی خود وارد میکند، جستجوگر با برقراری ارتباط با سرور DNS نحوه ارسال درخواست برای سرور وب را دریافت کرده و آن را برای سرور وب ارسال میکند. سرور وب نیز پس از دریافت درخواست از جستجوگر، اطلاعات درخواست شده را به نمایش در میآورد. شمای کلی این ارتباط در شکل زیر آورده شده است.

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