Isi kandungan:
- Langkah 1: Bahagian dan Bahan
- Langkah 2: Fail Pangkalan Data Roomba
- Langkah 3: Bersambung ke Roomba
- Langkah 4: Kodnya
- Langkah 5: Kesimpulannya
Video: MATLAB terkawal Roomba: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Matlamat projek ini adalah untuk menggunakan MATLAB dan juga robot yang dapat diprogramkan iRobot yang telah diubah suai. Kumpulan kami menggabungkan kemahiran pengekodan kami untuk membuat skrip MATLAB yang menggunakan banyak fungsi iRobot, termasuk sensor tebing, sensor bumper, sensor cahaya, dan kamera. Kami menggunakan pembacaan sensor dan kamera ini sebagai input, memungkinkan kami membuat output tertentu yang kami inginkan menggunakan fungsi dan gelung kod MATLAB. Kami juga menggunakan peranti mudah alih dan giroskop MATLAB sebagai cara untuk menyambung ke iRobot dan mengawalnya.
Langkah 1: Bahagian dan Bahan
MATLAB 2018a
MATLAB versi 2018 adalah versi yang paling disukai, terutamanya kerana ia berfungsi paling baik dengan kod yang menghubungkan ke peranti mudah alih. Walau bagaimanapun, sebahagian besar kod kami dapat ditafsirkan dalam kebanyakan versi MATLAB.
iRobot Buat Peranti
-Peranti ini adalah peranti buatan khas yang tujuannya hanya untuk pengaturcaraan dan pengekodan. (Ini bukan kekosongan sebenarnya)
Raspberry Pi (dengan kamera)
- Ini adalah papan komputer yang tidak mahal yang berfungsi sebagai otak iRobot. Ia mungkin kecil, tetapi mampu melakukan banyak perkara. Kamera adalah tambahan tambahan. Ia juga menggunakan raspberry pi untuk mendapatkan semua fungsi dan perintahnya. Kamera yang digambarkan di atas dipasang pada pendirian bercetak 3D, yang dibuat oleh jabatan Asas Kejuruteraan di University of Tennessee
Langkah 2: Fail Pangkalan Data Roomba
Terdapat fail utama yang anda perlukan untuk menggunakan fungsi dan perintah yang tepat untuk ruangan anda. Fail ini adalah tempat anda menulis fungsi menarik kod untuk menjadikan operasi bilik anda lebih terkawal.
Anda boleh memuat turun fail di pautan ini atau fail yang boleh dimuat turun di bawah
ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php
Langkah 3: Bersambung ke Roomba
Pertama, anda mesti memastikan bahawa robot anda disambungkan ke papan pi raspberry anda dengan menggunakan palam USB mikro. Oleh itu, anda perlu menyambungkan komputer dan robot anda dengan betul ke WiFi yang sama. Setelah ini selesai, anda dapat menghidupkan robot anda dan menyambungkannya menggunakan perintah yang diberikan dalam fail pangkalan data robot. (Sentiasa keras menetapkan semula robot anda sebelum dan selepas anda menggunakannya). Sebagai contoh, kami menggunakan arahan "r.roomba (19)" untuk menyambung ke robot kami, memberikan pemboleh ubah r ke peranti kami. Ini merujuk kepada fail pangkalan data, yang menetapkan pemboleh ubah kita sebagai struktur yang dapat kita rujuk pada saat tertentu.
Langkah 4: Kodnya
Kami telah melampirkan kod lengkap di bawah, tetapi berikut adalah gambaran keseluruhan ringkas yang menyoroti elemen penting dalam skrip kami. Kami menggunakan semua sensor, serta kamera untuk memaksimumkan potensi robot kami. Kami juga memasukkan kod yang membolehkan kami menyambungkan peranti mudah alih ke robot kami dan menggunakan gryoscopenya untuk mengawalnya secara manual.
Kami memulakan dengan perintah mudah "r.setDriveVelocity (.06)" yang menetapkan kelajuan hadapan robot ke.06 m / s. Ini hanya untuk membuat robot bergerak terlebih dahulu
Kemudian, skrip utama kami dimulakan dengan gelung sementara yang mengambil data robot yang diberikan dengan membuat struktur yang dapat kita rujuk dan gunakan dalam pernyataan bersyarat di bawah, sehingga memungkinkan kita memberitahu robot melaksanakan perintah tertentu berdasarkan data struktur robot membaca dengan sensornya. Kami menyiapkannya supaya robot membaca sensor tebingnya dan mengikuti jalan hitam
manakala true% while loop berterusan sehingga berlaku sesuatu yang "false" (dalam kes ini berlaku tanpa henti) data = r.getCliffSensors; data2 = r.getBumpers;% mengambil data secara berterusan mengenai nilai sensor tebing dan memberikannya kepada% img = r.getImage yang berubah-ubah; % Mengambil gambar dari kamera terpasang% gambar (img); % Menunjukkan gambar yang diambil% red_mean = mean (mean (img (:,:, 1)));% Mengambil nilai purata untuk warna hijau jika data.rightFront <2000 r.turnAngle (-2); % menjadikan Roomba lebih kurang.2 darjah CW setelah nilai untuk sensor tebing depan kanan jatuh di bawah 2000 r.setDriveVelocity (.05); elseif data.leftFront data.leftFront && 2000> data.rightFront r.moveDistance (.1); % memberitahu Roomba untuk terus maju pada kira-kira.2 m / s jika kedua-dua nilai dari sensor depan kanan dan kiri jatuh di bawah 2000% r.turnAngle (0); % memberitahu Roomba untuk tidak berpaling sekiranya keadaan yang disebutkan di atas adalah benar
elseif data2.right == 1 r.moveDistance (-. 12); r.turnAngle (160); r.setDriveVelocity (.05); elseif data2.left == 1 r.moveDistance (-. 2); r.turnAngle (5); r.setDriveVelocity (.05); elseif data2.front == 1 r.moveDistance (-. 12); r.turnAngle (160); r.setDriveVelocity (.05);
Selepas loop sementara ini, kita memasukkan loop sementara yang lain yang mencetuskan data yang diperoleh melalui kamera. Dan kami menggunakan pernyataan if di dalam loop sementara ini yang mengenali gambar menggunakan program tertentu (alexnet), dan setelah ia mengenal pasti gambar, ia segera mencetuskan alat kawalan jauh peranti mudah alih
anet = alexnet; Menugaskan pembelajaran mendalam alexnet kepada pembolehubah sementara% Infinite while loop img = r.getImage; img = imresize (img, [227, 227]); label = mengelaskan (anet, img); jika label == "tuala kertas" || label == "peti sejuk" label = "air"; gambar akhir (img); tajuk (char (label)); penarikan;
Gelung sementara yang membolehkan kami mengawal peranti dengan telefon kami mengambil data dari giroskop telefon dan kami memasangkannya ke dalam matriks yang terus mengalirkan data kembali ke MATLAB di komputer. Kami menggunakan pernyataan if yang membaca data matriks dan memberikan output yang menggerakkan peranti berdasarkan nilai tertentu giroskop telefon. Penting untuk mengetahui bahawa kami menggunakan sensor Orientasi peranti mudah alih. Matriks satu demi tiga yang disebutkan di atas dikategorikan oleh setiap elemen sensor orientasi telefon, yaitu azimuth, pitch, dan side. Sekiranya pernyataan mewujudkan keadaan yang menyatakan apabila sisi melebihi nilai 50 atau jatuh di bawah -50, maka robot bergerak jarak tertentu ke depan (positif 50) atau ke belakang (negatif 50). Begitu juga dengan nilai nada. Sekiranya nilai nada melebihi nilai 25 jatuh di bawah -25, robot berpusing pada sudut 1 darjah (positif 25) atau negatif 1 darjah (negatif 25)
sementara jeda benar (.1)% Jeda.5 saat sebelum setiap nilai diambil Pengawal = iphone. Orientasi; % Menetapkan matriks untuk nilai-nilai orientasi iPhone kepada pemboleh ubah Azimuthal = Pengawal (1); % Menetapkan nilai pertama matriks ke pemboleh ubah Pitch = Controller (2); % Menetapkan nilai kedua matriks ke pemboleh ubah (condong ke depan dan ke belakang ketika iPhone dipegang ke sisi) Sisi = Pengawal (3); % Menetapkan nilai ketiga matriks ke pemboleh ubah (condong ke kiri dan kanan ketika iPhone dipegang ke sisi)% Menyebabkan output berdasarkan orientasi telefon jika Sisi> 130 || Side 25 r.moveDistance (-. 1)% Menggerakkan Roomba ke belakang kira-kira.1 meter jika iPhone dimiringkan ke belakang sekurang-kurangnya 25 degress lainif Jika Side 25 r.turnAngle (-1)% Menghidupkan Roomba sekitar 1 darjah CCW jika iPhone miring ke kiri sekurang-kurangnya 25 darjah yang lain jika Pitch <-25 r.turnAngle (1)% Menghidupkan Roomba kira-kira 1 darjah CW jika iPhone dimiringkan sekurang-kurangnya 25 darjah akhir
Ini hanyalah sorotan utama dari kod kami, yang kami sertakan jika anda perlu menyalin dan menampal bahagian dengan cepat untuk kepentingan anda. Walau bagaimanapun, keseluruhan kod kami dilampirkan di bawah jika diperlukan
Langkah 5: Kesimpulannya
Kod ini yang kami tulis direka khas untuk robot kami dan juga keseluruhan visi kami mengenai projek ini. Tujuan kami adalah untuk menggunakan semua kemahiran pengkodan MATLAB kami untuk membuat skrip reka bentuk yang baik yang menggunakan sebahagian besar ciri robot. Menggunakan pengawal telefon tidaklah sukar seperti yang anda fikirkan, dan kami berharap kod kami dapat membantu anda memahami konsep di sebalik pengekodan iRobot.
Disyorkan:
Lengan Robotik 3D Dengan Motor Stepper Terkawal Bluetooth: 12 Langkah
Lengan Robotik 3D Dengan Motor Stepper Terkawal Bluetooth: Dalam tutorial ini kita akan melihat bagaimana membuat lengan robot 3D, dengan motor stepper 28byj-48, motor servo dan bahagian dicetak 3D. Papan litar bercetak, kod sumber, rajah elektrik, kod sumber dan banyak maklumat disertakan di laman web saya
Cahaya RGB Terkawal Bluetooth: 3 Langkah
Cahaya RGB Terkawal Bluetooth: Adakah ketika anda ingin menukar warna dan kecerahan lampu rumah anda hanya dengan beberapa sentuhan pada telefon anda? Berita baik adalah - ini dapat dilakukan dengan mudah menggunakan mikrokontroler berkemampuan Bluetooth seperti Ameba RTL8722 dari Realtek. Saya di sini
MATLAB terkawal mikrokontroler (Arduino MKR1000): 4 Langkah
MATLAB terkawal mikrokontroler (Arduino MKR1000): Matlamat projek kami adalah untuk memanfaatkan MATLAB dan juga Arduino MKR1000 dengan kemampuan terbaik kami. Tujuan kami adalah untuk membuat skrip yang membolehkan ciri arduino tertentu untuk membuat output tertentu berdasarkan input tertentu. Kami menggunakan banyak
Projek MATLAB Roomba: 5 Langkah
Projectba MATLAB Project: Rancangan terkini yang dimiliki NASA untuk Mars rover adalah untuk menjadi pengumpul data dan berkeliaran di sekitar Mars, mengumpulkan sampel tanah untuk dibawa kembali ke Bumi supaya para saintis dapat melihat apakah ada bentuk kehidupan sebelumnya di planet ini. Tambahan
Roomba Dengan MATLAB: 4 Langkah (dengan Gambar)
Roomba With MATLAB: Projek ini menggunakan MATLAB dan robot iRobot Create2 yang dapat diprogramkan. Dengan menguji pengetahuan kami tentang MATLAB, kami dapat memprogramkan Create2 untuk menafsirkan gambar dan mengesan isyarat. Fungsi robot bergantung terutamanya pada