Mündəricat:
- Addım 1: Avadanlıq
- Addım 2: MATLAB Quraşdırması
- Addım 3: Funksiya: Hərəkət
- Addım 4: Function: Image Processing
- Addım 5: Funksiya: Xəritəçəkmə
- Addım 6: Qarşılaşma
- Addım 7: Test
- Addım 8: Nəticə
Video: Roomba Scout Explorer: 8 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Ən çox gözlənilən və ən çox araşdırılan Amerika layihələrindən biri olan Mars gəzən layihələri, arxasındakı qırmızı planetin torpaqlarını və səthlərini araşdırmaq və şərh etmək üçün yüksək texnologiyalı muxtar sistemlərin istehsalında insan nailiyyətləri oldu. yer kürəsi. Mars missiyalarına hörmətlə bağlı daha fərdi bir layihənin bir hissəsi olaraq, məqsədimiz, müəyyən bir zaman kəsiyində avtonom hərəkət edə bilən və yaxınlıqdakı müəyyən meyarlara uyğun olaraq reaksiya verə bilən bir otaqba robotu yaratmaq idi.
Unikallığa gəldikdə, biz robotun mənşəyindən götürdüyü hər yolu göstərən bir diaqram yaratmağa diqqət etdik. Bundan əlavə, robot panoramik üslubda yaxınlıqdakı obyektlərin sayını hesablaya biləcək.
Addım 1: Avadanlıq
-Əlavə Kamera ilə Rooomba (xüsusi adı məlumdur)
-Bağlı server
-İnternet bağlantısı olan Windows 10 / Mac
-Parlaq platforma
-Qaranlıq mərtəbə
-Monoxromatik dizaynlı hər hansı bir sahibsiz obyekt
Addım 2: MATLAB Quraşdırması
Roomba üçün tapşırıqlar və funksiyalar yaratmaq üçün, roomba əmrlərini ehtiva edən xüsusi kodlara və alət dəstlərinə sahib olmalısınız.
MATLAB 2016a və daha sonra endirildikdə, bu robot fayllarını ehtiva edən bir qovluq yaradın və aşağıdakı MATLAB faylını qovluğa daxil edin və qalan lazımlı roomba fayllarını quraşdırmaq üçün işlədin.
Bundan sonra, Cari Qovluq pəncərəsində sağ siçan düyməsini sıxın, "Yol əlavə et" in üzərinə gedin və "Cari Qovluq" düyməsini basın. İndi, bu faylların hər biri Roomba aktivləşdirmək üçün istifadə ediləcək bir yol qurulmalıdır.
İndi Roomba qurmaq üçün komanda pəncərəsindəki aşağıdakı əmrdən istifadə edin:
r = roomba (#).
# Simvolu, göstərilən otaq nömrəsinin 'nömrəsidir'; ancaq roomba simulyatoru istəsəniz, sadəcə aşağıdakı əmri yazın:
r = roomba (0).
Hərəkət nümunələrini sınamaq üçün simulyasiya tövsiyə olunur.
Roomba'nın hansı əmrləri yerinə yetirə biləcəyini bilmək istəyirsinizsə, aşağıdakıları əmr pəncərəsinə yazın:
sənəd otağı.
Daha ətraflı məlumat üçün aşağıdakı veb saytına daxil olun:
ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php
Addım 3: Funksiya: Hərəkət
Hərəkətlə əlaqədar olaraq, otaq girişləri verilən müəyyən bir müddət ərzində avtomatik olaraq hərəkət etməlidir. Robotun hərəkətinin məqsədi, sensorları (bamperlər, işıq tamponları və uçurum sensorları) müxtəlif maneələr olduqda dəyişəndə düzgün reaksiya verməkdir. Bu hissə, daha sonra koda daha çox xüsusiyyət əlavə olunduğundan, bütün roomba'nın əmrləri üçün əsas rolunu oynayacaq. Bəzi spesifikasiyalara ehtiyac var idi:
-Zərəri azaltmaq üçün robot sürəti daha aşağı sürətlə azaltmalıdır.
-Uçuruma və ya divara yaxınlaşanda, robot əks istiqamətdə hərəkət edəcək və təsir nöqtəsindən asılı olaraq bucağını dəyişəcək.
Bir az sürdükdən sonra, roomba nəticədə dayanacaq və ətrafdakıların şəkillərini çəkəcək
Qeyd edək ki, istifadə olunan dəyərlər simulyatorla əlaqədardır; dönmə bucaqları dönmə sürətləri və robot sensoru ön parametrləri kimi dəyərlər, avadanlıq səhvində sabitlik və mühasibatlığı təmin etmək üçün əsl robotdan istifadə edərkən dəyişdirilməlidir.
Addım 4: Function: Image Processing
İstəyə görə, bizə robotun kamerası tərəfindən alınan bir görüntünün (və ya bir neçə görüntünün) məlumatlarını dəyişdirmək tapşırığı verildi, buna görə otaq otağının görüntüdə gördüyü obyektlərin sayını "saymağa" qərar verdik.
MATLAB -ın ağ fonla ziddiyyət təşkil edən qaralmış cisimlərin ətrafında sərhəd çəkməsi texnikasına riayət etdik. Ancaq bu funksiya, kamera tərəfindən fərqli şəkillər və rənglər algılandığı üçün qeyri -adi yüksək saylarla nəticələndiyi üçün açıq bir sahədə çətinlik çəkməyə meyllidir.
Qeyd edək ki, kamera verilmədiyi üçün bu funksiya simulyatorda işləyə bilməz; cəhd edilsə, yalnız (:,:, 3) matrisin istifadə edilə biləcəyini bildirən bir səhv meydana gələcək.
Addım 5: Funksiya: Xəritəçəkmə
Robotun olmasını istədiyimiz bir əlavə xüsusiyyət, ətraf mühitlə birbaşa qarşılıqlı əlaqədə olduğu üçün yerlərini xəritələşdirmək idi. Beləliklə, aşağıdakı kod bir xəritəni açmaq və robotun tampon sensorlarının basıldığı hər yeri ətraflı şəkildə göstərən bir koordinat sistemi qurmağa çalışır. Bu, üç hissədən ayrı -ayrılıqda sınanacaq ən uzun hissə olduğunu sübut etdi, lakin son skriptə tətbiq edildikdə daha asan oldu.
Funksiyanın işləmə müddətinə bir məhdudiyyət əlavə etmək üçün while döngəsindəki n <20 limiti test məqsədləri üçün istifadə edilmişdir.
Kodun mürəkkəbliyi səbəbindən kod seqmenti uzun müddət işlədikdə daha çox səhvlərin meydana çıxdığını unutmayın; əvvəlki testlərdən on çarpma, əhəmiyyətli səhvlər meydana gəlməzdən əvvəl bal sayı kimi görünür.
Addım 6: Qarşılaşma
Bütün bunlar tək bir faylda yerləşdiriləcəyi üçün əvvəlki iki addımın hər birini alt funksiyaları olaraq istifadə edərək bir funksiya yaratdıq. "Yeniləmə" adlı redux funksiyasına aşağıdakı dəyişikliklə son bir qaralama edildi. MATLAB -da qarışıqlıq yaratmamaq üçün "sayğac" və "rombplot3" skriptləri sırasıyla əlaqədar "CountR" və "plotr" funksiyaları olaraq dəyişdirildi.
Əvvəlki skriptlərdən fərqli olaraq son versiyada bir neçə dəyişiklik edilməli idi:
-Mənşə həmişə qırmızı dairə ilə işarələnəcək
-Roomba tamponlarından hər dəfə dayananda yeri qara dairə ilə işarələnir
-Roomba uçurum sensörlərindən hər dəfə dayananda, yeri mavi bir dairə ilə işarələnir
-Roomba ərazini araşdırmağı dayandırdıqda, yer yaşıl bir dairə ilə işarələnir
-Şəkillər, nəticələrə müdaxilə etmək üçün vaxt möhürü səbəbiylə üst hissənin çıxarılması üçün dəyişdirilir
Sərhədlər, əldə edilən çox sayda rəqəm səbəbiylə bir obyekt olaraq sayılmayacaq
-Bir neçə dəyişən dəyişdirildi, buna görə də qarışıqlığın qarşısını almaq üçün yuxarıdakı versiyaları istinad üçün istifadə edin.
Addım 7: Test
Hər bir fərdi komponent üçün testlərin bəzən qarışıq olduğu ortaya çıxdı, bu səbəbdən müəyyən əvvəlcədən təyin edilmiş dəyərlərdə dəyişikliklər etmək lazım idi. Robotun qabiliyyətini qapalı bir sahədə sınamaq istədiyimiz tematik fon sadəcə daha qaranlıq bir zəminə qoyulmuş ağ lövhədən ibarət idi. Əşyaları ətrafa səpə bilərsiniz; Onları robotun hərəkət edən sahəsinə vurulacaq və ya uzaqdakı cisimlər kimi hərəkət etdirsin.
Tənzimlənən vaxtı və baza sürətini təyin etdikdən sonra, roomba hər bir "uçurumdan" və ya qaçdığı obyektdən uzaqlaşaraq, yaxınlıqda bir şey aşkar etdikdə yavaşlayaraq, adekvat hərəkət davranışı nümayiş etdirdi. İstədiyiniz üç metrlik məsafəyə çatdıqdan sonra, robot hər 45 dərəcə bölgənin şəkillərini çəkərək bölgəni dayandırmağa və qiymətləndirməyə davam edəcək və vaxt imkan verərsə irəliləyəcək. Bununla birlikdə, növbələr tələb olunduğundan daha böyük göründü, yəni koordinat məlumatları gizlədiləcək.
Hər dayananda koordinat sistemindəki mövqeyinin təxmini bölgəsinə yeni bir nöqtə qoyuldu; Bununla birlikdə, xəritənin dizaynında Roomba'nın başladığı ilkin istiqamətin əsas rol oynadığı qeyd olunur. Bir kompas xüsusiyyəti tətbiq oluna bilsəydi, bu, xəritə dizaynının həlledici bir hissəsi olaraq istifadə olunardı.
Funksiyanın tam işləməsi üçün lazım olan vaxt, hər zaman tələb olunan vaxtın üstünə çıxır, bu da onun bərpalarından birinin ortasında dayana bilməyəcəyini nəzərə alır. Təəssüf ki, şəkil saymanın bu versiyasının, xüsusən ya monoxromatik olan və ya parlaqlığı fərqli olan sahələrdə problemləri var; iki çalar arasında fərq qoymağa çalışdığı üçün arzu edilməyən cisimləri dərk etməyə meyllidir, buna görə də həmişə çox yüksək rəqəmlərə qədər sayılır.
Addım 8: Nəticə
Bu vəzifə rahatlıq sevinci gətirən çox sərgüzəştli və yaradıcı bir iş olsa da, şəxsi müşahidələrimə görə həm kodda, həm də robotun davranışında problemli ola biləcək çoxlu səhvlər görə bildim.
Zaman spesifikasiyasından istifadə müddətinin məhdudlaşdırılması, ümumi vaxtın istədiyindən daha uzun olmasına səbəb olur; panorama texnikası və görüntünün işlənməsi prosesi yavaş bir kompüter tərəfindən idarə olunarsa və ya əvvəlcədən istifadə edilməsə əslində daha uzun çəkə bilər. Bundan əlavə, təqdimatımızda istifadə olunan roomba, simulyatorla müqayisədə, xüsusən də hərəkətdə çox sayda səhvlə hərəkət etdi. Təəssüf ki, istifadə olunan robot düz sürərkən və istədiyindən daha böyük dönüşlər edərkən sola bir az əyilmə meylinə sahib idi. Bu səbəbdən və bir çox digərlərindən, bu səhvləri kompensasiya etmək üçün, dönmə bucaqları üçün dəyişikliklər edilməsi tövsiyə olunur.
Buna baxmayaraq, bu, həqiqi bir robotun davranışına birbaşa təsir etmək üçün kod və əmrləri tətbiq etmək üçün maraqlı bir öyrənmə təcrübəsi rolunu oynayan uzun, lakin intellektual stimullaşdırıcı bir layihədir.
Tövsiyə:
Roomba Bot Bulider: 5 addım (şəkillərlə birlikdə)
Roomba Bot Bulider: Bot Oluşturucu, "tutanlar" olan; Cəbhəyə bərkidilmiş əşyalar ətrafında hərəkət edə biləcək. İçindəki kod, siçanın yalnız bir klikiylə idarə edə biləcəyiniz bir GUI qutusu ilə ilk hərəkəti qeyd etmək üçün qurulmuşdur. Sonra
Roomba Explorer: 4 addım
Roomba Explorer: MATLAB və iRobotun Create2 Robotundan istifadə edərək, bu layihə naməlum yerin müxtəlif sahələrini araşdıracaq. Təhlükəli bir ərazidə manevr etmək üçün Robotdakı sensorlardan istifadə etdik. Raspberry Pi -dən fotoşəkillər və video lent əldə edərək
Internet Explorer üçün klaviatura qısa yolları!: 4 addım
Internet Explorer üçün Klaviatura Qısayolları !!: Bu Təlimat sizə internet kəşfiyyatçısı üçün faydalı klaviatura qısa yollarını göstərəcəkdir. Zəhmət olmasa kanalıma abunə olun Təşəkkürlər
Roomba'dan Roverə cəmi 5 addım !: 5 addım
Roomba'dan Roverə cəmi 5 addımda!: Roomba robotları, robotika aləmində barmaqlarınızı batırmağın əyləncəli və asan bir yoludur. Bu Təlimat kitabında, sadə bir Roombanı ətrafını eyni zamanda təhlil edən idarə olunan bir roverə necə çevirəcəyimizi ətraflı izah edəcəyik. Parça siyahısı1.) MATLAB2.) Roomb
Avtobus Pirate 3EEPROM Explorer lövhəsi: 5 addım
Bus Pirate 3EEPROM Explorer Board: Hack a Day Bus Bus Pirates -dən biriniz varsa, bununla nə edirsiniz? 3EEPROM kəşfiyyat lövhəsi ilə 1 telli, I2C və SPI EEPROMlar haqqında məlumat əldə edin (buna THR-EE-PROM deyirik) .EEPROM, məlumatları fasiləsiz olaraq saxlayan bir yaddaş çipidir