Isi kandungan:

Penjelajah Pengakap Roomba: 8 Langkah
Penjelajah Pengakap Roomba: 8 Langkah

Video: Penjelajah Pengakap Roomba: 8 Langkah

Video: Penjelajah Pengakap Roomba: 8 Langkah
Video: Bangunan || Tinggal || Pengakap 2024, November
Anonim
Penjelajah Pengakap Roomba
Penjelajah Pengakap Roomba

Sebagai salah satu projek Amerika yang paling dinanti-nantikan dan sangat diteliti, projek Mars rover telah menjadi pencapaian manusia dalam pengeluaran sistem autonomi berteknologi tinggi yang terus maju dengan tujuan tunggal untuk menyiasat dan menafsirkan daratan dan permukaan planet merah di belakang Bumi. Sebagai sebahagian daripada projek yang lebih peribadi sebagai penghormatan kepada misi Mars, objektif kami adalah untuk membuat robot roomba yang dapat bertindak secara autonomi dalam jangka masa tertentu dan bertindak balas sesuai dengan kriteria tertentu di sekitarnya.

Mengenai keunikan, kami memfokuskan diri untuk membuat gambarajah yang menunjukkan setiap jalan yang diambil robot dari asalnya. Sebagai tambahan, robot akan dapat mengira jumlah objek di sekitarnya dengan gaya panorama.

Langkah 1: Peralatan

-Roomba w / Kamera Terlampir (dengan nama tertentu diketahui)

-Pelayan Bersambung

-Windows 10 / Mac dengan sambungan Internet

- Platform yang baik

- Lantai gelap

-Setiap objek sesat dari reka bentuk monokromatik

Langkah 2: Persediaan MATLAB

Persediaan MATLAB
Persediaan MATLAB

Untuk membuat tugas dan fungsi untuk roomba anda, anda mesti mempunyai kod dan toolkit khusus yang mengandungi perintah roomba.

Dengan MATLAB 2016a dan seterusnya dimuat turun, buat folder untuk memuat fail robot ini dan masukkan fail MATLAB berikut di bawah ke dalam folder dan jalankan untuk memasang fail roomba yang diperlukan.

Selepas itu, klik kanan pada tetingkap Folder Semasa, arahkan tetikus anda ke atas "Tambah Laluan" dan klik "Folder Semasa." Sekarang, jalur harus disiapkan sedemikian rupa sehingga setiap fail ini akan digunakan untuk mengaktifkan roomba.

Sekarang, gunakan perintah di bawah di tetingkap perintah untuk menyiapkan roomba:

r = roomba (#).

Simbol # adalah 'nombor' roomba yang ditentukan; namun, jika anda hanya mahukan simulator roomba, ketik perintah berikut:

r = roomba (0).

Simulasi akan disarankan untuk menguji corak pergerakan.

Sekiranya anda ingin tahu apa perintah yang dapat diikuti oleh roomba, ketikkan yang berikut ke dalam tetingkap arahan:

doc roomba.

Untuk maklumat lebih lanjut, lawati laman web berikut:

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

Langkah 3: Fungsi: Pergerakan

Fungsi: Pergerakan
Fungsi: Pergerakan
Fungsi: Pergerakan
Fungsi: Pergerakan

Berkenaan dengan pergerakan, roomba harus bergerak secara otomatis untuk jangka waktu yang ditentukan yang diberikan dalam input. Tujuan pergerakan robot adalah untuk bertindak balas dengan betul apabila sensornya (bumper, bumper cahaya dan sensor tebing) berubah dengan adanya pelbagai halangan. Bahagian ini akan berfungsi sebagai asas untuk semua perintah roomba kerana lebih banyak ciri kod akan ditambahkan kemudian. Beberapa spesifikasi diperlukan:

-Untuk mengurangkan kerosakan, robot mesti mengurangkan kelajuan ke halaju yang lebih rendah.

-Apabila mendekati tebing atau dinding, robot akan bergerak secara terbalik dan mengubah sudut bergantung pada titik hentaman

-Setelah beberapa waktu memandu, roomba akhirnya akan berhenti dan mengambil gambar kawasan sekitarnya

Perhatikan bahawa nilai yang digunakan berkaitan dengan simulator; nilai seperti kelajuan putaran sudut putaran dan preset sensor robot harus diubah suai semasa menggunakan robot sebenar untuk memastikan kestabilan dan perakaunan untuk kesalahan peralatan.

Langkah 4: Fungsi: Pemprosesan Imej

Fungsi: Pemprosesan Imej
Fungsi: Pemprosesan Imej

Sesuai permintaan, kami ditugaskan untuk mengubah data gambar (atau beberapa gambar) yang diterima oleh kamera robot, yang kami memutuskan untuk membuat roomba "menghitung" jumlah objek yang dilihatnya dalam gambar.

Kami mengikuti teknik membuat MATLAB menarik sempadan di sekitar objek yang menghitam yang berbeza dengan latar belakang putih. Namun, fungsi ini cenderung mengalami kesulitan di kawasan terbuka kerana berbagai bentuk dan warna yang dirasakan oleh kamera, menghasilkan jumlah yang sangat tinggi.

Perhatikan bahawa fungsi ini tidak dapat berfungsi di simulator kerana kamera tidak disediakan; jika dicuba, kesalahan akan berlaku menyatakan hanya matriks (:,:, 3) yang dapat digunakan.

Langkah 5: Fungsi: Pemetaan

Fungsi: Pemetaan
Fungsi: Pemetaan
Fungsi: Pemetaan
Fungsi: Pemetaan
Fungsi: Pemetaan
Fungsi: Pemetaan
Fungsi: Pemetaan
Fungsi: Pemetaan

Satu ciri tambahan yang kami mahukan robot itu adalah memetakan lokasinya kerana ia berinteraksi secara langsung dengan persekitaran. Oleh itu, kod di bawah ini bertujuan untuk membuka peta dan membuat sistem koordinat yang memperincikan setiap lokasi di mana sensor bumper robot ditekan. Ini terbukti menjadi bahagian terpanjang dari tiga bahagian untuk diuji secara individu, tetapi terbukti lebih mudah apabila digunakan pada skrip akhir.

Demi menambahkan had untuk jangka masa fungsi dijalankan, had n <20 pada loop sementara digunakan untuk tujuan pengujian.

Perlu diingat walaupun kerana kerumitan kod, lebih banyak kesalahan berlaku kerana segmen kod berjalan lama; dari ujian sebelumnya, sepuluh lebam nampaknya jumlah titik sebelum kesalahan yang ketara berlaku.

Langkah 6: Juxtaposition

Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition

Oleh kerana semua ini akan diletakkan dalam satu fail, kami membuat fungsi menggunakan setiap dua langkah sebelumnya sebagai subfungsi. Draf akhir dibuat dengan pengubahsuaian berikut pada fungsi redux yang disebut "recon." Untuk mengelakkan kekeliruan untuk MATLAB, skrip "counter" dan "rombplot3" diganti nama masing-masing sebagai fungsi tertanam "CountR" dan "plotr".

Beberapa perubahan harus dilakukan pada versi terakhir dibandingkan dengan skrip sebelumnya:

-Asalnya akan selalu ditandai dengan bulatan merah

-Setiap kali roomba berhenti dari bumpernya, lokasi ditandai dengan lingkaran hitam

-Setiap kali roomba berhenti dari sensor tebingnya, lokasi ditandai dengan bulatan biru

-Setiap kali roomba berhenti menyiasat kawasan tersebut, lokasi ditandai dengan bulatan hijau

-Gambar diubah untuk membuang bahagian atasnya kerana cap waktu berpotensi mengganggu hasilnya

-Border tidak akan dikira sebagai objek kerana bilangan yang diperoleh agak tinggi

-Beberapa pemboleh ubah telah diubah, jadi untuk mengelakkan kekeliruan gunakan versi di atas untuk rujukan.

Langkah 7: Menguji

Ujian
Ujian

Ujian untuk setiap komponen individu kadang-kadang bercampur-campur, itulah sebabnya mengapa perlu dilakukan pengubahsuaian pada nilai yang telah ditetapkan. Latar belakang tematik di mana kami ingin menguji kemampuan robot di kawasan tertutup hanya terdiri dari papan putih yang diletakkan di lantai yang jauh lebih gelap. Anda boleh menyebarkan objek di sekitar kawasan ini; menjadikannya bertindak sebagai objek untuk ditabrak atau jauh dari kawasan bergerak robot.

Setelah menetapkan waktu dan kecepatan dasar yang diatur, roomba menunjukkan tingkah laku pergerakan yang mencukupi, berhenti dan mundur dari setiap "tebing" atau objek yang ditabraknya serta melambatkan ketika mengesan sesuatu yang dekat. Setelah mencapai jarak perjalanan tiga meter yang diinginkan, robot akan terus berhenti dan menilai kawasan itu, mengambil gambar setiap kawasan 45 darjah, dan terus maju jika memungkinkan. Namun, gilirannya tampak lebih besar dari yang diminta, yang bermaksud bahawa data koordinat akan dikaburkan.

Setiap kali berhenti, titik baru diletakkan di kawasan perkiraannya pada sistem koordinat; namun, diperhatikan bahawa arah awal saat roomba bermula memainkan peranan penting dalam reka bentuk peta. Sekiranya fitur kompas dapat dilaksanakan, itu akan digunakan sebagai bahagian penting dalam reka bentuk peta.

Masa sebenar fungsi yang diperlukan untuk dijalankan sepenuhnya melebihi masa yang diminta, masuk akal memandangkan ia tidak dapat berhenti di tengah-tengah salah satu pemulihannya. Malangnya, versi penghitungan gambar ini mempunyai masalah, terutamanya di kawasan yang kebanyakannya monokromatik atau kecerahan yang berbeza-beza; kerana ia berusaha membezakan antara dua warna, ia cenderung melihat objek yang tidak diinginkan, oleh karena itu selalu menghitung jumlah yang sangat tinggi.

Langkah 8: Kesimpulannya

Kesimpulannya
Kesimpulannya

Walaupun tugas ini adalah karya yang sangat petualang dan kreatif yang membawa kegembiraan lega, saya, dari pemerhatian peribadi saya, dapat melihat sejumlah besar kesalahan yang boleh menjadi masalah, baik dalam kod dan tingkah laku robot.

Batasan penggunaan spesifikasi masa dalam gelung sementara menyebabkan jumlah masa lebih lama daripada yang diinginkan; proses teknik panorama dan pemprosesan gambar sebenarnya boleh memakan masa lebih lama jika dijalankan oleh komputer yang perlahan atau tidak digunakan sebelumnya. Sebagai tambahan, roomba yang digunakan dalam persembahan kami bertindak dengan banyak kesalahan, terutama dalam pergerakan, berbanding dengan simulator. Robot yang digunakan sayangnya cenderung condong sedikit ke kiri ketika melaju lurus dan membuat belokan lebih besar daripada yang diinginkan. Atas sebab ini dan banyak yang lain, sangat disarankan agar untuk mengimbangi kesalahan ini, perubahan perlu dilakukan untuk sudut gilirannya.

Walaupun begitu, ini adalah projek yang lama dan merangsang intelektual yang telah bertindak sebagai pengalaman pembelajaran yang menarik untuk menerapkan kod dan perintah untuk mempengaruhi tingkah laku robot yang sebenarnya.

Disyorkan: