Daftar Isi:

Roomba Scout Explorer: 8 Langkah
Roomba Scout Explorer: 8 Langkah

Video: Roomba Scout Explorer: 8 Langkah

Video: Roomba Scout Explorer: 8 Langkah
Video: Is iRobot really superior??? #shorts #short #youtubeshorts 2024, Juli
Anonim
Penjelajah Pramuka Roomba
Penjelajah Pramuka Roomba

Sebagai salah satu proyek Amerika yang paling dinanti dan banyak diteliti, proyek penjelajah Mars telah menjadi pencapaian manusia dalam produksi sistem otonom berteknologi tinggi yang terus berkembang untuk tujuan tunggal menyelidiki dan menafsirkan daratan dan permukaan planet merah di belakangnya. bumi. Sebagai bagian dari proyek yang lebih pribadi untuk menghormati misi Mars, tujuan kami adalah menciptakan robot roomba yang dapat bertindak secara mandiri selama jangka waktu tertentu dan bereaksi sesuai dengan kriteria tertentu di sekitarnya.

Untuk keunikan, kami fokus membuat diagram yang menunjukkan setiap jalur yang diambil robot dari asalnya. Selain itu, robot akan dapat menghitung jumlah objek di sekitarnya dengan gaya panorama.

Langkah 1: Peralatan

-Roomba dengan Kamera yang Dapat Dipasang (dengan nama spesifik diketahui)

-Server Terhubung

-Windows 10 / Mac dengan konektivitas Internet

-Platform cerah

-Lantai gelap

-Setiap objek liar dengan desain monokromatik

Langkah 2: Pengaturan MATLAB

Pengaturan MATLAB
Pengaturan MATLAB

Untuk membuat tugas dan fungsi untuk roomba Anda, Anda harus memiliki kode dan toolkit khusus yang berisi perintah roomba.

Dengan MATLAB 2016a dan seterusnya diunduh, buat folder untuk memuat file robot ini dan masukkan file MATLAB berikut di bawah ini ke dalam folder dan jalankan untuk menginstal file roomba yang tersisa.

Setelah itu, klik kanan di jendela Current Folder, arahkan mouse Anda ke "Add a Path" dan klik "Current Folder." Sekarang, sebuah jalur harus diatur sedemikian rupa sehingga masing-masing file ini akan digunakan untuk mengaktifkan roomba.

Sekarang, gunakan perintah di bawah ini di jendela perintah untuk mengatur roomba:

