گیاهی ترین گیاهی ترین AnzanDigital فروشگاه
خانه / سیستم عامل رباتیک / ورودی آسان به رآس

ورودی آسان به رآس

در این بخش مزایای رآس و سرفصل بخش های بعدی را بیان می کنیم.

1.1 چرا رآس؟

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


این توصیف دقیق است و کاملاْ بیان می کند که رآس جایگزینی برای بقیه سیستم عامل ها نیست بلکه در کنار آنها کار می کند. پس مزیت اصلی رآس چیست؟ یادگرفتن رآس به زمان و انرژی زیادی نیاز دارد پس باید مطمئن باشیم که ارزش سرمایه گذاری این را دارد. در ادامه فواید توسعه نرم افزارهای رباتیک که رآس می تواند در این زمینه به ما کمک کند را بیان می کنیم.


محاسبات توزیع یافته  امروزه بسیاری از ربات ها بر اساس نرم افزارهایی هستند که به وسیله ی چند کامپیوتر اجرا می شود. برای مثال :
☜ بعضی از ربات ها چند کامپیوتر را حمل می کنند که هر کدام یکی از محرک ها یا سنسورهای ربات را کنترل می کند.
☜ این ایده ی بسیار خوبی است که حتی با یک کامپیوتر، نرم افزار به بخش های کوچک و مستقلی، 
که با همکاری یکدیگر هدف نهایی را تحقق ببخشند، تقسیم شود. این روش پیچیدگی در ترکیب خوانده می شود.
☜ وقتی چند ربات برای انجام کاری مشترک با هم همکاری می کنند اغلب لازم است که برای راهبری کارهایشان با هم ارتباط برقرار کنند.
☜ انساان ها معمولاْ دستوری را به وسیله کامپیوتر، لپتاپ یا موبایل به ربات ها می فرستند در این مورد می توان ارتباط انسان را نیز به عنوان یک نرم افزار ربات در نظر گرفت.


مسئله ی مشترک در همه ی موارد بالا ایجاد ارتباط بین نرم افزار های مختلف است که ممکن است در یک کامپیوتر یا چند کامپیوتر اجرا شوند. رآس دو مکانیزم ساده برای این نوع ارتباط ها فراهم می کند که در بخش های سه و هشت به آن می پردازیم.


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

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

تست سریع یکی از دلایلی که گسترش نرم افزار رباتیک از گسترش بقیه قسمت ها چالش بر انگیزتر است، وقت گیر بودن تست و و پیدا کردن خطاهاست. ربات واقعی ممکن است همیشه در دسترس نباشد، و وقتی در دسترس است پردازش ها بسیار کند و خسته کننده هستند. رآس دو ابزار مؤثر برای این مشکل فراهم می کند.
سیستم های خوب طراحی شده رآس کنترل مستقیم سطح پایین سخت افزار را از پردازش سطح بالا و بخش تصمیم گیری جدا می کند. به دلیل این جدایی ما می توانیم به صورت موقت کنترل های سطح پایین و سخت افزارهای مرتبط با آن را با وسیله شبیه ساز جایگزین کنیم تا الگوریتم های سطح بالا را تست کنیم.
رآس همچنین امکان ذخیره کردن و بازپخش کردن داده های سنسورها و پیام ها را فراهم میکند. این امکانات یعنی ما می توانیم از زمان بهره ی بیشتری ببریم چون با ثبت کردن داده های سنسور می توانیم آنها را بارها دوباره اجرا کنیم و با روش های مختلف آنها را پردازش کنیم. به این ابزار در رآس بگ (bag) می گوییم و در واقع رآس بگ (rosbag) ابزاری است برای رکورد و دوباره اجرا کردن که در بخش 9 به آن می پردازیم. 

مساله مهم اینجاست که تفاوت اطلاعات ذخیره شده و سنسور واقعی ناچیز است. چون ربات واقعی، شبیه ساز، و دوباره اجرا کردن بگ فایل، هر سه یک نوع دیتای ارتباطی ایجاد می کند. و کدتان لازم نیست در دو مد مختلف کار کند و حتی لازم نیست مشخص کنیم که با ربات واقعی در ارتباط است یا با دیتای ذخیره شده.

البته رآس تنها پلت فرمی نیست که این قابلیت ها را فراهم می کند. اما آنچه را رآس را متمایز می کند جامعه گسترده رباتیکی است که از آن استفاده و آن را پشتیبانی می کند. این پشتیبانی وسیع منطقا رآس را ادامه دار، گسترش پذیر و قابل بهبود در آینده نشان می دهد.


