Daftar Isi:
- Langkah 1: Bagian dan Bahan
- Langkah 2: File Database Roomba
- Langkah 3: Menghubungkan ke Roomba
- Langkah 4: Kode
- Langkah 5: Kesimpulan
Video: MATLAB Controlled Roomba: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Tujuan dari proyek ini adalah untuk memanfaatkan MATLAB serta robot yang dapat diprogram iRobot yang dimodifikasi. Kelompok kami menggabungkan keterampilan pengkodean kami untuk membuat skrip MATLAB yang menggunakan banyak fungsi iRobot, termasuk sensor tebing, sensor bumper, sensor cahaya, dan kamera. Kami menggunakan sensor dan pembacaan kamera ini sebagai input, memungkinkan kami untuk membuat output tertentu yang kami inginkan menggunakan fungsi dan loop kode MATLAB. Kami juga menggunakan perangkat seluler MATLAB dan giroskop sebagai cara untuk terhubung ke iRobot dan mengontrolnya.
Langkah 1: Bagian dan Bahan
MATLAB 2018a
-MaTLAB versi 2018 adalah versi yang paling disukai, sebagian besar karena berfungsi paling baik dengan kode yang terhubung ke perangkat seluler. Namun, sebagian besar kode kami dapat ditafsirkan di sebagian besar versi MATLAB.
iRobot Buat Perangkat
-Perangkat ini adalah perangkat yang dibuat khusus yang tujuan utamanya adalah untuk pemrograman dan pengkodean. (Ini bukan ruang hampa yang sebenarnya)
Raspberry Pi (dengan kamera)
- Ini adalah papan komputer tidak mahal yang berfungsi sebagai otak iRobot. Ini mungkin kecil, tetapi mampu melakukan banyak hal. Kamera adalah tambahan tambahan. Itu juga menggunakan raspberry pi untuk mendapatkan semua fungsi dan perintahnya. Kamera yang digambarkan di atas dipasang pada dudukan cetak 3D, dibuat oleh departemen Teknik Fundamental di University of Tennessee
Langkah 2: File Database Roomba
Ada file utama yang Anda perlukan untuk menggunakan fungsi dan perintah yang tepat untuk roomba Anda. File ini adalah tempat Anda menulis kode untuk mengambil fungsi agar pengoperasian roomba Anda lebih mudah dikelola.
Anda dapat mengunduh file di tautan ini atau file yang dapat diunduh di bawah ini
ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php
Langkah 3: Menghubungkan ke Roomba
Pertama, Anda harus memastikan bahwa robot Anda terhubung ke papan raspberry pi Anda dengan menggunakan colokan micro USB. Maka Anda perlu menghubungkan komputer dan robot Anda dengan benar ke WiFi yang sama. Setelah ini selesai, Anda dapat menghidupkan robot Anda dan menghubungkannya menggunakan perintah yang diberikan dalam file database robot. (Selalu hard reset robot Anda sebelum dan sesudah Anda menggunakannya). Misalnya, kita menggunakan perintah "r.roomba(19)" untuk menghubungkan ke robot kita, menetapkan variabel r ke perangkat kita. Ini merujuk kembali ke file database, yang mengatur variabel kami sebagai struktur yang dapat kami referensikan pada saat tertentu.
Langkah 4: Kode
Kami telah melampirkan kode lengkap di bawah ini, tetapi di sini adalah ikhtisar singkat yang menyoroti elemen penting dalam skrip kami. Kami menggunakan semua sensor, serta kamera untuk memaksimalkan potensi robot kami sepenuhnya. Kami juga menyertakan kode yang memungkinkan kami menghubungkan perangkat seluler ke robot kami dan menggunakan gryoscope-nya untuk mengontrolnya secara manual.
Kami memulai dengan perintah sederhana "r.setDriveVelocity(.06)" yang mengatur kecepatan maju robot menjadi.06 m/s. Ini hanya untuk membuat robot bergerak terlebih dahulu
Kemudian, skrip utama kami dimulai dengan loop sementara yang mengambil data dari robot yang diberikan dengan membuat struktur yang dapat kami rujuk dan gunakan dalam pernyataan bersyarat di bawah ini, sehingga memungkinkan kami untuk memberi tahu robot menjalankan perintah tertentu berdasarkan data struktur robot membaca dengan sensornya. Kami mengaturnya agar robot membaca sensor tebingnya dan mengikuti jalur hitam
while true % while loop berjalan sampai terjadi sesuatu yang "false" (dalam hal ini berlangsung tanpa batas) data = r.getCliffSensors; data2 = r.getBumpers;% mengambil data secara terus menerus tentang nilai sensor tebing dan menetapkannya ke variabel % img = r.getImage; % Mengambil gambar dari kamera yang terpasang % image(img); % Menampilkan gambar yang diambil % red_mean = mean(mean(img(:,:, 1)));% Mengambil nilai rata-rata untuk warna hijau jika data.rightFront < 2000 r.turnAngle(-2); % mengubah Roomba sekitar.2 derajat CW setelah nilai untuk sensor tebing kanan depan turun di bawah 2000 r.setDriveVelocity(.05); elseif data.kiriFront data.leftFront && 2000 > data.rightFront r.moveDistance(.1); % memberitahu Roomba untuk terus maju dengan kecepatan sekitar.2 m/s jika kedua nilai dari sensor depan kanan dan depan kiri turun di bawah 2000 % r.turnAngle(0); % memberitahu Roomba untuk tidak berbalik jika kondisi yang disebutkan di atas benar
elseif data2.right == 1 r.moveDistance(-.12); r.turnAngle(160); r.setDriveVelocity(.05); elseif data2.kiri == 1 r.moveDistance(-.2); r.turnAngle(5); r.setDriveVelocity(.05); elseif data2.front == 1 r.moveDistance(-.12); r.turnAngle(160); r.setDriveVelocity(.05);
Setelah loop while ini, kita memasuki loop while lain yang memicu data yang diperoleh melalui kamera. Dan kami menggunakan pernyataan if di dalam loop while ini yang mengenali gambar menggunakan program tertentu (alexnet), dan setelah mengidentifikasi gambar, itu segera memicu remote control perangkat seluler
anet = alexnet; % Menetapkan pembelajaran mendalam alexnet ke variabel while true % Infinite while loop img = r.getImage; img = imresize(img, [227, 227]); label = klasifikasi(anet, img); if label == "handuk kertas" || label == "kulkas" label = "air"; gambar akhir (img); judul(char(label)); ditarik;
Loop while yang memungkinkan kita untuk mengontrol perangkat dengan telepon kita mengambil data itu dari giroskop telepon dan kita menghubungkannya ke matriks yang terus mengalirkan data kembali ke MATLAB di komputer. Kami menggunakan pernyataan if yang membaca data matriks dan memberikan output yang menggerakkan perangkat berdasarkan nilai tertentu dari giroskop ponsel. Penting untuk diketahui bahwa kami menggunakan sensor Orientasi perangkat seluler. Matriks satu per tiga yang disebutkan di atas dikategorikan berdasarkan masing-masing elemen sensor orientasi ponsel, yaitu azimuth, pitch, dan side. Pernyataan if menciptakan kondisi yang menyatakan ketika sisi melebihi nilai 50 atau turun di bawah -50, maka robot bergerak sejauh tertentu ke depan (positif 50) atau mundur (negatif 50). Dan hal yang sama berlaku untuk nilai nada. Jika nilai pitch melebihi nilai 25 jatuh di bawah -25, robot berputar pada sudut 1 derajat (positif 25) atau negatif 1 derajat (negatif 25)
sementara true pause(.1) % Jeda 0,5 detik sebelum setiap nilai diambil Controller=iphone. Orientation; % Menetapkan matriks untuk nilai orientasi iPhone ke variabel Azimuthal=Controller(1); % Menetapkan nilai pertama dari matriks ke variabel Pitch=Controller(2); % Menetapkan nilai kedua dari matriks ke variabel (miring ke depan dan ke belakang saat iPhone dipegang menyamping) Side=Controller(3); % Menetapkan nilai ketiga dari matriks ke variabel (miring ke kiri dan kanan saat iPhone dipegang menyamping) % Menyebabkan keluaran berdasarkan orientasi telepon jika Sisi > 130 || Sisi 25 r.moveDistance(-.1) % Memindahkan Roomba mundur sekitar.1 meter jika iPhone dimiringkan ke belakang setidaknya 25 derajat jika tidak Sisi 25 r.turnAngle(-1) % Memutar Roomba sekitar 1 derajat CCW jika iPhone dimiringkan ke kiri setidaknya 25 derajat jika Pitch < -25 r.turnAngle(1) % Memutar Roomba sekitar 1 derajat CW jika iPhone dimiringkan setidaknya 25 derajat ujung
Ini hanyalah sorotan dari bagian utama kode kami, yang kami sertakan jika Anda perlu menyalin dan menempelkan bagian dengan cepat untuk keuntungan Anda. Namun, seluruh kode kami dilampirkan di bawah ini jika diperlukan
Langkah 5: Kesimpulan
Kode yang kami tulis ini dirancang khusus untuk robot kami serta visi proyek kami secara keseluruhan. Tujuan kami adalah menggunakan semua keterampilan pengkodean MATLAB kami untuk membuat skrip desain yang memanfaatkan sebagian besar fitur robot. Menggunakan pengontrol telepon tidak sesulit yang Anda bayangkan, dan kami berharap kode kami dapat membantu Anda lebih memahami konsep di balik pengkodean iRobot.
Direkomendasikan:
DIY Arduino Bluetooth Controlled Car: 6 Langkah (dengan Gambar)
Mobil Dikendalikan Bluetooth Arduino DIY: Halo teman-teman! Nama saya Nikolas, saya berusia 15 tahun dan saya tinggal di Athena, Yunani. Hari ini saya akan menunjukkan cara membuat Mobil Kontrol Bluetooth 2 Roda menggunakan Arduino Nano, printer 3D dan beberapa komponen elektronik sederhana! Pastikan untuk menonton saya
Transform-a-Car: Remote Controlled ke Self Controlled: 4 Langkah
Transform-a-Car: Remote Controlled to Self Controlled: Ini adalah hack pada mobil RC dengan remote yang rusak. Anda dapat menemukan banyak hal di garage sale
Proyek Roomba MATLAB: 5 Langkah
Roomba MATLAB Project: Rencana saat ini yang dimiliki NASA untuk penjelajah Mars adalah menjadi pengumpul data dan berkeliaran di sekitar Mars, mengumpulkan sampel tanah untuk dibawa kembali ke Bumi sehingga para ilmuwan dapat melihat apakah ada bentuk kehidupan sebelumnya di Bumi. planet. Tambahan
Dari Roomba ke Rover Hanya dalam 5 Langkah!: 5 Langkah
Dari Roomba ke Rover Hanya dalam 5 Langkah!: Robot Roomba adalah cara yang menyenangkan dan mudah untuk mencelupkan jari-jari kaki Anda ke dunia robotika. Dalam Instruksi ini, kami akan merinci cara mengubah Roomba sederhana menjadi penjelajah yang dapat dikontrol yang secara bersamaan menganalisis lingkungannya. Daftar Bagian1.) MATLAB2.) Roomb
Roomba Dengan MATLAB: 4 Langkah (dengan Gambar)
Roomba With MATLAB: Proyek ini menggunakan MATLAB dan robot yang dapat diprogram iRobot Create2. Dengan menguji pengetahuan kami tentang MATLAB, kami dapat memprogram Create2 untuk menginterpretasikan gambar dan mendeteksi sinyal. Fungsionalitas robot terutama bergantung pada