راهاندازی بخش GPIO در میکروکنترلر ARM LPC1768
۸ شهریور ۱۳۹۷انواع روش های راه اندازی موتور پله ای (استپر)
۸ شهریور ۱۳۹۷روبوکاپ – شبیه سازی امداد
چکیده
ساخت روباتهای خاصمنظوره به جهت افزایش بهرهوری امور همواره یکی از اهداف محققین در حوزه رباتیک بوده است. ربوکاپ و مسابقات دورهای روبوکاپ نیز در همین جهت بستر مناسبی برای مطالعه، تحقیق، پژوهش و آموزش بوده است. یکی از چالشهایی که محققین در این حوزه با آن سروکار دارند، حوزه امدادرسانی به مصدومان در شرایط بحرانی مثل وقوع یک بلای طبیعی مانند زلزله است. برای این منظور باید ساختاری مدون و استاندارد برای ارزیابی الگوریتمها ایجاد کرد که بتوان به کمک آن درباره الگوریتمها و رباتهای ساختهشده قضاوت درستی انجام داد.
مقدمه
سال ۱۹۹۷ برای شاخههای هوش مصنوعی و رباتیک نقطه عطفی محسوب میشود. در ماه می این سال بود که سیستم IBM Deep Blue توانست برای اولین بار در مقابل قهرمان مسابقات جهانی شطرنج به عنوان یک رایانه با هوش مصنوعی به پیروزی برسد. این پیروزی برای هوش مصنوعی به منزله یک موفقیت بزرگ بود. همچنین در ماه جولای همان سال بود که اولین ربات مسیریاب خودکار ناسا توانست با موفقیت بر روی سطح مریخ فرود بیاید. با این دو موفقیت بود که روبوکاپ اولین گامهای خود را در جهت ساخت روباتهای فوتبالیستی که بتوانند گروه قهرمان جام جهانی را شکست دهند برداشت.
برای اولین بار ایده ساخت رباتهای فوتبالیست، در سال ۱۹۹۲ توسط پروفسور آلن مک ورس، استاد دانشگاه بریتیش کلمبیا، کانادا، در کتاب “On Seeing Robots” مطرح شد. همچنین این ایده توسط ایشان دوباره در کتابی درباره بینایی ماشین “System, Theory, and Applications” به طور گستردهتر مطرح شد و مورد بحث قرار گرفت.
در همان سال ۱۹۹۲ بود که گروهی از پژوهشگران ژاپنی کارگاهی جهت تحقیق و توسعه برای ساخت روباتهای فوتبالیست ایجاد کردند که موجب بهوجود آمدن مسابقه کوچکی شد که جهت ارزیابی و مقایسه دستاوردهای گروههای مختلف از محققین بود. در ادامه کار سایر محققین خارج از ژاپن نیز درخواست حضور در چنین کارگاهها و مسابقاتی را دادند. از همین رو بود که مسابقات ربوکاپ شکل گرفت و اولین مسابقه رسمی ربوکاپ در سال ۱۹۹۷ برگزار شد.
در شروع این مسابقات پیروزی تیمی از رباتها در مقابل قهرمان جام جهانی سال ۲۰۵۰، با رعایت کلیه قوانین فیفا، به عنوان هدفی آرمانی تعیین شد تا تمام محققین این حوزه برای دستیابی به این هدف تلاش کنند. این هدف در نظر محققین هرچند دشوار اما دستیافتنی است.
لیگهای موجود در ربوکاپ
+ معرفی لیگ فوتبال
این لیگ اولین لیگی بود که در مسابقات ربوکاپ مطرح شد. برتری لیگ فوتبال نسبت به سایر لیگها و پیرو آن سریعتر مطرحشدن این لیگ دو مورد است. مورد اول اینکه فوتبال در بین عموم مردم، رشته شناختهشدهای است و طرفداران زیادی نیز دارد از همین رو به راحتی مورد استقبال عموم قرار میگیرد. مورد دوم اینکه فوتبال شاخهای است که اگر موفق شویم رباتی بسازیم که در این رشته به نحوه احسن عمل کند، میتوانیم این ادعا را داشته باشیم که میتوانیم رباتهای عاممنظوره تولید کنیم؛ زیرا یک ربات فوتبالیست از قابلیتهای حرکتی زیادی برخوردار است به علاوه توانایی تصمیمگیریهای لحظهای و با سرعت بالا را دارد همچنین توانایی انجام کار گروهی را نیز دارد. تمام این موارد سبب شد که این لیگ به عنوان اولین لیگ مسابقات ربوکاپ مطرح شود.
در این لیگ سعی شده است که به تمام مسائل مطرح برای اینکه یک ربات بتواند با سایرین فوتبال بازی کند پرداخته شود. دستاوردهای حاصل از این لیگ نهتنها در رباتهای فوتبالیست، بلکه در علوم رباتیک و هوش مصنوعی تاکنون استفادههای شایان توجهی داشته است. برای کسب تمرکز بیشتر بر روی مسائل خاص این لیگ نیز خود به زیرشاخههای بیشتری تقسیم میشود. این زیرشاخهها عبارتاند از: انساننما، سایز متوسط، شبیهسازی، اندازه کوچک، رباتهای استاندارد.
نمایی از چند ربات در لیگ رباتها
+ معرفی لیگ امداد و نجات
مدیریت بحران یکی از مهمترین و جدیترین مسائلی است که در آن تعداد زیادی عامل با قابلیتهای متفاوت حضور دارند.
در سال ۱۹۹۵ در حالیکه پروژه روبوکاپ در ژاپن در حال شکلگیری بود. زلزله هانشین آواجی بزرگ در ژاپن رخ داد که باعث گشته یا مجروح شدن بیش از ۶۵۰۰ نفر شد. همچنین باعث خرابی بیش از ۸۰۰۰۰ خانه چوبی شد. در مجموع این زلزله به طور مستقیم یا غیرمستقیم بر زندگی بیش از یک میلیون نفر تأثیر گذاشت. همچنین خسارتی بالغبر یک بیلیون دلار آمریکا به این کشور وارد کرد. این زلزله باعث شد که محققین به فکر گسترش تحقیق در زمینه مدیریت بحران و استفاده از رباتها در این چالش بیافتند، از همین رو لیگ امداد و نجات به مسابقات ربوکاپ راه پیدا کرد.
در این لیگ به مسائل مربوط به جمعآوری اطلاعات از محیط، پخش اطلاعات بهدستآمده از محیط و رساندن آنها به سایر عاملهای موجود، برنامهریزی برای انجام عملیات نجات و همچنین به دست آوردن سیستم قابل اطمینانی جهت مدیریت بحران پرداخته میشود. به طور کلی در این لیگ به دنبال ایجاد سیستم امداد و نجاتی مبتنی بر کار گروهی، تولید رباتهای امدادگر، به دست آوردن زیرساخت مطمئن اطلاعاتی برای مواقع بحرانی، تولید دستیاران دیجیتالی برای امدادگران، ایجاد معیاری برای ارزیابی تصمیمگیری و در حالت کلیتر به دنبال معیاری برای ارزیابی استراتژی نجات هستیم.
در این لیگ نیز برای تمرکز بیشتر بر روی مسائل خاص و بررسی هرچه بهتر آنها و همچنین با توجه به هزینه زیاد ساخت رباتهای امدادگر چند زیرشاخه تشکیل شده است. این زیرشاخهها عبارتاند از: شبیهساز عامل امداد، رباتهای امدادگر مجازی، رباتهای امدادگر.
+ معرفی لیگ دانشآموزی
هدف از ایجاد این لیگ آموزش دانشآموزان جهت پیشبرد سریعتر ربوکاپ و زمینههای تحقیقاتی آن است. با وجود این لیگ، آموزش به دانشآموزان و علاقهمند کردن آنها به کار در این زمینهها آینده ربوکاپ تضمین خواهد شد. در این لیگ 3 زیرشاخه برای جذب دانشآموزان وجود دارد که هر دانشآموز با توجه به علاقه خود میتواند در آنها به فعالیت بپردازد. این لیگها عبارتاند از: فوتبال، امداد، رقص.
+ سایر لیگها
سه لیگی که در بخشهای قبلی توضیح داده شد لیگهای اصلی مسابقات ربوکاپ هستند که هر ساله در مسابقات سالیانه برگزار میشوند. اما به جز این موارد لیگهای دیگری هم با نظر کارشناسان و مسئولین هر مسابقه میتوانند به این لیگها اضافه شود. به طور مثال لیگ رباتهای خانگی، لیگ رباتهای مینیاب، لیگ رباتهای پرنده.
بررسی علل ایجاد شدن لیگهای شبیهسازی
هدف ربوکاپ در نهایت ساخت و تولید رباتهایی است که به انسان به نحوی در انجام امور کمک کنند است. اما برای رسیدن به این مهم باید مواردی را که سبب میشود امر تحقیق با مشکل مواجه شود یا نتایج حاصل از آن مطمئن نباشد را در نظر بگیریم. دقیقاً همین موارد هستند که باعث شدند مسئولین برگزاری مسابقات و محققین به فکر ایجاد لیگهای شبیهسازی بیافتند. در ادامه به بررسی برخی از این دلایل میپردازیم.
یکی از این موارد هزینه ساخت و آزمودن یک ربات است. این هزینه به قدری بالاست که مانع از رشد شاخههای مختلف رباتیک در بسیاری از موارد میشود. اگر بستر مناسبی برای شبیهسازی ایجاد شود که در آن شرایط محیطی نزدیک به واقعیت باشد و همچنین این شرایط قابلکنترل کردن باشد در این صورت نیاز به ساخت ربات برای آزمودن ایدهها از بین میرود همین امر باعث کاهش شدید هزینه تحقیقات در حوزه رباتیک خواهد شد.
یکی دیگر از موارد مشکلساز این است که ساخت ربات و درگیری با سختافزار ممکن است باعث شود که از هدف اصلی آزمایش و تحقیق خود دور شویم. به طور مثال ممکن است اشکال کوچکی در سختافزار سبب شود که خروجی مورد آزمایش یک الگوریتم تحت تأثیر قرار بگیرد. اما انجام آزمایش در شبیهسازها با توجه به قابل کنترل بودن شرایط محیط نه تنها باعث به وجود آمدن چنین مشکلی نخواهد شد بلکه با انجام کنترلهای بهتر میتواند سبب ایجاد تمرکز بیشتر روی مسئله شود.
معرفی لیگ شبیهسازی عامل امداد
این لیگ یکی از زیرشاخههای لیگ امداد ربوکاپ است. در این لیگ تمام توجه و تمرکز بر روی پیادهسازی الگوریتمهای مرتبط با امداد و رفع چالشهای مطرح شده در قسمتهای قبل با استفاده از الگوریتمها است.
موارد زیر هدفهایی است که ما در الگوریتمها در این لیگ به دنبال آن هستیم.
- کاهش تلفات انسانی
- کاهش تلفات مالی
این اهداف از طریق اعمال زیر محقق میشود:
- همکاری عاملها در جمعآوری اطلاعات از محیط
- نجات مصدومان از زیر آوار
- رساندن آنها به پناهگاه
- برقراری جریان طبیعی ترافیک
+ اشیاء موجود در محیط شبیهسازی
در محیط شبیهسازی ساختمانها، پناهگاه، مسیرها و موانع وجود دارند. ساختمانها جنسهای مختلفی دارند و در طی زلزله ممکن است فرو بریزند و آوار تولید کنند، همچنین میتواند در آتشسوزی آسیب ببینند. پناهگاه نیز ساختمان است با این تفاوت که ساختمانی است که صدمه نمیبیند و قبل از وقوع زلزله برای شرایط بحرانی آماده شده است. ساختمان پناهگاه با شکل یک خانه به رنگ قرمز از سایر خانهها در سطح شهر محیط شبیهسازی متمایز میشود. مسیرها وظیفه مرتبط کردن اجزاء مختلف شهر را به هم دارند. موانع نیز اشیاء حاصل از آوار ساختمانها هستند که در وقوع زلزله تولید میشوند و باعث بسته شدن مسیرها میشوند.
+ عاملهای موجود در شبیهسازی عامل امداد
شهروند
این عامل از حداقل هوشمندی برخوردار است. اعمالی که این عامل انجام میدهد به طور کلی به 2 دسته تقسیم میشود. این عامل از ابتدای شبیهسازی و قبل از وقوع زلزله در محیط حضور دارد. بعد از وقوع زلزله در صورتی که صدمهای ندیده باشد و زیر آوار نیز گیر نکرده باشد به طور خودکار به سمت یک پناهگاه حرکت میکند. اما در صورتی که صدمهدیده باشد و توان حرکت نداشته باشد، شروع به ارسال درخواست کمک از سایر عاملها میکند. این درخواست کمک شبیهسازی عمل فریاد زدن میباشد درنتیجه تا شعاع مشخص قابل دریافت توسط سایر عاملها میباشد.
این عامل در نمایشگر محیط شبیهسازی با استفاده از دایرههایی با رنگ سبز روشن مشخص میشود. تیره شدن رنگ عامل نشاندهنده کاهش سلامتی و میزان آسیبدیدگی عامل میباشد. به این صورت هر چه رنگ عامل رو به مشکلی شدن پیش برود امتیازی که گروه امداد از دست میدهد بیشتر خواهد شد. در شکل زیر میتوانید نمونهای از این عامل را مشاهده کنید.
نمایی از عامل شهروند و پلیس که به ترتیب با رنگهای سبز و آبی مشخص شدهاند. همچنین مرکز آتشنشان که با شکل شیر آتشنشانی مشخص شده است.
پلیس
کنترل این عامل توسط گروه امدادگر انجام میشود. وظیفه این عامل پاکسازی سطح معابر و برقراری جریان ترافیک در سطح محیط حادثهدیده است. این عامل توانایی حرکت در محیط را دارد، علاوه بر آن میتواند فرمانی برای پاکسازی سطح معبری که در آن قرار دارد برای پاکسازی آن ارسال کند. همچنین میتواند با سایر عاملها از طریق بیسیم یا فریاد زدن ارتباط برقرار کند. در شکل قبل میتوانید این عامل را که با رنگ آبی مشخص شده است مشاهده نمایید.
مرکز آتشنشانی
این عامل نیز توسط گروه امدادگر صورت میگیرد. وظیفه این عامل ایجاد هماهنگی بین عاملهای آتشنشان با هم و نیز بین عاملهای آتشنشان با سایر عاملها است. این عامل توانایی حرکت در محیط را ندارد و مکان آن ساختمانی امن در شهر است. این عامل برای برقراری ارتباط با سایر عاملها از ارتباط بیسیم استفاده میکند. در شکل بالا میتوانید این عامل را که با شکل شیر آتشنشانی مشخص شده است مشاهده نمایید.
آتشنشان
کنترل این عامل نیز توسط گروه امدادگر صورت میگیرد. وظیفه این عامل خاموش کردن آتشهای به وجود آمده در محیط شبیهسازی است. این عامل توانایی حرکت در محیط شبیهسازی را دارد، همچنین میتواند فرمانی برای پاشیدن آب به نقطهای تا حداکثر شعاع معین ارسال کند. این عامل منبعی با اندازه مشخص جهت حمل آب نیز دارد که در صورت خالی شدن این منبع فرمان پاشیدن آب عامل نادیده گرفته خواهد شد. این عامل میتواند مخزن آب خود را در پناهگاه پر کند. همچنین این عامل میتواند از طریق بیسیم و فریاد زدن با سایرین ارتباط برقرار کند. در شکل بعدی میتوانید این عامل را که با رنگ قرمز مشخص شده است در محیط شبیهسازی مشاهده نمایید.آمبولانسمبولانس این عامل نیز توسط گروه امداد کنترل میشود. وظیفه این عامل رسیدگی به وضع مصدومان میباشد. این عامل علاوه بر حرکت در محیط میتواند فرمانی مبنی بر پاکسازی آوار از روی مجروحی که در کنار وی قرار دارد به تعداد دفعات لازم ارسال نماید، سپس میتواند با ارسال فرمانی مصدوم را برداشته و به مکان امنی حمل نماید، سپس با فرمانی دیگر مصدوم را پیاده نماید. دقت داشته باشید که حال مصدوم تا زمانی که به پناهگاه نرسد تثبیت نمیشود و همواره رو به وخیمتر شدن پیش میرود. این عامل همچنین میتواند با سایر عاملها از طریق فریاد زدن و بیسیم ارتباط برقرار کند. در شکل زیر میتوانید این عامل را که با رنگ سفید مشخص شده است مشاهده نمایید.
مرکز پلیس
کنترل این عامل نیز توسط گروه امدادگر صورت میگیرد. وظیفه این عامل ایجاد هماهنگی بین عاملهای پلیس با یکدیگر و نیز بین عاملهای پلیس با سایر عاملها است. این عامل توانایی حرکت در محیط را ندارد و مکان آن ساختمانی امن در شهر است. این عامل برای برقراری ارتباط با سایر عاملها از ارتباط بیسیم استفاده میکند. در شکل زیر میتوانید این عامل را که با شکل کلاه نیروهای پلیس مشخص شده است مشاهده نمایید.
مرکز آمبولانس
کنترل این عامل نیز توسط گروه امدادگر صورت میگیرد. وظیفه این عامل ایجاد هماهنگی بین عاملهای آمبولانس با یکدیگر و نیز بین عاملهای آمبولانس با سایر عاملها است. این عامل توانایی حرکت در محیط را ندارد و مکان آن ساختمانی امن در شهر است. این عامل برای برقراری ارتباط با سایر عاملها از ارتباط بیسیم استفاده میکند. در شکل بالا میتوانید این عامل را که با شکل علامت مثبت سفیدی که درون دایره آبی رنگ مشخص شده است مشاهده نمایید.
+ ساختار RCRSS
سیستم شبیهسازی امداد از یک سری مؤلفههای جداگانه تشکیل شده است که با استفاده از پروتکل TCP با هم ارتباط دارند. این مؤلفهها شامل هسته، شبیهسازها، سیستم اطلاعات جغرافیایی، عاملهای امداد و نمایشگر میباشند.
RCRSS یک سیستم شبیهسازی توزیع شده است که هرکدام از مؤلفههای موجود در سیستم میتواند به عنوان یک برنامه مستقل روی یک سیستم مجزا اجرا شود.
در ادامه به بررسی بخشهای مختلف سیستم و معرفی هرکدام از آنها میپردازیم.
سیستم اطلاعات جغرافیایی
یکی از بخشهاي تشکیلدهنده شبیهساز امداد و نجات، سیستم اطلاعات جغرافیایی میباشد. وظیفه این سیستم فراهم کردن اطلاعات مربوط به نقشه یک شهر میباشد. تاکنون نقشه شهرهاي کوبه (ژاپن)، برلین، پاریس و تعدادي شهر دیگر طراحی و پیادهسازي شده است. همچنین ابزارهایی براي طراحی و ساخت نقشههای جدید موجود است که توسط آنها میتوان نقشههاي دیگر را ایجاد کرد.
این سیستم از دو بخش اصلی تشکیل شده است. بخش اول که در یک فایل XML ذخیره میشود در واقع شامل اطلاعات جغرافیایی مربوط به نقشه میباشد، که تحت استاندارد GML تهیه شدهاند، و بخش دوم یک نرمافزار است که توانایی خواندن و تفسیر اطلاعات نقشه را دارد.
سیستم اطلاعات جغرافیایی پس از خواندن اطلاعات نقشه آنها را براي هسته شبیهساز امداد و نجات ارسال میکند.
شبیهساز جان
وظیفه این شبیهساز محاسبه سلامتی عاملها با توجه به میزان آسیبدیدگی آنها، که خود به سه دسته آسیبدیدگی بر اثر آتش، سقوط آوار و میزان دفن شدگی تقسیم میشود، میباشد. همچنین این شبیهساز وظیفه کنترل کردن دستور ارسالی از طرف آمبولانس برای نجات عاملها از زیر آوار را به عهده دارد.
شبیهساز آتش
وظیفه این شبیهساز گسترش آتش در سطح شهر است. همچنین این شبیهساز دستور ارسالی از طرف آتشنشان مبنی بر پاشیدن آب روی ساختمان را کنترل میکند. هرگاه به میزان موردنیاز روي یک ساختمان در حال سوختن آب پاشیده شود، آن ساختمان خاموش میشود.
این شبیهساز براي گسترش آتش از دماي ساختمانها استفاده میکند. به این ترتیب که ساختمانهایی که در مجاورت آتش قرار دارند به تدریج دمايشان زیاد میشود و هنگامی که به دماي مشخصی برسند با توجه به جنس و مساحت ساختمان آتش میگیرند. این شبیهساز اثر باد را نیز شبیهسازي میکند و جهت گسترش آتش از جهت باد تأثیر میپذیرد. هر ساختمان با توجه به نوع مصالح ساختمان به میزان مشخصی میسوزد و سپس خاموش میشود.
ساختمانهایی که در اثر تمام شدن سوختنشان خاموش شدهاند دیگر مشتعل نخواهند شد. اما ساختمانهایی که در اثر پاشیدن آب روي آنها خاموش شده باشند ممکن است دوباره مشتعل شوند.
شبیهساز ترافیک
این شبیهساز وظیفه کنترل کردن حرکت عاملها در سطح شهر را بر عهده دارد.
شبیهساز آوار
وظیفه این شبیهساز محاسبه میزان تخریب ساختمانها در اثر زلزله و ایجاد آوار در سطح شهر میباشد.
شبیهساز احتراق
وظیفه این شبیهساز آتش زدن ناگهانی ساختمانها در شهر میباشد. این شبیهساز چیزي شبیه انفجار حاصل از نشت گاز را شبیهسازي میکند.
شبیهساز پاکسازی
این شبیهساز وظیفه کنترل کردن دستور ارسالی توسط پلیس مبنی بر پاکسازی سطح مسیر را به عهده دارد.
نمایشگر
این بخش وظیفه نمایش اطلاعات شبیهسازی را به صورت گرافیکی در پایان هر دوره زمانی به عهده دارد.
نتیجهگیری
درنهایت همانطور که ذکر شد ربوکاپ بستر مناسبی را جهت تحقیق، پژوهش و آموزش برای دوستداران علومی چون هوش مصنوعی و رباتیک محیا کرده است. همچنین میتوان با نگاهی گذرا به مقالات منتشر شده در ربوکاپ، متوجه شد که، ربوکاپ تاکنون به پیشرفت این علوم کمک قابل توجهی کرده است.