r=kamarba(#).

Simbol # adalah 'nomor' dari roomba yang ditentukan; namun, jika Anda hanya menginginkan simulator roomba, cukup ketik perintah berikut:

r=ruangan(0).

Simulasi akan direkomendasikan untuk menguji pola gerakan.

Jika Anda penasaran dengan perintah apa yang bisa diikuti roomba, ketik perintah berikut ke dalam jendela perintah:

dok roomba.

Untuk lebih jelasnya, kunjungi situs web berikut:

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

Langkah 3: Fungsi: Gerakan

Fungsi: Gerakan
Fungsi: Gerakan
Fungsi: Gerakan
Fungsi: Gerakan

Berkenaan dengan gerakan, roomba harus bergerak secara otomatis untuk jangka waktu tertentu yang diberikan dalam input. Tujuan gerakan robot adalah untuk bereaksi dengan baik ketika sensornya (bumper, bumper ringan, dan sensor tebing) berubah dengan adanya berbagai rintangan. Bagian ini akan bertindak sebagai dasar untuk semua perintah roomba karena lebih banyak fitur kode ditambahkan nanti. Beberapa spesifikasi yang dibutuhkan:

-Untuk mengurangi kerusakan, robot harus mengurangi kecepatan ke kecepatan yang lebih rendah.

-Saat mendekati tebing atau dinding, robot akan bergerak mundur dan mengubah sudutnya tergantung pada titik tumbukan

-Setelah beberapa waktu mengemudi, roomba akhirnya akan berhenti dan mengambil gambar dari daerah sekitarnya

Perhatikan bahwa nilai yang digunakan terkait dengan simulator; nilai-nilai seperti kecepatan belok sudut belok dan sensor robot preset harus dimodifikasi saat menggunakan robot yang sebenarnya untuk memastikan stabilitas dan akuntansi untuk kesalahan peralatan.

Langkah 4: Fungsi: Pemrosesan Gambar

Fungsi: Pemrosesan Gambar
Fungsi: Pemrosesan Gambar

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

Kami mengikuti teknik membuat MATLAB menggambar batas di sekitar objek menghitam yang kontras dengan latar belakang putih. Namun, fungsi ini cenderung mengalami kesulitan di area terbuka karena perbedaan bentuk dan warna yang ditangkap oleh kamera, sehingga menghasilkan hitungan yang sangat tinggi.

Perhatikan bahwa fungsi ini tidak dapat bekerja di simulator karena kamera tidak disediakan; jika dicoba, akan terjadi kesalahan yang 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

Salah satu fitur tambahan yang kami ingin robot miliki adalah memetakan lokasinya karena berinteraksi langsung dengan lingkungan. Dengan demikian, kode di bawah ini berusaha membuka peta dan mengatur sistem koordinat yang merinci setiap lokasi di mana sensor bumper robot ditekan. Ini terbukti menjadi bagian terpanjang dari tiga bagian untuk diuji satu per satu, tetapi terbukti jauh lebih sederhana ketika diterapkan pada skrip akhir.

Demi menambah batas panjang waktu menjalankan fungsi, batas n<20 pada loop while digunakan untuk tujuan pengujian.

Perlu diingat meskipun karena kerumitan kode, lebih banyak kesalahan terjadi karena segmen kode berjalan untuk waktu yang lama; dari tes sebelumnya, sepuluh tonjolan tampaknya menjadi jumlah poin sebelum kesalahan signifikan terjadi.

Langkah 6: Penjajaran

Penjajaran
Penjajaran
Penjajaran
Penjajaran
Penjajaran
Penjajaran
Penjajaran
Penjajaran

Karena semua ini akan ditempatkan dalam satu file, kami membuat fungsi menggunakan masing-masing dari dua langkah sebelumnya sebagai subfungsinya. Draf akhir dibuat dengan modifikasi berikut pada fungsi redux yang disebut "pengintaian." Untuk menghindari kebingungan untuk MATLAB, skrip "counter" dan "rombplot3" diganti namanya menjadi fungsi tertanam "CountR" dan "plotr", masing-masing.

Beberapa perubahan harus dilakukan dalam versi final sebagai lawan dari skrip sebelumnya:

-Asal akan selalu ditandai dengan lingkaran merah

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

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

-Setiap kali roomba berhenti menyelidiki area tersebut, lokasi ditandai dengan lingkaran hijau

-Gambar dimodifikasi untuk menghilangkan bagian atas karena cap waktu berpotensi mengganggu hasil

-Perbatasan tidak akan dihitung sebagai objek karena jumlah yang diperoleh agak tinggi

-Beberapa variabel telah diubah, jadi untuk menghindari kebingungan gunakan versi di atas sebagai referensi.

Langkah 7: Pengujian

Pengujian
Pengujian

Pengujian untuk masing-masing komponen terbukti kadang-kadang agak tercampur, itulah sebabnya modifikasi pada nilai preset tertentu diperlukan. Latar belakang tematik di mana kami ingin menguji kemampuan robot di area tertutup hanya terdiri dari papan tulis yang diletakkan di lantai yang jauh lebih gelap. Anda dapat menyebarkan objek di sekitar area; menjadikannya sebagai objek yang akan ditabrak atau objek yang jauh dari area gerak robot.

Setelah mengatur waktu dan kecepatan dasarnya, roomba menunjukkan perilaku gerakan yang memadai, berhenti dan mundur dari setiap "tebing" atau objek yang ditabraknya serta melambat saat mendeteksi sesuatu yang dekat. Setelah mencapai jarak perjalanan tiga meter yang diinginkan, robot akan melanjutkan untuk berhenti dan mengevaluasi area, mengambil gambar dari setiap wilayah 45 derajat, dan melanjutkan jika waktu memungkinkan. Namun, belokannya tampak lebih besar dari yang diminta, artinya data koordinat akan dikaburkan.

Setiap kali berhenti, titik baru ditempatkan di wilayah perkiraan posisinya pada sistem koordinat; namun, perlu dicatat bahwa arah awal dimulainya roomba memainkan peran penting dalam desain peta. Jika fitur kompas dapat diimplementasikan, itu akan digunakan sebagai bagian penting dari desain peta.

Waktu aktual yang dibutuhkan fungsi untuk berjalan sepenuhnya selalu melebihi waktu yang diminta, yang masuk akal mengingat ia tidak dapat berhenti di tengah salah satu pemulihannya. Sayangnya, versi penghitungan gambar ini memiliki masalah, terutama di area yang sebagian besar monokromatik atau kecerahannya bervariasi; karena mencoba membedakan antara dua warna, ia cenderung melihat objek yang tidak diinginkan, oleh karena itu ia selalu menghitung hingga angka yang sangat tinggi.

Langkah 8: Kesimpulan

Kesimpulan
Kesimpulan

Meskipun tugas ini merupakan karya yang sangat menantang dan kreatif yang menghasilkan kegembiraan yang melegakan, saya, dari pengamatan pribadi saya, dapat melihat sejumlah besar kesalahan yang dapat menimbulkan masalah, baik dalam kode maupun perilaku robot.

Keterbatasan penggunaan spesifikasi waktu dalam while loop memang menyebabkan jumlah total waktu menjadi lebih lama dari yang diinginkan; proses teknik panorama dan pengolahan gambar sebenarnya bisa memakan waktu lebih lama jika dijalankan oleh komputer yang lambat atau tidak digunakan terlebih dahulu. Selain itu, roomba yang digunakan dalam presentasi kami memiliki banyak kesalahan, terutama dalam gerakan, dibandingkan dengan simulator. Sayangnya, robot yang digunakan cenderung sedikit condong ke kiri saat melaju lurus dan berbelok lebih besar dari yang diinginkan. Untuk alasan ini dan banyak lainnya, sangat disarankan bahwa untuk mengkompensasi kesalahan ini, perubahan perlu dilakukan untuk sudut belokannya.

Namun demikian, ini adalah proyek yang panjang namun merangsang secara intelektual yang telah bertindak sebagai pengalaman belajar yang menarik untuk menerapkan kode dan perintah untuk secara langsung mempengaruhi perilaku robot yang sebenarnya.

Direkomendasikan: