فهرست مطالب:
- مرحله 1: راه اندازی اولیه و حسگرها
- مرحله 2: به دست آوردن داده ها
- مرحله 3: پایان ماموریت
- مرحله 4: نتیجه گیری
تصویری: Roomba Explorer: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
با استفاده از MATLAB و iRobot's Robot Create2 ، این پروژه مناطق مختلف یک مکان ناشناخته را کاوش می کند. ما از حسگرهای روی ربات برای کمک به مانور در یک زمین خطرناک استفاده کردیم. با گرفتن عکس ها و ویدئو از رزبری پای که ضمیمه شده است ، ما توانستیم موانعی را که روبات با آن روبرو خواهد شد تعیین کنیم و آنها طبقه بندی می شوند.
قطعات و مواد
برای این پروژه ، شما نیاز دارید
-یک کامپیوتر
-جدیدترین نسخه MATLAB (MATLAB R2018b برای این پروژه استفاده شد)
- roomba جعبه ابزار را نصب کنید
ربات -iRobot's Create2
تمشک پای با دوربین
مرحله 1: راه اندازی اولیه و حسگرها
قبل از شروع برنامه نویسی ، جعبه ابزار roombaInstall را بارگیری کردیم که به اجزای مختلف ربات اجازه دسترسی می داد.
در ابتدا ، ما یک GUI برای راه اندازی اولیه هر ربات ایجاد کردیم. برای انجام این کار ، باید شماره Robot را به عنوان ورودی وارد کنید. این به برنامه اجازه می دهد تا برنامه خود را به رباتی که روی آن مانور داده و مانور بسیاری از مناطق مختلف را پیدا می کند ، اجرا کند. ما سنسورهای Cliff ، Light Bump Sensors و Physical Bump سنسورها را با استفاده از خروجی های آنها برای حرکت روبات و تغییر سرعت و جهت آن پیاده کردیم. هنگامی که هر یک از شش سنسور نور ضربه ای در حال تشخیص یک شی هستند ، مقدار خروجی آنها کاهش می یابد و باعث می شود سرعت ربات کاهش یابد تا از برخورد کامل جلوگیری شود. هنگامی که بالاخره روبات با مانعی برخورد می کند ، حسگرهای Physical Bump مقدار بیش از صفر را گزارش می دهند. به همین دلیل ، ربات متوقف می شود ، بنابراین هیچ برخورد دیگری وجود ندارد و می توان عملکردهای بیشتری را وارد عمل کرد. برای سنسورهای صخره ای ، آنها روشنایی منطقه اطراف خود را می خوانند. اگر مقدار بیشتر از 2800 باشد ، ما تعیین کردیم که ربات در زمین پایدار و ایمن خواهد بود. اما ، اگر مقدار کمتر از 800 باشد ، سنسورهای صخره ای یک صخره را تشخیص می دهند و بلافاصله متوقف می شوند تا سقوط نکنند. هر مقدار در این بین نشان دهنده آب است و باعث می شود که ربات عملکرد خود را متوقف کند. با استفاده از سنسورهای فوق ، سرعت ربات تغییر می کند و به ما این امکان را می دهد که هرگونه خطری را بهتر تشخیص دهیم.
در زیر کد (از MATLAB R2018b) آمده است
٪٪ مقداردهی اولیه
dlgPrompts = {'شماره Roomba'}؛
dlgTitle = 'Roomba خود را انتخاب کنید'؛
dlgDefaults = {""}؛
opts. Resize = 'روشن'؛
dlgout = inputdlg (dlgPrompts، dlgTitle، 1، dlg پیش فرض ها ، انتخاب ها)٪ ایجاد پنجره ای که از کاربر درخواست می کند شماره roomba خود را وارد کند
n = str2double (dlgout {1}) ؛
r = roomba (n) ؛ ٪ Roomba تعیین شده توسط کاربر ٪٪ تعیین سرعت را از سنسورهای ضربات نور در حالی که واقعی است s = r.getLightBumpers؛ ٪ دارای سنسور ضربه گیر نور هستند
lbumpout_1 = extractfield (s، 'left')؛ ٪ مقدار عددی سنسورها را گرفته و آنها را بیشتر قابل استفاده می کند lbumpout_2 = extractfield (s، 'leftFront')؛
lbumpout_3 = extractfield (s، 'leftCenter')؛
lbumpout_4 = extractfield (s، 'rightCenter')؛
lbumpout_5 = extractfield (s ، 'rightFront')؛
lbumpout_6 = extractfield (s ، 'right')؛
lbout = [lbumpout_1 ، lbumpout_2 ، lbumpout_3 ، lbumpout_4 ، lbumpout_5 ، lbumpout_6]٪ مقادیر را به ماتریس تبدیل می کند
sLbump = مرتب سازی (lbout) ؛ ٪ مرتب سازی ماتریس به کمترین مقدار را می توان استخراج کرد
lowLbump = sLbump (1) ؛ سرعت =.05+(lowLbump)*. 005٪ با استفاده از کمترین مقدار ، که نشان دهنده موانع نزدیک است ، برای تعیین سرعت ، سرعت بالاتر هنگامی که هیچ چیز تشخیص داده نمی شود
r.setDriveVelocity (سرعت ، سرعت)
پایان
٪ ضربه گیر فیزیکی
b = r.getBumpers ؛ ٪ خروجی درست ، نادرست
bsen_1 = extractfield (b ، 'left')
bsen_2 = extractfield (b ، 'right')
bsen_3 = extractfield (b ، 'front')
bsen_4 = extractfield (b ، 'leftWheelDrop')
bsen_5 = extractfield (b ، 'rightWheelDrop')
bumps = [bsen_1 ، bsen_2 ، bsen_3 ، bsen_4 ، bsen_5] tbump = مجموع (bums)
if tbump> 0 r.setDriveVelocity (0 ، 0)
پایان
٪ سنسورهای صخره ای
c = r.getCliffSensors ٪٪ 2800 سالم ، در غیر این صورت آب
csen_1 = extractfield (c ، 'left')
csen_2 = extractfield (c ، 'right')
csen_3 = extractfield (c ، 'leftFront')
csen_4 = extractfield (c ، 'rightFront')
صخره = [csen_1 ، csen_2 ، csen_3 ، csen_4]
ordcliff = مرتب سازی (صخره ها)
اگر ordcliff (1) <2750
r.setDriveVelocity (0 ، 0)
اگر صخره <800
دیپ 'صخره'
دیگری
پخش کردن "آب"
پایان
r TurnAngle (45)
پایان
مرحله 2: به دست آوردن داده ها
پس از خراب شدن سنسورهای فیزیکی ضربه ، روبات رزبری پای خود را برای عکاسی از موانع پیاده می کند. پس از گرفتن عکس ، با استفاده از تشخیص متن در صورت وجود متن در تصویر ، روبات تعیین می کند که مانع چیست و مانع چه می گوید.
img = r.getImage؛ imshow (img)؛
imwrite (img، 'imgfromcamera.jpg')
photo = imread ('imgfromcamera.jpg')
ocrResults = ocr (عکس)
nasText = ocrResults. Text؛
شکل؛
نمایش تصویر (عکس) (220 ، 0 ، شناخته شده متن ، 'BackgroundColor' ، [1 1 1]) ؛
مرحله 3: پایان ماموریت
هنگامی که ربات تشخیص می دهد که مانع خانه است ، ماموریت خود را به پایان می رساند و در خانه می ماند. پس از اتمام ماموریت ، روبات یک ایمیل هشدار می دهد که به خانه بازگشته است و تصاویری را که در طول سفر گرفته است ارسال می کند.
٪ ارسال ایمیل
setpref ("اینترنت" ، "SMTP_Server" ، "smtp.gmail.com") ؛
setpref ("اینترنت" ، "E_mail" ، "[email protected]") ؛ ٪ ایمیل برای ارسال از setpref ("اینترنت" ، "SMTP_Username" ، "وارد کردن ایمیل فرستنده") ؛ ٪ فرستنده نام کاربری setpref ("اینترنت" ، "SMTP_Password" ، "وارد کردن رمز فرستنده") ؛ ٪ رمز عبور فرستندگان
props = java.lang. System.getProperties؛ props.setProperty ('mail.smtp.auth' ، 'true') ؛ props.setProperty ('mail.smtp.socketFactory.class' ، 'javax.net.ssl. SSLSocketFactory') ؛ props.setProperty ('mail.smtp.socketFactory.port' ، '465') ؛
sendmail ('ایمیل دریافتی را وارد کنید' ، 'Roomba' ، 'Roomba به خانه بازگشت !!' ، 'imgfromcamera.jpg')٪ حساب ایمیل برای ارسال به
سپس ربات به پایان می رسد.
مرحله 4: نتیجه گیری
برنامه متلب شامل کل اسکریپتی است که با ربات استفاده شده است. در پیش نویس نهایی ، مطمئن شوید که تمام کد ، به جز مرحله مقداردهی اولیه ، را در یک حلقه while قرار دهید تا مطمئن شوید ضربه گیرها دائما در حال کار هستند. این برنامه را می توان متناسب با نیازهای کاربر ویرایش کرد. پیکربندی ربات ما نشان داده شده است.
*یادآوری: فراموش نکنید که جعبه ابزار roombaInstall برای ارتباط متلب با ربات و رزبری پای روی برد لازم است.
توصیه شده:
Roomba کنترل شده MATLAB: 5 مرحله
Roomba کنترل شده MATLAB: هدف این پروژه استفاده از MATLAB و همچنین یک روبات قابل برنامه ریزی iRobot است. گروه ما مهارت های برنامه نویسی ما را ترکیب کرد تا یک اسکریپت MATLAB ایجاد کند که از بسیاری از عملکردهای iRobot استفاده می کند ، از جمله سنسورهای صخره ای ، حس سپر
میانبرهای صفحه کلید برای Internet Explorer !!: 4 مرحله
میانبرهای صفحه کلید برای Internet Explorer !!: این دستورالعمل تعدادی میانبر صفحه کلید مفید برای Internet Explorer به شما نشان می دهد لطفاً در کانال من مشترک شوید با تشکر
Roomba Scout Explorer: 8 مرحله
Roomba Scout 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 یک نوع تراشه حافظه است که داده ها را بدون قدرت مداوم ذخیره می کند