Mundarija:

Roomba Scout Explorer: 8 qadam
Roomba Scout Explorer: 8 qadam

Video: Roomba Scout Explorer: 8 qadam

Video: Roomba Scout Explorer: 8 qadam
Video: Is iRobot really superior??? #shorts #short #youtubeshorts 2024, Iyul
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

Eng ko'p kutilgan va izlanishlar olib borilgan amerikalik loyihalardan biri sifatida Mars sayyorasi loyihalari yuqori texnologiyali avtonom tizimlarni ishlab chiqarishda insoniy yutuqlarga aylandi. Yer. Mars missiyalariga bag'ishlangan shaxsiy loyihaning bir qismi sifatida, bizning maqsadimiz ma'lum vaqt oralig'ida avtonom tarzda harakat qila oladigan va uning atrofidagi ba'zi mezonlarga mos ravishda javob beradigan Roomba robotini yaratish edi.

O'ziga xoslikka kelsak, biz robotning kelib chiqishining har bir yo'lini ko'rsatadigan diagramma tuzishga e'tibor qaratdik. Bundan tashqari, robot panoramik uslubda yaqin atrofdagi ob'ektlar sonini sanash imkoniyatiga ega bo'ladi.

1 -qadam: uskunalar

-Roomba/ ulanadigan kamera (ma'lum ism bilan)

-ulangan server

-Internetga ulangan Windows 10 / Mac

-Yorqin platforma

-Qorong'i qavat

-Monoxromatik dizayndagi har qanday adashgan narsalar

2 -qadam: MATLAB -ni sozlash

MATLAB sozlamalari
MATLAB sozlamalari

Roomba uchun vazifalar va funktsiyalar yaratish uchun sizda Roomba buyruqlarini o'z ichiga olgan maxsus kodlar va asboblar to'plami bo'lishi kerak.

MATLAB 2016a va undan keyin yuklab olingan holda, ushbu robot fayllarini o'z ichiga oladigan papkani yarating va quyidagi MATLAB faylini papkaga joylashtiring va qolgan Roomba fayllarini o'rnatish uchun ishga tushiring.

Shundan so'ng, joriy papka oynasida o'ng tugmasini bosing, sichqonchani "Yo'l qo'shish" ustiga bosing va "Joriy papka" ni bosing. Endi yo'lni shunday o'rnatish kerakki, bu fayllarning har biri xonani faollashtirish uchun ishlatilsin.

Roomba -ni sozlash uchun buyruq oynasida quyidagi buyruqni ishlating:

r = xona (#).

# Belgisi - bu berilgan xonaning "raqami"; Ammo, agar siz shunchaki Roomba simulyatorini xohlasangiz, quyidagi buyruqni kiriting:

r = xona (0).

Simulyatsiya harakat modellarini sinab ko'rish uchun tavsiya etiladi.

Agar siz roomba qanday buyruqlarni bajarishi mumkinligini bilmoqchi bo'lsangiz, buyruqlar oynasiga quyidagilarni kiriting:

hujjat xonasi.

Qo'shimcha ma'lumot olish uchun quyidagi veb -saytga tashrif buyuring:

ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php

3 -qadam: Funktsiya: harakat

Funktsiya: harakat
Funktsiya: harakat
Funktsiya: harakat
Funktsiya: harakat

Harakatga kelsak, kirish joyida ko'rsatilgan vaqt oralig'ida xona avtomatik ravishda harakatlanishi kerak. Robotning harakatining maqsadi - har xil to'siqlar mavjud bo'lganda uning datchiklari (bamperlar, yorug'lik bamperlari va jarlik sezgichlari) o'zgarganda to'g'ri reaktsiya berish. Bu qism barcha Roomba buyruqlari uchun asos bo'lib xizmat qiladi, chunki keyinchalik kodga qo'shimcha funktsiyalar qo'shiladi. Ba'zi spetsifikatsiyalar kerak edi:

-Zararni kamaytirish uchun robot tezlikni past tezlikka tushirishi kerak.

-Qoya yoki devorga yaqinlashganda, robot teskari siljiydi va zarba nuqtasiga qarab burchagini o'zgartiradi.

Bir muncha vaqt o'tgach, Roomba to'xtaydi va atrofni tasvirga oladi

E'tibor bering, ishlatilgan qiymatlar simulyatorga nisbatan edi; burilish burchagi tezligi va robot sensori sozlamalari kabi qiymatlar haqiqiy robotdan foydalanilganda uskunaning xatosi uchun barqarorlik va hisobni ta'minlash uchun o'zgartirilishi kerak.

4 -qadam: Funktsiya: tasvirni qayta ishlash

Vazifasi: tasvirni qayta ishlash
Vazifasi: tasvirni qayta ishlash

Talabga binoan, biz robot kamerasi qabul qilgan tasvir ma'lumotlarini (yoki bir nechta tasvirlarni) o'zgartirish vazifasini oldik, unga binoan biz xonadagi rasmda ko'riladigan ob'ektlar sonini "sanash" ga qaror qildik.

Biz oq fonga qarama -qarshi bo'lgan qora ob'ektlar atrofida MATLAB chegaralarini chizish texnikasiga amal qildik. Biroq, bu funktsiya ochiq maydonda qiyinchiliklarga duch kelishi mumkin, chunki kamera har xil shakl va ranglarni sezadi, natijada g'ayrioddiy ko'rsatkichlar ko'payadi.

E'tibor bering, bu funksiya simulyatorda ishlay olmaydi, chunki kamera ta'minlanmagan; agar urinib ko'rilsa, faqat (:,:, 3) matritsadan foydalanish mumkin deb e'lon qilinadi.

5 -qadam: Funktsiya: xaritalash

Vazifasi: xaritalash
Vazifasi: xaritalash
Vazifasi: xaritalash
Vazifasi: xaritalash
Vazifasi: xaritalash
Vazifasi: xaritalash
Vazifasi: xaritalash
Vazifasi: xaritalash

Robotning biz xohlagan yana bir xususiyati - bu atrof -muhit bilan bevosita aloqada bo'lgani uchun uning joylashishini xaritalash edi. Shunday qilib, quyidagi kod xaritani ochish va robotning bamper sensorlari bosilgan har bir joyni batafsil ko'rsatadigan koordinata tizimini o'rnatishga intiladi. Bu uchta qismning alohida sinovi uchun eng uzun qismi bo'lib chiqdi, lekin yakuniy skriptga qo'llanganda ancha sodda bo'ldi.

Funktsiyaning ishlash vaqtiga cheklov qo'shish uchun, test uchun n loop vaqtidagi n <20 chegarasi ishlatilgan.

Shuni yodda tutingki, kodning murakkabligi tufayli kod segmenti uzoq vaqt ishlayotganda ko'proq xatolar paydo bo'ladi; oldingi testlardan, o'nta zarba muhim xatolar paydo bo'lishidan oldin ballar soni kabi ko'rinadi.

6 -qadam: yonma -yon joylashish

Qatnashish
Qatnashish
Qatnashish
Qatnashish
Qatnashish
Qatnashish
Qatnashish
Qatnashish

Bularning barchasi bitta faylga joylashtirilganligi sababli, biz oldingi ikkita bosqichning har birini pastki funktsiyalari sifatida ishlatganmiz. Oxirgi qoralama "rekon" deb nomlangan redux funktsiyasiga quyidagi o'zgartirishlar kiritildi. MATLAB -ni chalkashtirib yubormaslik uchun "hisoblagich" va "rombplot3" skriptlari mos ravishda "CountR" va "plotr" o'rnatilgan funktsiyalari deb o'zgartirildi.

Oldingi skriptlardan farqli o'laroq, oxirgi versiyada bir nechta o'zgartirishlar kiritilishi kerak edi:

-Kelib chiqishi har doim qizil doira bilan belgilanadi

-Har safar xonaning tamponidan to'xtagan joyi qora doira bilan belgilanadi

-Har safar xona sensori uzilib qolganda, joy ko'k doira bilan belgilanadi

-Har safar xonani tekshirishni to'xtatganda, joy yashil doira bilan belgilanadi

-Vaqt tamg'asi natijalarga xalaqit berishi mumkinligi sababli tasvirlar yuqori qismini olib tashlash uchun o'zgartiriladi

-Chegaralar sotib olingan sonlar ko'pligi sababli ob'ekt sifatida hisobga olinmaydi

-Bir nechta o'zgaruvchilar o'zgartirildi, shuning uchun chalkashliklarni oldini olish uchun ma'lumot olish uchun yuqoridagi versiyalardan foydalaning.

7 -qadam: sinov

Sinov
Sinov

Ba'zida har bir komponent uchun testlar bir -biriga aralashib ketgan, shuning uchun oldindan o'rnatilgan qiymatlarni o'zgartirish kerak edi. Biz robotning imkoniyatlarini yopiq maydonda sinab ko'rmoqchi bo'lgan tematik fon shunchaki ancha qorong'i polga qo'yilgan doskadan iborat edi. Siz ob'ektlarni atrofga tarqatishingiz mumkin; ularni robotning harakatlanadigan joyiga uriladigan yoki undan uzoqlashadigan ob'ektlar vazifasini bajaradi.

O'zining tartibga solingan vaqtini va tezligini belgilab qo'ygandan so'ng, Roomba har qanday "jarlik" dan yoki ob'ektdan to'xtab, orqaga chekinib, harakatlanayotganini ko'rsatdi, shuningdek, yaqin atrofdagi biror narsani sezganda sekinlashdi. Uch metrlik kerakli masofaga etib borgach, robot to'xtab, maydonni baholab, har 45 graduslik hududni tasvirga oladi va vaqt imkon bersa, oldinga siljiydi. Biroq, uning burilishlari talab qilinganidan kattaroq bo'lib chiqdi, ya'ni koordinata ma'lumotlari yashirin bo'ladi.

Har safar to'xtaganda, koordinatalar tizimida o'z pozitsiyasining taxminiy hududiga yangi nuqta qo'yiladi; ammo, ta'kidlanishicha, Roomba boshlang'ich yo'nalishi xaritani tuzishda hal qiluvchi rol o'ynaydi. Agar kompas funksiyasini amalga oshirish mumkin bo'lsa, u xarita dizaynining hal qiluvchi qismi sifatida ishlatilgan bo'lar edi.

Funktsiyaning to'liq ishlashi uchun zarur bo'lgan vaqt har doim so'ralgan vaqtdan oshib ketadi, bu uning tiklanishining birida to'xtab qolmasligini hisobga olgan holda mantiqan to'g'ri keladi. Afsuski, tasvirni hisoblashning bu versiyasi, ayniqsa, asosan monoxromatik yoki yorqinligi har xil bo'lgan sohalarda o'z muammolariga ega; chunki u ikkita soyani ajratishga harakat qilganda, u istalmagan narsalarni sezishga intiladi, shuning uchun u har doim aql bovar qilmaydigan darajada ko'p sonlarni hisoblab chiqadi.

8 -qadam: Xulosa

Xulosa
Xulosa

Bu vazifa quvonch keltiradigan juda sarguzashtli va ijodiy ish bo'lsa -da, men shaxsiy kuzatishlarimga ko'ra, robotning kodida ham, xatti -harakatlarida ham juda ko'p xatolarga yo'l qo'yadigan xatolarni ko'rdim.

Vaqt spetsifikatsiyasini vaqt cheklovidan foydalanishni cheklash, umumiy vaqtni xohlagan vaqtidan uzun bo'lishiga olib keladi; panorama texnikasi va tasvirni qayta ishlash jarayoni, agar sekin kompyuterda ishlasa yoki undan oldin ishlatilmasa, aslida ko'proq vaqt talab qilishi mumkin. Bundan tashqari, bizning taqdimotimizda ishlatilgan roomba simulyatorga qaraganda, ayniqsa, harakatda juda ko'p xatolarga yo'l qo'ydi. Afsuski, ishlatilgan robot bir oz chapga egilishga moyil edi, chunki u to'g'ri haydab, xohlaganidan kattaroq burilishlar qildi. Shu sababli va boshqa ko'plab xatolarni bartaraf etish uchun uning burilish burchagiga o'zgartirishlar kiritish tavsiya etiladi.

Shunga qaramay, bu uzoq, lekin intellektual rag'batlantiruvchi loyiha bo'lib, u haqiqiy robotning xatti -harakatlariga to'g'ridan -to'g'ri ta'sir qilish uchun kodlar va buyruqlarni qo'llashda qiziqarli o'rganish tajribasi bo'lib xizmat qildi.

Tavsiya: