فرض کنید می خواهید یک ربات که از اجزای مختلفی تشکیل شده است بسازید. ربات ها عموما دارای واحد ادراکی (Sensor) و واحد عملگر (Actuator) هستند. در این حالت برای اینکه ربات به درستی بتواند ماموریت خود را انجام دهد، نیاز به این است که برای هر کدام از واحدهای فوق کدهایی نوشته شود و ارتباط موثری بین این کدها برقرار گردد. سیستم عامل ربات ها (ROS)، بستری قدرتمند و سریع را برای یکپارچه سازی کدهای مربوط به هر یک از واحدهای ربات فراهم می سازد. به کمک سیستم عامل ربات ها می توانید تحت لینوکس کد مربوط به هر یک از واحدهای فوق را در یک گره (Node) بنویسید و ارتباط موثر بین این گره ها را از طریق پیام هایی (Topic) ایجاد کنید. در این فرادرس با مفاهیم سیستم عامل ربات ها که برای ایجاد یک سیستم رباتیک هوشمند و سریع، ضروری است، آشنا می شوید تا بتوانید با هر یک از دو زبان پایتون یا ++C برای ربات های خود کدنویسی کنید. پیرامون سال 2007 اولین نسخه سیستم عامل ربات ها در دانشگاه استنفورد ایجاد شد. از آن زمان تاکنون ROS گسترش زیادی پیدا کرده است. جامعه آماری بزرگی از برنامه نویسان در حوزه توسعه ROS فعالیت دارند. ROS در حقیقت یک سیستم عامل نیست، بلکه چارچوبی (Framework) برای برنامه نویسی ربات فراهم می کند که با داشتن استانداردهای تبیین شده، اعضای یک تیم بتوانند هم زمان برای برنامه نویسی یک ربات فعالیت کنند. امروزه شرکت های مختلفی در زمینه تولید پلتفرم های رباتیکی سازگار با ROS فعال هستند که یکی از معروف ترین این پلتفرم ها، ربات لاک پشتی (TurtleBot) است که توسعه دهندگان آن، آموزش های بسیاری برای راه اندازی این پلتفرم به صورت رایگان منتشر کرده اند. همان طور که گفته شد با هر یک از زبان های پایتون یا ++C می توان برای ROS کدنویسی کرد. با این وجود، به کسانی که دانش برنامه نویسی از این دو زبان ندارند، توصیه می شود که ROS را با پایتون آغاز کنند. در این فرادرس تمامی مراحل به هر دو زبان برنامه نویسی فوق آموزش داده می شوند. ضمن اینکه نیازی نیست سیستم عامل خود را به لینوکس تغییر دهید، با استفاده از شبیه ساز لینوکس در محیط ویندوز می توانید تمرین های این آموزش را پیاده سازی کنید.