فهرست مطالب:
- مرحله 1: تجهیزات
- مرحله 2: راه اندازی متلب
- مرحله 3: عملکرد: حرکت
- مرحله 4: عملکرد: پردازش تصویر
- مرحله 5: عملکرد: نقشه برداری
- مرحله ششم: کنار هم قرار گرفتن
- مرحله 7: آزمایش
- مرحله 8: نتیجه گیری
تصویری: Roomba Scout Explorer: 8 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
پروژه های مریخ نورد مریخ به عنوان یکی از مورد انتظارترین و بسیار مورد بررسی پروژه های آمریکایی ، دستاوردهای بشر در تولید روزافزون سیستم های خودران با تکنولوژی بالا و تنها هدف بررسی و تفسیر خشکی ها و سطوح سیاره سرخ در پشت زمین بوده است. زمین. به عنوان بخشی از یک پروژه شخصی تر به منظور ادای احترام به مأموریت های مریخ ، هدف ما ایجاد یک ربات roomba بود که بتواند در یک بازه زمانی مشخص به طور مستقل عمل کرده و بر اساس معیارهای معینی در مجاورت آن واکنش نشان دهد.
در مورد منحصر به فرد بودن ، ما روی ایجاد نمودار تمرکز کردیم که هر مسیری را که ربات از مبدا خود می گیرد نشان می دهد. علاوه بر این ، ربات قادر خواهد بود تعداد اشیاء در مجاورت خود را به صورت پانوراما شمارش کند.
مرحله 1: تجهیزات
-Roomba با دوربین قابل اتصال (با نام خاص شناخته شده)
-سرور متصل
-Windows 10 / Mac با اتصال به اینترنت
سکوی روشن
-کف تاریک
-هر شیء سرگردان با طراحی تک رنگ
مرحله 2: راه اندازی متلب
به منظور ایجاد وظایف و عملکردها برای اتاق خود ، باید کدها و ابزارهای خاصی حاوی دستورات roomba را داشته باشید.
با MATLAB 2016a و بارگیری مجدد ، پوشه ای ایجاد کنید که حاوی این فایلهای ربات باشد و فایل MATLAB زیر را در پوشه وارد کرده و آن را اجرا کنید تا فایلهای باقی مانده roomba لازم را نصب کنید.
پس از آن ، روی پنجره Current Folder راست کلیک کنید ، موس خود را روی "Add a Path" قرار دهید و روی "پوشه جاری" کلیک کنید. در حال حاضر ، مسیری باید طوری تنظیم شود که هریک از این فایل ها برای فعال سازی roomba استفاده شود.
اکنون ، از دستور زیر در پنجره فرمان برای راه اندازی roomba استفاده کنید:
r = roomba (#).
نماد # "شماره" اتاق اتاق مشخص شده است. با این حال ، اگر شما فقط شبیه ساز roomba را می خواهید ، کافی است دستور زیر را تایپ کنید:
r = roomba (0).
شبیه سازی برای آزمایش الگوهای حرکتی توصیه می شود.
اگر کنجکاو هستید که roomba چه دستوراتی را می تواند دنبال کند ، موارد زیر را در پنجره فرمان تایپ کنید:
داک اتاقبا
برای جزئیات بیشتر به وب سایت زیر مراجعه کنید:
ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php
مرحله 3: عملکرد: حرکت
در مورد حرکت ، اتاقک باید به طور خودکار برای مدت زمان مشخصی که در ورودی ها ذکر شده است حرکت کند. هدف حرکت ربات این است که وقتی حسگرهای آن (ضربه گیرها ، سپرهای نور و سنسورهای صخره ای) در حضور موانع مختلف تغییر می کند ، واکنش مناسبی نشان دهد. این قسمت به عنوان پایه ای برای همه دستورات roomba عمل می کند زیرا بعداً ویژگی های بیشتری به کد اضافه می شود. برخی از مشخصات مورد نیاز بود:
-برای کاهش آسیب ، ربات باید سرعت را به سرعت کمتری کاهش دهد.
هنگام نزدیک شدن به صخره یا دیوار ، ربات برعکس حرکت می کند و بسته به نقطه برخورد ، زاویه خود را تغییر می دهد.
-بعد از مدتی رانندگی ، در نهایت roomba متوقف شده و از محیط اطراف عکس می گیرد
توجه داشته باشید که مقادیر مورد استفاده در رابطه با شبیه ساز بود. هنگام اطمینان از ثبات و حسابداری خطای تجهیزات ، هنگام استفاده از ربات واقعی ، مقادیری مانند زاویه چرخش سرعت چرخش و تنظیمات از پیش تعیین شده سنسور ربات باید تغییر یابد.
مرحله 4: عملکرد: پردازش تصویر
طبق درخواست ، ما وظیفه داشتیم داده های یک تصویر (یا چندین تصویر) را که توسط دوربین ربات دریافت شده بود ، تغییر دهیم ، به همین دلیل تصمیم گرفتیم که roomba تعداد اشیایی را که در تصویر می بیند "شمارش" کند.
ما از این تکنیک استفاده کردیم که متلب مرزهای اطراف اشیاء سیاه شده را که با زمینه سفید در تضاد هستند ترسیم کند. با این حال ، این عملکرد مستعد مشکل در یک ناحیه باز است زیرا اشکال و رنگ های مختلف توسط دوربین درک می شوند ، که منجر به شمارش غیرمعمول بالا می شود.
توجه داشته باشید که این عملکرد نمی تواند در شبیه ساز کار کند زیرا دوربین ارائه نشده است. در صورت تلاش ، خطایی رخ می دهد که فقط می توان از ماتریس (: ،: ، 3) استفاده کرد.
مرحله 5: عملکرد: نقشه برداری
یکی دیگر از ویژگی هایی که ما می خواستیم ربات داشته باشد ، نقشه برداری از مکان های آن به عنوان تعامل مستقیم با محیط است. بنابراین ، کد زیر به دنبال بازکردن نقشه و راه اندازی یک سیستم مختصات است که جزئیات هر مکانی را که در آن سنسورهای سپر ربات فشرده می شوند ، مشخص می کند. این طولانی ترین قسمت از این سه قسمت است که به صورت جداگانه آزمایش می شود ، اما وقتی در اسکریپت نهایی اعمال می شود بسیار ساده تر می شود.
به منظور افزودن محدودیت به طول زمان اجرای تابع ، از محدوده n <20 در حلقه while برای آزمایش استفاده شد.
به خاطر داشته باشید که به دلیل پیچیدگی کد ، با اجرای قطعه کد برای مدت طولانی خطاهای بیشتری رخ می دهد. از آزمایش های قبلی ، به نظر می رسد ده ضربه قبل از وقوع خطاهای قابل توجه ، تعداد نقاط باشد.
مرحله ششم: کنار هم قرار گرفتن
از آنجا که همه اینها در یک فایل واحد قرار می گیرد ، ما یک تابع با استفاده از هر یک از دو مرحله قبلی به عنوان زیر مجموعه های آن ایجاد کردیم. یک پیش نویس نهایی با اصلاح زیر در تابع redux به نام "recon" ساخته شد. برای جلوگیری از سردرگمی در MATLAB ، اسکریپت های "counter" و "rombplot3" به ترتیب به عنوان توابع تعبیه شده "CountR" و "plotr" تغییر نام دادند.
برخلاف اسکریپت های قبلی ، چندین نسخه باید در نسخه نهایی اعمال می شد:
-منبع همیشه با یک دایره قرمز مشخص می شود
-هربار که اتاقی از ضربه گیرهای آن متوقف می شود ، محل آن با یک دایره سیاه مشخص می شود
-هربار که اتاقی از سنسورهای صخره ای خود می ایستد ، مکان با یک دایره آبی مشخص می شود
-هربار که roomba از بررسی منطقه متوقف می شود ، مکان با یک دایره سبز مشخص می شود
-تصاویر به گونه ای اصلاح شده اند که قسمت بالایی برداشته شود زیرا مهر زمان به طور بالقوه با نتایج تداخل دارد
به دلیل اعداد نسبتاً زیاد ، مرزها به عنوان یک شی محسوب نمی شوند
چندین متغیر تغییر کرده است ، بنابراین برای جلوگیری از سردرگمی از نسخه های بالا برای مرجع استفاده کنید.
مرحله 7: آزمایش
آزمایشات برای هر جزء جداگانه گاهی اوقات مخلوط می شود ، به همین دلیل اصلاح برخی از مقادیر از پیش تعیین شده ضروری بود. زمینه موضوعی که می خواستیم قابلیت های ربات را در یک منطقه بسته آزمایش کنیم ، به سادگی شامل یک تخته سفید بود که روی یک طبقه بسیار تیره تر قرار گرفته بود. شما می توانید اشیاء را در اطراف منطقه پراکنده کنید. آنها را به عنوان اجسامی برای برخورد یا اجسام دور از منطقه متحرک ربات عمل کنید.
بعد از تنظیم زمان و سرعت تنظیم شده ، roomba رفتار حرکتی مناسبی از خود نشان داد ، از هر "صخره" یا جسمی که در آن گیر می کند متوقف شده و عقب می رود و همچنین با تشخیص چیزی در نزدیکی سرعت خود را کاهش می دهد. با رسیدن به مسافت سه متری مورد نظر ، روبات با توقف و ارزیابی منطقه ، از هر ناحیه 45 درجه عکس می گیرد و در صورت اجازه زمان به جلو حرکت می کند. با این حال ، نوبت های آن بزرگتر از آنچه درخواست شده بود ، به این معنی که داده های مختصات مبهم می شوند.
هر بار که متوقف می شود ، یک نقطه جدید در منطقه تقریبی موقعیت خود در سیستم مختصات قرار می گیرد. با این حال ، ذکر شده است که جهت اولیه ای که roomba شروع می کند نقشی محوری در طراحی نقشه دارد. اگر می توان یک ویژگی قطب نما را پیاده سازی کرد ، از آن به عنوان بخش مهمی در طراحی نقشه استفاده می شد.
زمان واقعی عملکرد برای اجرای کامل همیشه بیشتر از زمان درخواست شده است ، که با توجه به اینکه نمی تواند در میانه یکی از بازیابی های آن متوقف شود منطقی است. متأسفانه ، این نسخه از شمارش تصویر مشکلات خود را دارد ، به ویژه در مناطقی که عمدتا تک رنگ هستند یا از نظر روشنایی متفاوت هستند. از آنجا که سعی می کند بین دو سایه تمایز قائل شود ، تمایل دارد اجسامی را که مورد نظر نیستند تشخیص دهد ، بنابراین همیشه اعداد فوق العاده زیادی را به حساب می آورد.
مرحله 8: نتیجه گیری
در حالی که این کار یک کار بسیار ماجراجویانه و خلاقانه بود که باعث شادی و آرامش می شد ، من ، از مشاهدات شخصی خود ، می توانم تعداد زیادی خطا ببینم که می تواند مشکل ساز باشد ، هم در کد و هم در رفتار ربات.
محدودیت استفاده از مشخصات زمان در حلقه while باعث می شود که کل زمان بیشتر از زمان مورد نظر باشد. فرآیند تکنیک پانوراما و پردازش تصویر در واقع اگر توسط رایانه ای کند اجرا شود یا قبلاً مورد استفاده قرار نگیرد ، می تواند طولانی تر شود. علاوه بر این ، roomba که در ارائه ما مورد استفاده قرار گرفت با تعداد زیادی خطا ، به ویژه در حرکت ، در مقایسه با شبیه ساز عمل کرد. متأسفانه رباتی که مورد استفاده قرار گرفت ، تمایل داشت کمی به چپ متمایل شود ، زیرا مستقیم حرکت می کرد و دور بزرگتر از حد دلخواه می چرخاند. به همین دلیل و بسیاری دیگر ، بسیار توصیه می شود که برای جبران این خطاها ، نیاز به تغییر در زاویه چرخش آن باشد.
با این وجود ، این یک پروژه طولانی و در عین حال تحریک کننده فکری است که به عنوان یک تجربه یادگیری جالب برای استفاده از کدها و دستورات برای تأثیر مستقیم بر رفتار یک ربات واقعی عمل کرده بود.
توصیه شده:
Roomba کنترل شده MATLAB: 5 مرحله
Roomba کنترل شده MATLAB: هدف این پروژه استفاده از MATLAB و همچنین یک روبات قابل برنامه ریزی iRobot است. گروه ما مهارت های برنامه نویسی ما را ترکیب کرد تا یک اسکریپت MATLAB ایجاد کند که از بسیاری از عملکردهای iRobot استفاده می کند ، از جمله سنسورهای صخره ای ، حس سپر
Roomba Explorer: 4 مرحله
Roomba Explorer: با استفاده از MATLAB و iRobot's Robot Create2 ، این پروژه مناطق مختلف یک مکان ناشناخته را کاوش می کند. ما از حسگرهای روی ربات برای کمک به مانور در یک منطقه خطرناک استفاده کردیم. با گرفتن عکس و ویدئو از رزبری پای که
میانبرهای صفحه کلید برای Internet Explorer !!: 4 مرحله
میانبرهای صفحه کلید برای Internet Explorer !!: این دستورالعمل تعدادی میانبر صفحه کلید مفید برای Internet Explorer به شما نشان می دهد لطفاً در کانال من مشترک شوید با تشکر
از Roomba تا Rover فقط در 5 مرحله !: 5 مرحله
از Roomba تا Rover تنها در 5 مرحله !: روباتهای Roomba یک راه سرگرم کننده و آسان برای فرو بردن انگشتان پای شما در دنیای رباتیک هستند. در این دستورالعمل ، ما نحوه تبدیل یک Roomba ساده به یک مریخ نورد قابل کنترل که به طور همزمان محیط اطراف خود را تجزیه و تحلیل می کند ، توضیح خواهیم داد. لیست قسمت ها 1.) MATLAB2.) Roomb
Bus Pirate 3EEPROM Explorer Board: 5 مرحله
Bus Pirate 3EEPROM Explorer Board: اگر یکی از دزدان دریایی Hack a Day's Bus را دارید ، با آن چه می کنید؟ با بورد کاوشگر 3EEPROM (که ما آن را THR-EE-PROM می نامیم) در مورد 1 سیم ، I2C و SPI EEPROM اطلاعات کسب کنید. EEPROM یک نوع تراشه حافظه است که داده ها را بدون قدرت مداوم ذخیره می کند