رآس چه چیزهایی نیست در ادامه مواردی که در مورد رآس درست نیست را بیان می کنیم.
رآس یک زبان برنامه نویسی نیست. بلکه در این کتاب توضیح می دهیم چگونه به زبان ++C در رآس برنامه نویسی کنیم. گرچه می توان به زبان های پایتون ،جاوا و لی سپ و دیگر زبان ها هم می توان در این محیط برنامه نویسی کرد.

☜ رآس فقط یک کتابخانه نیست. بلکه سرویس های مرکزی و ابزار دستور (command-line) و گرافیکی و ساختن (build) را هم فراهم میکند.
☜رآس یک محیط توسعه مجتمع (Integrated Development Environment) نیست. اگرچه رآس هیچ محیط توسعه ای را تجویز نمی کند اما می تواند با بیشتر IDEهای معمول استفاده شود. البته به نظر شخصی نویسنده استقاده از دستورات command line بدون IDE کاملا منطقی است.

1.2 چه انتظاری از رآس داریم

هدف از این مجموعه مروری بر مفاهیم و تکنیک هایی است که برای نوشتن یک کد رآس نیاز دارید. این هدف محدودیت هایی را بر محتوای این مجموعه اعمال می کند.

این مجموعه معرفی زبان برنامه نویسی نیست. ما در مورد پایه های برنامه نویسی بحث نمی کنیم. در این کتاب فرض شده است شما به اندازه کافی توانایی خواندن و نوشتن و فهمیدن کد ++ C را دارید.
این مجموعه یک مرجع نیست. اطلاعات دقیقی در مورد رآس شامل راهنمای استفاده از رآس به صورت آنلاین موجود است. این کتاب جایگزینی برای منابع دیگر نیست. در عوض ما قسمت هایی از رآس را انتخاب کرده ایم که به نظر نویسنده شروع خوبی برای استفاده از رآس است.
این مجموعه ،مجموعه معرفی الگوریتم های رباتیک نیست. یاد گرفتن رباتیک و به خصوص الگوریتم های کنترل ربات های خودمختار می تواند کاملا جذاب باشد. الگوریتم بسیاری برای حل بخش های مختلف این مسئله (کنترل ربات های خودمختار) بوجود آمده است. این کتاب هیچ کدام از این الگوریتم ها را درس نمی دهد (البته شما باید آنها را به هر حال یاد بگیرید.!!) تمرکز ما بر آموزش ابزارهای رآس برای سهولت در پیاده سازی و تست این الگوریتم هاست.

ارتباط بین فصول راس
ارتباط بین فصول راس

فصل ها و ارتباط آنها شکل 1-1 ساختار مجموعه را نشان می دهد. فصل ها با مستطیل و ارتباط بین فصول با بردار نشان داده شده اند. مطالعه این مجموعه با هر ترتیبی که با محدودیت های ذیل هماهنگی داشته باشد منطقی است. خواندن  این مجموعه برای دانشجویان و محققان و علاقه مندان که می خواهند سریع با رآس آشنا بشوند مفید است. ما فرض کرده ایم که شما با محیط لینوکس آشنا هستید و با ++C برای نوشتن نرمافزار و کنترل ربات آشنا هستید و به طور کلی فرض بر این است که شما از اوبونتو 14.04 و bash فایل ها استفاده می کنید.

1.3 قراردادها

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

این کادر نشان دهنده ی یک منبع مشکل متداول است.

به علاوه، بعضی بخش ها شامل توضیحاتی است که برای برخی خواننده ها ممکن است جالب باشد، اما برای سایرین درک مفاهیم الزامی نیست. این موارد با پشت زمینه ی آبی و حاشیه خط چین مشخص شده اند.

کادر آبی و خط چین شامل توضیحاتی است که می توان به سرعت از آنها گذر کرد، به ویژه در دور اول مطالعه

1.4 برای اطلاعات بیشتر

همان طور که در بالا اشاره شد این مجموعه سعی ندارد یک مرجع جامع برای رآس باشد. شما برای انجام کارهای دلخواهتان حتما به اطلاعات جزیی تری نیاز دارید. خوشبختانه اطلاعات آنلاین زیادی برای رآس وجود دارد.
☜ مهمترین آنها، گسترش دهندگان رآس مستندات وسیعی را، که شامل خودآموزهای رآس نیز می باشد، نگهداری می کنند. این کتاب شامل لینک های زیادی به این نوشته ها است که در پاورقی آورده شاده اند. اگر شما نسخه الکترونیکی این کتاب را می خوانید، شما باید بتوانید روی لینک ها به صورت مستقیم کلیک کنید تا مستقیم روی مرورگر شما باز شود.
☜ وقتی موردی پیش بینی نشده پیش آمد، می توانید به فروم (forum) سوال و جواب سایت رآس مراجعه کنید.
☜ همچنین شما می توانید عضو لیست ایمیل های رآس بشوید، که بتوانید اطلاعیه های آن را دنبال کنید.

در اینجا دو مورد مهم از جزییاتی که می توانید در منابع کمک آموزشی آنلاین ببینید که می توانند کمک کننده باشد، اما به صورت کامل توضیح داده نشده اند، آورده شده است.
توزیع ها ویرایش های رآس، توزیع های رآس نامیده می شوند، و با صفاتی که به ترتیب الفبای انگلیسی هستند نام گذاری می شوند. (این اسم گذاری مانند بقیه پروژه های بزرگ نرم افزاری مانند ابونتو و اندروید است). در حال حاضر ویرایش طولانی مدت ایندیگو (indigo) است. نسخه بعدی jade است که در ماه می 2015 منتشر شده است. نسخه های قبلی شامل Indigo, hydro, groovy, fuerte electric, diamondback, C turtle, box Turtle می باشد. نام این توزیع ها در این کتاب بارها در جاهای مختلف استفاده خواهد شد.

 در این کتاب فرض شده است شما از نسخه indigo استفاده می کنید.
اگر به هر دلیلی شما از نسخه ی قدیمی تر hydro استفاده می کنید، تقریبا همه ی محتوی این کتاب بدون تغییر قابل تعمیم است.
این مورد در مورد ویرایش groovy هم صادق است. به جز یک مورد مهم: در توزیع
های جدیدتر از groovy و (در نتیجه در این کتاب) دستورهای سرعت برای trutle-sim به صورت یک پیام استاندارد و یک نام تاپیک استاندارد برای استفاده دیگر ربات
ها تعریف شده است.
در واقع اگر از نسخه ی groovy استفاده می کنید باید تغییرات کوچکی را اعمال کنید:
☜ وقتی پکیج های پیش نیاز را اضاافه می کنید، شما به پکیج turtlesim به جای geometry_msgs نیاز دارید.
☜ سربرگ فایل مرتبط turtlesim/Velocity.h است به جای
.geometry_msgs/Twist.h
☜ نوع پیام turtlesim/Velocity دارای دو فیلد است که linear و angular است. این فیلدها مانند فیلدهای linear.x و angular.z در geometry_msgs/Twist است. این تغییرات باید در command line و کد ++ C اعمال شود.

 ساختن سیستم ها بعد از توزیع groovy، رآس تغییرات گسترده ای برای کمپایل کردن نرم افزار انجام داد. قبل از توزیع groovy سیستم rosbuild استفاده می شد. اما الان catkin جایگزین rosbuild شده ا ست. این بسیار مهم است که شما این تغییر را بدانید چون تعدادی از این منابع آموزشی براساس نوع توزیع دسته بندی شده اند، براساس اینکه rosbuild یا catkin استفاده میکنند. این کتاب catkin را توضیح می دهد، اما ممکن است مواردی باشد که در آنها rosbuild انتخاب بهتری باشد.

1.5 در ادامه

در فصل بعد، ما کار کردن با رآس را شروع می کنیم و بعضی از مفاهیم و ابزارها را یاد می گیریم.

1.6 دانلود کتاب

با توجه به درخواست کاربران، سایت بیر رباتیک به صورت رایگان کتاب انگلیسی و فارسی “ورودی آسان به رآس” را به اشتراک می گذارد. همچنین از خانوم زهرا بروجنی برای ترجمه و ارسال این کتاب به بیر رباتیک کمال تشکر را داریم.


لینک کتاب انگلیسی

لینک کتاب فارسی

4

در صورت بروز مشکل با بخش فنی سایت تماس بگیرید (09146053421 – فقط از طریق تلگرام).

 

کانال تلگرام بیر رباتیک

درباره Ahrovani Hadi

مشاهده بیشتر

arducopter simulation

شبیه سازی اتوپایلوت و تشخیص کد های Aruco

ویدئوی پیوست شده شبیه سازی اتوپایلوت ardupilot با شبیه ساز gazebo را نشان میدهد. این …

دیدگاه بگذارید

2 دیدگاه ها روشن "ورودی آسان به رآس"

با خبر سازی از
avatar

مرتب سازی بر اساس:   تازه ترین ها | قدیمی ترین | بیشترین تعداد رای
حسن
مهمان
حسن
8 ماه ها 12 روز ها مدت ها قبل

دم شما گرم واقعا علاقه مند شدم

محمد تقی
مهمان
محمد تقی
5 ماه ها 17 روز ها مدت ها قبل

سلام و خسته نباشید. از مطالب قابل استفاده ای که در سایت قرار دادین جدا تشکر می کنم،بخصوص تشکر دارم از خانم زهرا بروجنی بابت ترجمه ی “ورودی آسان به رآس” و قرار دادن آن در اختیار عموم.

wpDiscuz